X4L - wzmacniacz z DSP z serii X
Biznes „nagłośnieniowy” – w porównaniu z innymi dziedzinami techniki (np. przemysłem samochodowym, czy ...
W tym odcinku cyklu „Technika cyfrowa” przejdziemy do praktyki i opowiemy sobie co nieco na temat praktycznych realizacji konwerterów analogowo-cyfrowych i cyfrowoanalogowych, zagaimy coś na temat takich sposobów konwersji jak ADPCM, µ-law czy A-law, natomiast za miesiąc dowiemy się, co to jest takiego dither i kształtowanie widma szumu, gdzie się to wykorzystuje i jakie wymierne efekty przynosi wykorzystanie tych zjawisk.
Co to jest konwerter? Urządzenie, które konwertuje. A tak na poważnie, jest to u rządzenie, które wykonuje zamianę np. jakiegoś sygnału, z jednego formatu na drugi. Czyli np. zamienia sygnał analogowy na cyfrowy albo sygnał cyfrowy, ale zapisany w formacie 96 kHz/24 bit, na cyfrowy w formacie 44,1 kHz/16 bit. No to konwerter mamy „z głowy”.
A cóż to jest to PCM? Rozszyfrowanie tego skrótu to Pulse Code Modulation, czyli modulacja kodowo-impulsowa. Jest to jeden z dwóch najbardziej popularnych formatów cyfrowych obecnie stosowanych. Polega ona na tym, że wartość danej próbki dźwięku zapisujemy w formie słowa n-bitowego (np. 16-bitowego, 24-bitowego). Jak wygląda takie „słowo” n-bitowe pisałem w pierwszym odcinku cyklu – dla przypomnienia, słowo 8-bitowe 00100111 zapisane w kodzie dwójkowym to liczba 39 zapisana w „ludzkim” kodzie dziesiętnym.
No dobrze, ale jak „zmierzyć” wartość naszej próbki? Przecież nie przyłożymy jej do jakiejś linijki, a poza tym próbka może mieć wartość, dajmy na to 12.21035, a my dysponujemy skończoną liczbą przedziałów kwantowania i nie zapiszemy tej próbki z taką dokładnością. W tym celu musimy zastosować zaokrąglanie (pisałem o tym w zeszłym miesiącu). Ale możemy tę robotę „zlecić” urządzeniu, które za jednym zamachem zmierzy wartość danej próbki i dokona przyporządkowania jej do odpowiedniego przedziału kwantowania. Takim urządzeniem jest właśnie konwerter PCM, z tym że istnieje kilka ich rodzajów, w zależności od metody dokonywania tych zabiegów. Najczęściej stosowaną z nich jest
która polega na kompensowaniu (czyli równoważeniu, nazywajmy rzecz po imieniu) analogowego napięcia na jego wejściu (czyli tego, które mamy przetworzyć na słowo cyfrowe) za pomocą napięcia kompensującego w taki sposób, aby zmniejszyć maksymalnie różnice pomiędzy nimi. Dokonuje się tego w bardzo prosty sposób (choć sam opis może niekoniecznie o tym świadczyć, ale spróbujmy).
Schemat blokowy naszego konwertera przedstawiony jest na rysunku 1. Mamy tu konwerter cyfrowo-analogowy w pętli sprzężenia zwrotnego. Może wygląda dziwnie, że w skład konwertera A/C wchodzi konwerter C/A, czyli jego odwrotność, ale uwierzcie mi, jest ono uzasadnione. Poza tym mamy tu jeszcze takie „rarytasy” jak: rejestr przesuwny, rejestr wyjściowy oraz inne, mniej dla nas istotne „dodatki”. Ponieważ nie każdy robił doktorat z techniki cyfrowej, pokrótce co to są za urządzenia i do czego służą.
Rejestr przesuwny to coś jak kolejka do dentysty, który ma w poczekalni tylko określoną liczbę miejsc. I tak np. rejestr przesuwny 8-bitowy to „dentysta”, z poczekalnią na 8 miejsc. Wchodzi pierwszy pacjent i zajmuje krzesełko zaraz przy drzwiach wejściowych (ważne jest, że siada przy drzwiach, a nie od razu na krześle przy gabinecie). Dopiero kiedy wejdzie drugi pacjent, ten pierwszy przesuwa się o jedno krzesełko bliżej gabinetu, czyli na pozycję nieco „ważniejszą”, a ten, co właśnie wszedł siada na ostatnim miejscu. I tak po kolei, aż ten, co przyszedł pierwszy zajmuje najbardziej dla nas ważną pozycję (czyli przy gabinecie), a ostatni przychodzący siedzi przy drzwiach, czyli na pozycji najmniej istotnej. W tym momencie wchodzi pielęgniarka, czyli nasz rejestr wyjściowy, i spisuje dane poszczególnych pacjentów w zależności od miejsca przez nich zajmowanego, dajmy na to ich płeć. I tak, stwierdza, że siedzi np.: facet, facet, facet, baba, baba, facet, facet, baba, czyli 11100110 (bez aluzji, akurat tak sobie zapisywała: facet –1, baba – 0).
W ten sposób może za jednym zamachem przekazać dane o wszystkich ośmiu osobach jednocześnie, a nie spisywać za każdym przyjściem nowego pacjenta. Dalej jest tak, że dentysta zaczyna przyjmować i nowi pacjenci wchodzą w miarę, jak ci z poczekalni wchodzą do gabinetu, kolejka znów się przesuwa i kiedy ostatni z pierwszej tury opuści poczekalnię, a w niej pozostają „nowi” pacjenci, nasza pielęgniarka-rejestr wyjściowy znowu spisuje potrzebne jej dane. I tak w koło. Ale rozgadaliśmy się, a to nie pismo dla dentystów. Wrócimy teraz do naszego konwertera i prześledźmy jego działanie.
Opis słowny konwertera jest doprawdy o wiele bardziej skomplikowany i „niejadalny” dla zwykłego śmiertelnika, niż sama zasada działania. Łatwiej będzie go wytłumaczyć, gdy spojrzymy na rysunek 2. Wartość poszczególnych kroków konwertera obliczana jest ze wzoru UR/2n, gdzie n to numer kroku. W pierwszym więc, gdy n=1, wartość kroku wynosi UR/21, tj. uR/2. Pierwszy krok jest więc zawsze największy i wynosi połowę zakresu przetwarzania. Ponieważ napięcie UI jest większe od kompensującego w rejestrze, na pozycji pierwszej wpisywane jest „1”. Drugi krok jest o połowę mniejszy, gdyż UR/22 = UR/4. Tym razem UI jest mniejsze, więc wpisujemy w rejestr „0” i zmniejszamy wartość napięcia kompensującego do poprzedniej wartości kroku. Kolejny krok równy jest UR/23 = UR/8.
Tym razem napięcie UI jest mniejsze, więc wpisujemy „1” i zwiększamy napięcie o kolejny krok, i tak aż do ostatniego kroku. W ten sposób otrzymaliśmy cyfrową reprezentację naszej próbki dźwięku, z dokładnością do najmniejszego kroku konwertera, która w przypadku konwertera 8-bitowego wynosi UR/256, 16-bitowego – UR/65.536, a w przypadku konwertera 24-bitowego dokładność konwersji wynosi UR/16.777.216. Możemy zauważyć, jak „drastycznie” zwiększa nam się dokładność konwersji w przypadku zwiększenia ilości bitów z 8 na 16, a co dopiero z 8 na 24. Metoda kompensacji wagowej polega na przetwarzaniu chwilowej wartości sygnału wejściowego, zatem jej zmiany w trakcie konwersji mogą powodować powstawanie błędów.
Dlatego konieczne jest stosowanie układu próbkująco-pamiętającego na wejściu konwertera. Natomiast dużą zaletą tego rodzaju konwerterów jest duża szybkość przetwarzania, czyli krótki czas konwersji. Czas ten jest równy iloczynowi rozdzielczości bitowej konwertera i czasu trwania jednego kroku.
Metoda ta jest jakby metodą kompensacji wagowej, ale „od tyłu”. Tzn. mamy tu również do czynienia z porównywaniem sygnału na wejściu z sygnałem kompensującym, z tym że w tym przypadku napięcie kompensujące zwiększa się o stałą wartość, równą wartości najmłodszego bitu (w przetworniku wagowym zmiany zaczynały się od najstarszego bitu). Generator impulsów sterujących generuje kolejny impulsy sterujące, zwiększające sukcesywnie narastanie napięcia kompensującego i zwiększając stan licznika zliczającego te impulsy.
Zakończenie zliczania impulsów następuje wtedy, gdy napięcie kompensujące staje się wyższe od wartości napięcia wejściowego (rysunek 3). Przebieg napięcia kompensującego ma kształt schodkowy, amplituda każdego schodka jest równa ?UK=UR/2n, a czas trwania schodka jest równy okresowi generatora zegarowego. Stan licznika po zakończeniu zliczania impulsów odzwierciedla wartość sygnału wejściowego. Czas konwersji jest uzależniony od wartości przetwarzanego sygnału.
Ta metoda jest najszybsza, ponieważ w tym przypadku występuje porównywanie wartości napięcia na wejściu jednocześnie ze wszystkimi poziomami kwantowania. Zmiana stanu następuje równocześnie we wszystkich komparatorach, których napięcie progowe jest niższe od wartości sygnału wejściowego. Metody tej nie stosuje się jednak w przypadku kwantowania za pomocą dużej liczby bitów (więcej niż 8), a więc w systemach o dobrej jakości, ponieważ konwerter taki składa się z 2n-1 komparatorów, polaryzowanych z dzielnika rezystorowego, a to oznacza, że w przypadku konwertera 16-bitowego tych komparatorów musiałoby być 65.536, a w konwerterze 24-bitowym byłoby ich aż 16.777.216!
Konwersja PCM jest konwersja liniową, tzn. charakteryzującą się stałą szerokością przedziałów kwantowania. Onegdaj, biorąc pod uwagę ograniczenia pasma, stosowało się metody łączące w sobie konwersję i kompresję. Pierwsza z nich, ADPCM, to metoda adaptacyjna różnicowej modulacji impulsowo-kodowej, oparta na systemach redukcji przepływności binarnej BRR (ang. Bit Rate Reduction) i mająca wiele zalet, jak choćby w miarę dobrą jakość dźwięku przy zmniejszonej liczbie bitów na próbkę i mniejszej częstotliwości próbkowania. Konwerterom tym towarzyszy jednak dość znaczny szum oraz zniekształcenia. Kolejne dwa – µ-law i A-law – to konwertery stosowane wyłącznie w telefonii i telekomunikacji, pozwalające zmniejszyć liczbę bitów na próbkę z 16 na 8, zapewniając przy tym lepszą jakość dźwięku, niż standardowy konwerter PCM 8-bitowy. I może to wystarczy.
Skrót DM pochodzi od słów Delta Modulation. Jest to po prostu konwersja jednobitowa, o której szerzej pisałem w poprzednim odcinku. O wiele częściej stosuje się jej bardziej rozbudowaną wersję czyli
„Optyczną” różnicą pomiędzy konwerterem delta a sigma-delta jest zmiana położenia integratora (integrator dokonuje całkowania sygnału, a jak to robi, niech pozostanie jego słodką tajemnicą). Ilość integratorów determinuje rząd konwertera. Na rysunku 4 pokazano schemat blokowy konwertera sigma-delta pierwszego rzędu (z jednym integratorem). Gdy rząd układu jest wyższy niż 2, konwerter sigma-delta może stać się niestabilny. W procesie rekonstrukcji sygnał skwantowany jest podawany na filtr dolnoprzepustowy, który ma za zadanie usunięcie szumu położonego poza pasmem użytecznym. Następnie sygnał jest decymowany (jak pamiętamy, przy konwersji jednobitowej sygnał jest nadpróbkowany, a więc za pomocą decymacji powracamy do jego pierwotnej częstotliwości próbkowania).
Ponieważ w procesie nadpróbkowania następuje rozsunięcie widm, możemy zastosować filtr o dość szerokim paśmie przejściowym, co w konsekwencji pozwala na złagodzenie wymagań dotyczących charakterystyk filtrów. Dwie główne zalety konwerterów sigma- delta to uniknięcie problemów nieliniowości, występujących w konwerterach wielobitowych, oraz złagodzenie wymagań dotyczących filtrów. Choć konwersja jednobitowa powoduje powstawanie większego błędu kwantyzacji, to jednak pasmo szumu kwantyzacji jest szersze, dzięki czemu na użyteczne pasmo częstotliwości przypada tylko mała część energii szumu kwantyzacji, co ułatwia uzyskanie wysokiej wartości stosunku sygnału do szumu w paśmie użytecznym. Jeżeli zaobserwowalibyśmy postać czasową sygnału cyfrowego, kwantowanego 1-bitowo, przy bardzo dużej częstotliwości próbkowania zauważylibyśmy, że przypomina ona postać oryginalnego sygnału analogowego.
W konwersji jednobitowej mamy do czynienia z dwoma rodzajami błędów: błędem nienadążania, gdy sygnał zmienia gwałtownie swój poziom, oraz szumem granulacyjnym, powstającym przy małych sygnałach. W konwerterze typu delta można więc wykorzystać algorytm zmiennopozycyjny, dający znaczący wpływ stosunku sygnału do szumu. Algorytm taki polega na takim wyborze wartości przyrostu, aby był on uzależniony od zmian sygnału. W przypadku gwałtownego wzrostu poziomu sygnału wartość przyrostu jest zwiększana, aby uniknąć ograniczania szybkości narastania sygnału. Natomiast w przypadku małych sygnałów wartość przyrostu jest odpowiednio zmniejszana, aby zmniejszyć szum granulacyjny.
Działanie systemu jest zdeterminowane przez specjalny algorytm zmniejszania i zwiększania wartości przyrostu oraz przez zakres zmian tego przyrostu. Stosuje się dwie metody: adaptacja w przód i adaptacja wstecz. Adaptacja wstecz polega na dokonywaniu estymacji sygnału na wyjściu kwantyzera. Adaptacja w przód jest oparta na estymacji próbek nieskwantowanych. Estymacja wartości kroku uzyskana za pomocą metody adaptacji w przód nie jest zniekształcana przez szum kwantyzacji, jest zatem bardziej wiarygodna. Jednak system musi przenieść dodatkową informację na swoje wyjście. Adaptacja wstecz nie jest dokładna, ale nie są w tym przypadku potrzebne dodatkowe bity do przeniesienia informacji o wartości zmieniającego się skoku.
Tak to w skrócie zrobiliśmy przegląd konwerterów analogowo-cyfrowych. Pozostały nam jeszcze do omówienia zagadnienia redukcji szumów i zniekształceń w układach konwersji analogowo-cyfrowej oraz przedstawienie układów, dzięki którym znów możemy usłyszeć nasz dźwięk w formie „zdatnej” do słuchania, tzn. coś o przetwornikach cyfrowo-analogowych. Ale o tym w przyszłym miesiącu.
Jan Erhard
Jan Erhard z wykształcenia jest informatykiem i specjalistą od sieci cyfrowych, zaś z zamiłowania muzykiem. Zajmuje się też realizacją dźwięku, stąd jego zainteresowania i duża wiedza na temat cyfrowego przetwarzania sygnałów.