• Witamy w największym polskim serwisie internetowym poświęconym w całości zagadnieniom samodzielnej budowy nagłośnienia.
    Dzięki DIYaudio.pl poznasz zagadnienia samodzielnej budowy nagłośnienia od podszewki oraz będziesz mógł dyskutować o DIY audio do woli.

    Artykuły z dawnego portalu zostały przeniesione do sekcji forum na samym dole.

Filtr cyfrowy - czyli jak interpolować

No i jest specjalna edycja dla TDA1540 / TDA1541:

5f41f01fd43ad8b103f99404eee26127_1537539082.jpg


Przetwornik ten ma całkowicie inny format wyjściowy i wymaga trochę innego podejścia, więc musiała powstać taka wersja specjalna :)

Różnice między wersją filtru dla TDA1540/TDA1541 oraz główną wersją:

* 8-krotna interpolacja zamiast 16-krotnej, przy czym filtr został specjalnie przeprojektowany pod 8-krotną interpolację.
* Synchroniczny zegar CLK (brak własnego oscylatora). W praktyce wynosi on odpowiednio 5.6448 MHz oraz 6.144 MHz dla 44.1 kHz oraz 48 kHz.
* Synchroniczny sygnał LE działający jaki puls po zakończeniu taktowania.
* Format typu "offset binary" (odwrócony bit MSB względem formatu "2s complement").
* Dane są taktowane przy opadającym zboczu CLK.
* Wybór między 14 bitami (TDA1540) a 16 bitami (TDA1541).
* Wymagany MCLK 11.2896 MHz, 12.288 MHz, 22.5792 MHz, 24.576 MHz, 33.8688 MHz, 36.864 MHz, 45.1584 MHz lub 49.152 MHz.
* Maksymalny strumień wejściowy do 384 kHz.
 
No i mamy mały i super prosty DAC do tego filtru na AD1864:

b38def0f40029e910ad6efea4cf7e322_1538258082.jpg


d21599cf4318b0243460c21ef4432d0b_1538257508.jpg


151bd1d9a67f7b7ad86073f06f35811e_1538257514.jpg


b199eff819615995694f465ad6b2a73a_1538257502.jpg


e5dd1785111cb7260c8bce0a0148bf8b_1538257489.jpg


Przetwornik ten jest starszy od AD1865 a jakoś daje sobie radę z 768 kHz ;) Sam DAC to nic nowego, ponieważ bazuje na forumowej edycji, ale zminiaturyzowanej. Filtr analogowy to znowu FDNR, ale przeliczony na 3-rząd. I/V na AD811 oraz bufor ze wzmocnieniem na AD797. Wymiary płytki to 100 mm x 77 mm oraz posiada 4 mostki AC, więc jest wszystko na jednym bardzo małym PCB ;) Na pomiarze DAC zasilany bezpośrednio z transformatora i nie widać żadnych harmonicznych od tętnień zasilania. Dodatkowo dodałem dwa osobne przekaźniki (jeden podwójny na każdy kanał), które włączane są z opóźnieniem zrobionym na starym NE555. Dodatkowo moje wygodne podejście do życia nie pozwoliło zapomnieć o jednej rzeczy, tj. zasilaniu samego filtru cyfrowego, więc dodatkowo z płytki wychodzi +3.3V do zasilania filtru aby znowu nie kombinować z osobnym zasilaniem ;)
 
Podziwiam,

I muszę przyznać ze wstydem, że prawie nic nie rozumiem, pomimo opisywania kawa na ławę. Nie poddaję się, będę czytał co się da ale proszę o wyjaśnienie absolutnie nie zrozumiałego dla mnie tekstu:
TDA1541 - 16 bits 44.1 Mhz - jak może przyjąć sygnał 16/3xx kHz (co jest bez sensu z mojego punktu widzenia - stanu wiedzy) ?
Czy zupełnie nie rozumiem o co chodzi? *wiedza o takim facie jest też bardzo istotna")

Wiem, że to mój problem, że nie rozumiem :)
 
Ostatnia edycja:
Przetwornik TDA1541A może pracować do 6.4 MHz ;) 48 kHz * 8 (384 kHz) * 16 (ilość bitów) = 6.144 MHz.
 
Ten zestaw bylby idealny do prezentacji na AVS.
Jest troche osob technicznych, ktore zachwycaja sie ukladzikami przykreconymi do dechy.

I to... doceniaja, ze to DIY.
 
@ .3lite
Dzięki.
Czyli rozumiem, że filtr działa na danych wejściowych do 16 bitów i robi z nimi czary mary (czary mary w sensie pozytywnym, które poprawiają brzmienie). I ma tylko zastosowanie do materiału jakości CD?
 
