Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice

ghost666 18 Apr 2020 15:29 1137 0
IGE-XAO
  • Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Pytanie:Czy można wykorzystywać dane stereo i szyfrować wiadomości głosowe za pomocą plików dźwiękowych WAV w programie LTspice?

    Odpowiedź: Oczywiście. Ten RAQ (artykuł z "Rzadko zadawanych pytań" - Rarely Asked Questions - przyp. red.) ma za zadanie objaśnić, jak używać plików WAV w programie LTspice zarówno z wykorzystaniem audio stereo, jak i większej liczby kanałów.

    LTspice może być używany do generowania plików WAV jako danych wyjściowych z symulacji obwodu, a także może importować pliki WAV w celu generacji sygnału wzbudzającego do symulacji obwodu. W dokumentacji dokładnie opisano, w jaki sposób możliwe jest wykorzystanie monofonicznych plików WAV, jako dane wejściowe w LTspice i to, że LTspice może służyć do generowania plików WAV z swojego wyjścia. W poniższym artykule szczegółowo opisano, jak używać plików WAV audio w LTspice z mniej znaną składnią, co pozwala na wykorzystanie plików zarówno stereofonicznych, jak i wielokanałowych.

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.1. W tej symulacji fala sinusoidalna
    1 kHz jest przełączana w dwu-
    sekundowych odstępach między CH1
    i CH2. Wynikowy sygnał, w postaci dwóch
    kanałów, jest eksportowany
    do pliku audio WAV.
    LTspice ma wiele supermocy, ale obsługa plików audio jest jednym z bardziej imponujących talentów. Chociaż fascynujące jest obserwowanie, jak obwód ożywa na ekranie komputera, utworzenie pliku dźwiękowego, który można odtwarzać poza LTspice, umożliwia inżynierom wykorzystanie innego zmysłu do oceny symulacji – słuchu. Używanie monofonicznych plików audio WAV LTspice jest dobrze udokumentowane. Ten artykuł rozszerza wiedzę o sygnały stereo (lub mające więcej kanałów) i pokazuje, jak wyeksportować dane stereo i zaimportować je do LTspice za pomocą wielokanałowych plików WAV. W artykule zawarto także kilka wskazówek dotyczących plików WAV, które umożliwią czytelnikowi szersze wykorzystanie plików WAV w symulatorze.

    Generowanie pliku stereo WAV

    Zacznijmy od wytworzenia pliku fali stereo z sygnału monofonicznego. Na rysunku 1 zaprezentowano obwód, który generuje falę sinusoidalną o amplitudzie 1 V i częstotliwości 1 kHz, a następnie dzieli go na dwa kanały i na przemian przełącza sygnał między nimi - ton 1 kHz jest przełączany w 2-sekundowych odstępach pomiędzy CH1 i CH2.

    Polecenie .wave „C: \ export.wav” 16 44,1k V (CH1) V (CH2) digitalizuje każdy kanał z 16-bitową rozdzielczością i częstotliwością próbkowania równą 44,1 kHz i przechowuje wynikowy plik dźwiękowy w C:\export.wav. W powyższym poleceniu każdy sygnał wymieniony po częstotliwości próbkowania staje się kolejnym odrębnym kanałem w pliku WAV. LTspice może przechowywać do 65 535 kanałów w jednym pliku WAV audio - wystarczy dołączyć sygnały do powyższego polecenia zgodnie z potrzebami.

    Domyślnie poleceniem .wave LTspice zapisuje pierwszy wymieniony kanał jako lewy kanał audio, a drugi - jako prawy kanał audio. W takim przypadku, gdy export.wav jest odtwarzany przez odtwarzacz multimedialny, kanał CH1 zostanie odczytany, jako lewy kanał, a kanał CH2 będzie odczytany jako prawy, niezależnie od konwencji nazewnictwa węzłów obwodu. Zauważ, że domyślnie CH1 i CH2 są przechowywane odpowiednio, jako chan 0 i chan 1 w pliku .wav, co jest ważne dla odczytu tego pliku, co zostanie opisane poniżej. Wyeksportowany stereofoniczny plik audio można wykorzystać do stymulacji innego obwodu w LTSpice, na przykład takiego, jaki pokazano na rysunku 2. Wykorzystuje on dwa kanały z pliku export.wav jako wejścia sygnału.

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.2. Dwa kanały stereo z pliku
    export.wav służą do stymulacji dwóch
    niezależnych obwodów.
    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.3. Sygnał stereofoniczny z export.wav
    używany jest jako wejście do układu
    z rysunku 2. Na rysunku pokazano
    konfigurację V1, by źródło to pobierało
    wartości z kanału 0 tego pliku.
    Źródła napięcia V1 i V2 są zwykłymi źródłami napięcia, które skonfigurowano tak, by czytały dane z pliku WAV. Są one przypisywane poprzez przytrzymanie klawisza CTRL i kliknięcie prawym przyciskiem myszy na każdym ze źródeł, co uruchomi edytor atrybutów komponentów, jak pokazano na rysunku 3.

    Jak wspomniano powyżej, LTspice, w jednym pliku WAV, można przechowywać do 65 535 osobnych kanałów - wystarczy dołączyć tyle kanałów, ile potrzeba na końcu polecenia .wave podczas jego generowania. Pamiętaj, że domyślnie LTspice nazywa pierwszy kanał Channel 0, następny nazywa się Channel 1 i tak dalej. W takim przypadku plik export.wav (wygenerowany przez symulację na rysunku 1) przechowuje napięcie V (CH1), jako kanał 0 i V(CH2), jako kanał 1. Aby odtwarzać te kanały za pomocą źródła napięcia, określ plik .wav i kanał w wierszu wartości źródła napięcia. W tym przypadku będzie to, odpowiednio:

    Code:
    (CH1): Value wavefile=“C:\export.wav” chan=0
    
    (CH2): Value wavefile=“C:\export.wav” chan=1


    Separacja kanałów audio

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.4. Lewy (żółty) kanał wykazuje
    około 30% przesłuchu do kanału
    prawego (niebieskiego) podczas odtwarzania
    audio na laptopie.
    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.6. Telefon późniejszej generacji
    wykazuje znacznie lepszą jakość
    odnośnie przesłuchu, zniekształceń
    i amplitudy dźwięku.
    Teoretycznie odtwarzanie pliku export.wav przez odtwarzacz multimedialny powinno skutkować przełączaniem się między odtwarzaniem tonu 1 kHz całkowicie przez lewy głośnik przez dwie sekundy, a następnie przez prawy głośnik przez kolejne dwie sekundy. Niemniej jednak pełna separacja stereo nie jest gwarantowana i zależy to, od jakości odtwarzacza multimedialnego używanego podczas odtwarzania. Odtwarzanie pliku export.wav na typowym laptopie pokazało, że około 30% sygnału z lewego kanału pojawia się na prawym kanale podczas pomiaru na oscyloskopie, jak pokazano na rysunku 4.

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.5. Dźwięk z telefonu komórkowego
    z ok. 2000 roku nie wykazywał przesłuchu,
    ale zauważalne były zniekształcenia przy
    pełnej głośności.
    Odtworzenie tego samego pliku na dosyć starym telefonie komórkowym dało wyższy poziom separacji kanałów, bez widocznego przesłuchu, ale za to z pewnym poziomem zniekształceń przy pełnej głośności, jak widzimy na rysunku 5.

    Powtórzenie eksperymentu na telefonie nowej generacji (z 2018 roku) nie wykazało zauważalnego przesłuchu ani zbyt dużych zniekształceń dla pełnego sygnału o amplitudzie 1 V. Wyniki pokazano na oscylogramie znajdującym się na rysunku 6.

    Uwaga: Wszystkie oscylogramy przedstawiono w tej samej skali. Oscyloskop skonfigurowany był na 500 mV na działkę.

    Ten sam plik został użyty na wszystkich trzech platformach, co pokazuje, że LTspice produkuje plik WAV z pełną separacją kanałów, ale wynikowe odtwarzanie zależy w dużej mierze od jakości wykorzystanego odtwarzacza audio.

    Szyfrowanie głosu

    Obwód na rysunku 7 pokazuje podstawową metodę szyfrowania głosu, w której sygnał audio jest szyfrowany za pomocą losowej sekwencji liczb, a następnie deszyfrowany.

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.7. Wykorzystanie źródła losowego napięcia do szyfrowanie/deszyfrowania pliku audio.


    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.8. Losowe napięcia
    generowane za pomocą
    Excela i zapisywane
    w pliku tekstowym.
    Plik voice.wav zawiera oryginalny sygnał audio. Arkusz Excela wykorzystany jest do wygenerowania sekwencji liczb losowych, które zmieniać się będą w sygnale z okresem 100 mikrosekund. Rezultat jest kopiowany do pliku tekstowego random.txt, który wczytywany będzie do programu. Część pliku z sekwencją liczb losowych pokazano na [/b]rysunku 8[/b].

    Plik ten służy do generowania losowo zmieniającego się napięcia, V(RAND), przy użyciu liniowego źródła napięcia (PWL) w LTspice, które korzysta z wartości zapisanych w pliku random.txt.

    V(RAND) dodawane jest do sygnału głosowego za pomocą behawioralnego źródła napięcia B1. Dane wyjściowe są następnie mnożone przez V(RAND), a wynik jest zapisywany do pliku encrypt.wav. Słuchanie encrypt.wav nie pozwala na usłyszenie oryginalnego sygnału audio - dźwięk ten jest ledwo lub wcale niesłyszalny.

    Na rysunku 9 pokazano oryginalny sygnał audio (głos), zaszyfrowany głos i odszyfrowany sygnały audio. Wykres wygenerowany został w LTspice.

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.9. Oscylogram oryginalnego, zaszyfrowanego i zdekodowanego sygnału głosowego.


    Drugie behawioralne źródło napięcia zostało następnie użyte do odszyfrowania oryginalnego sygnału audio, a wynik został przesłany do pliku decrypt.wav.

    Rzadko zadawane pytania: jak wykorzystać pliki stereo WAV w LTSpice
    Rys.10. Tworzenie pliku WAV
    z napięcia różnicowego.
    Tworzenie pliku WAV ze źródła napięcia różnicowego

    Składnia polecenia .wave nie pozwala na digitalizację napięć różnicowych. Można to jednak łatwo rozwiązać za pomocą behawioralnego źródła napięcia, jak pokazano na rysunku 10.

    Behawioralne źródło napięcia B1 w układzie po lewej stronie generuje napięcie równe V (OUT1) - V (OUT2). Sygnału tego można następnie użyć w poleceniu .wave w zwykły sposób, jak pokazano na rysunku 10. Wynika to z faktu, że zmienne w funkcji behawioralnego źródła napięcia mogą obejmować dowolne sygnały - napięcie lub prąd w obwodzie i można nimi manipulować za pomocą dowolnej funkcji matematycznej dostępnej w LTspice. Wynik można następnie wyeksportować do pliku WAV audio LTspice w normalny sposób, jak każdy inny sygnał.

    Podsumowanie

    LTspice to potężny symulator układów elektrycznych, ale jego wyniki nie muszą być prezentowane i analizowane tylko w LTspice. Za pomocą polecenia .wave program ten może importować, manipulować i eksportować pliki audio w formacie wav, do dalszego odtwarzania w dowolnym odtwarzaczu multimedialnym.

    Takie podejście ma szereg zalet. Nie tylko pozwala na wygodne zapisywanie danych wyjściowych i przygotowywanie wzbudzeń dla symulowanych. Można wykorzystać także LTSpice jako swojego rodzaju generator arbitralny – wygenerowany sygnał można następnie odtworzyć, ale zamiast kierować go do słuchawek czy głośników, można go podłączyć do analizowanego, fizycznego układu. Nie jest to oczywiście precyzyjne źródło sygnału i nie zastąpi porządnego generatora laboratoryjnego, ale przy jego braku, okazać się może zbawieniem dla np. hobbystów.

    Źródło: https://www.analog.com/en/analog-dialogue/raqs/raq-issue-175.html

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 11099 posts with rating 9412, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • IGE-XAO