Nie :) Filtr akceptuje słowo audio w pełni do 32 bitów. Operuje on na 32 bitowym słowie audio oraz 35 bitowych współczynnikach, więc końcowy wynik zapisany jest na aż 67 bitach. Teraz te 67 bitów, zależnie od wyboru, zmniejszane jest do 16, 18, 20 lub 24 bitów. Taka redukcja wprowadza pewne błędy kwantyzacji (wg. mnie nie są one znaczące), więc dodatkowo jest algorytm ditheringu (wprowadzenie sztucznego szumu, który zamienia błędy kwantyzacji na szum).

Filtr wykorzysta strumień 32 bitowy i tak go przemieli, że nawet 16 bitowy przetwornik wykorzysta taki materiał ;)
 
Ten zestaw bylby idealny do prezentacji na AVS.
Jest troche osob technicznych, ktore zachwycaja sie ukladzikami przykreconymi do dechy.

I to... doceniaja, ze to DIY.

Wybacz, nie zauważyłem tego posta. W każdym wypadku mogę wam pożyczyć całość ;)

AD1864 / AD865 można stosować zamiennie, tj. jedyna różnica to dodatkowe zasilanie ujemnej sekcji dla AD1864 (dodatkowy mostek AC). Normalnie AD1865 będzie działać w konfiguracji zasilania trzech mostków (tak jak w forumowym DAC'u):

1 kHz @ 0 dBFS:

b05c7d1306a088cfa71f71fa5625e8fc_1538330688.jpg


1 kHz @ -60 dBFS:

c089dc10090698fcbd550674d8baaf08_1538330686.jpg


1 kHz @ -96 dBFS:

bd22b46c02f465d6d27cee6ef7133023_1538330686.jpg
 
Ostatnia edycja:
Najwidoczniej jak coś mi chodzi po głowie to nie zrezygnuję z tego dopóki nie wyjdzie ;) Tym razem dosyć ciekawa sprawa, tj. filtr dostał nowy dithering oraz... noise shaping i przy sygnale -100 dBFS dla AD1865 wygląda to jak poniżej:

Bez zworki dither:

b96c6de5495ebe80861a63f5e24096c7_1539002113.jpg


Zworka dither:

a4afc6824c9350b66720f00660355024_1539128457.jpg


(Edytowany, parę zmian w noise shaping i ditheringu).
 
Ostatnia edycja:
Dobry dithering potrafi uzyskać dodatkowe teoretyczne bity w DAC'u. Najlepszym przykładem tego może być taki TDA1540, który ma 14 bitów i nie potrafi odtworzyć jakiegokolwiek sygnału poniżej tych -72 dBFS, ponieważ wygląda to następująco:

3659c7388da12e9e0c16da6ae500fa76_1539028245.jpg


Nie ważne jaką wartość amplitudy ustawię poniżej tych -72 dBFS (od -73 dBFS do -100 dBFS). Zawsze tak samo wygląda (jak wyżej), ponieważ przetwornik nie ma fizycznej możliwości odtworzenia bitów, które są poniżej jego rozdzielczości. W praktyce sygnał poniżej -72 dBFS to już taki raczej "switching noise"a niżeli cokolwiek sensownego ;)

Magia ditheringu pozwala odtworzyć sygnał -96 dBFS na takim 14 bitowym przetworniku:

e9754ff26e3452f06584ac65aeb2e3b5_1539028245.jpg


Mamy troszkę więcej szumu, ale za to mamy nasz sygnał i to jeszcze z możliwością regulacji amplitudy ;)
 
Ostatnia edycja:
No i mamy mały i super prosty DAC do tego filtru na AD1864.

Przetwornik ten jest starszy od AD1865 a jakoś daje sobie radę z 768 kHz ;) Sam DAC to nic nowego, ponieważ bazuje na forumowej edycji, ale zminiaturyzowanej. Filtr analogowy to znowu FDNR, ale przeliczony na 3-rząd. I/V na AD811 oraz bufor ze wzmocnieniem na AD797. Wymiary płytki to 100 mm x 77 mm oraz posiada 4 mostki AC, więc jest wszystko na jednym bardzo małym PCB ;) Na pomiarze DAC zasilany bezpośrednio z transformatora i nie widać żadnych harmonicznych od tętnień zasilania. Dodatkowo dodałem dwa osobne przekaźniki (jeden podwójny na każdy kanał), które włączane są z opóźnieniem zrobionym na starym NE555. Dodatkowo moje wygodne podejście do życia nie pozwoliło zapomnieć o jednej rzeczy, tj. zasilaniu samego filtru cyfrowego, więc dodatkowo z płytki wychodzi +3.3V do zasilania filtru aby znowu nie kombinować z osobnym zasilaniem ;)

Ja to bym chętnie zobaczył DAC'a na AD1862 do tego projektu i dodatkowo rezystory mmelf w torze audio (nie są wiele większe).
AD1862 strasznie rzadko widać w projektach DIY, a na papierze to jedna z najlepszych kostek Analoga.
Z tego co czytałem dźwiękowo też bardzo dobra, nawet Lampizator zastanawiał się czy nie lepsza od AD1865.
 
Posiadam AD1862 i też będzie rewizja z tym przetwornikiem ;)

Główne rezystory są THT (te od wzmocnienia na buforze i konwersji I/V). Jedyna filtr posiada 0805 i tak pozostanie w tym wypadku.
 
Druga i finalna rewizja dla AD1865 gotowa i przetestowana :)

Wszystkie fajnie się prezentuje:

4bdbf08ed58e8e0324e87aadf39b29e4_1539640580.jpg


Akurat tutaj sygnał I2S generowałem z zaprojektowanego DDS'a w FPGA ;)

Filtr jest zasilany bezpośrednio z DAC'a. Jeden transformator i więcej nie potrzeba.

Tak to wygląda w przybliżeniu:

8f66def392319946c42e95ce6eabe79e_1539640564.jpg


No i bardzo fajnie wychodzi z ditheringiem przy sygnale -96 dBFS:

78adbc4eaed61fc2d34519d8ecd366bd_1539688896.jpg


Przy -2 dBFS (jest dosyć duże wzmocnienie na analogu) wygląda jak poniżej:

5d5ec3596deb137328a24c1c596a11b5_1539688896.jpg


Dodatkowo pojawiła mi się nowa zabawka:

8b23ac0db4a974bf2dd8d1754c56ab8f_1539640597.jpg


85f2f829d7c7640ba8cba7142c5d8993_1539640588.jpg


6dc88674ed20a9dd13320891ef682907_1539340578.jpg


No i może wezmę się wreszcie za przerobienie projektu pod 2x AD1862 ;)
 
Ostatnia edycja:
Tak, miałem go tu wrzucić, ponieważ już na diyaudio.com wysyłałem aby poirytować ludzi ;) Po czasie nawet doszedłem do tego, że ludzie, którzy preferują NOS i zawzięcie odrzucają poprawną filtrację, preferują konwersję na rezystorze o dużej wartości i podobne rzeczy po prostu nie słyszą i nie wiedzą jak co powinno brzmieć. Tak, jest to mocno subiektywne, ale jak ktoś nie słyszy zniekształceń czy przeskakiwanych bitów* to o czym mu tu rozmawiamy.

Można wrzucić prosto z youtube:


Poniższy obrazek jest najlepszy:

af18d7a65331eb72c75acc288804720c_1539871506.jpg


*Na diyaudio.com po latach wyszło na jaw, że ich "Ian's board I2S to PCM" źle taktuje dane do TDA1541 (podczas zbocza narastającego BCLK). Nawet udzielałem się w tym temacie próbując im to udowodnić i zaoferować pomoc w naprawieniu problemu (bramka NOT na BCLK), ale szło to tak topornie, że sobie darowałem. W sumie jak to gościu napisał - gdyby nie charczenie co jakiś czas to naprawdę dobrze mu to gra :D Dodatkowo dwóch gości się uwzięło, że słyszą jeden stracony bit LSB ( bo to też jeden z problemów "Ian's board", ponieważ taktuje tylko 15 bitów zamiast 16, ale to naprawdę nie zrobi różnicy dla TDA1541A) i to na pewno przez to czasami charczy.
 
Ostatnia edycja:
... Magia ditheringu pozwala odtworzyć sygnał -96 dBFS na takim 14 bitowym przetworniku:

e9754ff26e3452f06584ac65aeb2e3b5_1539028245.jpg


Mamy troszkę więcej szumu, ale za to mamy nasz sygnał i to jeszcze z możliwością regulacji amplitudy ;)

Przetwornikowi brakuje trochę bitów, więc może noise shaper 2-rzędu do wydobycia detali z szumu:

-96 dBFS:

dd091bc1cb495bf104d151b07424ae97_1539905707.jpg


-60 dBFS:

9bd179ba58473d8554c93a003b2090c2_1539905707.jpg


Teoretycznie 11 dB zysku na szumie w najbardziej słyszalnym zakresie ;) Po prostu większość szumu, który rozprasza błędy kwantyzacji przerzuciłem na wysokie częstotliwości gdzie nie jest on już tak dokuczliwy.

Parę trików i można wyciągnąć dodatkowe bity. Muszę kiedyś zrobić jakiś DAC na TDA1540, ponieważ ciekawi mnie ten stary przetwornik :)
 
Powrót
Góra