Jump to content
IGNORED

Dithering (24bit -> 20bit) - konsekwencje


hessus

Recommended Posts

Witam,

 

mam pytanie do zaprawionych w boju konwersji D/A. Zastanawiam się jakie (i czy?) są negatywne konsekwencje następuącego zestawienia bloków w przypadku budowy dac:

 

1. DIR (WM8804)

2. ASRC (AD1896)

3. 20bit R2R dac (AD1862), prawdopodobnie w uzyciu w trybie mono (1 per channel) ale tutaj raczej nie ma to znaczenia wiekszego.

 

Czytając datasheet ad1896, strona 22 jest: "When the output word width is less than 24 bits, dither is added to the truncated bits.". Pytanie: czy konwersja 24bit ->20bit (dokonana w ASRC) w powyższym zestawieniu wydaje się być akceptowalna?. A może jest inna / lepsza opcja jak obslużyć potencjalnei 24bity/96kHz z dacami R2R ktore mają zazwyczaj 16/20 bitow max? Z góry dziękuję.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

Dither jest dodany do tych bitów, które usuwasz i nie zostaje on przesłany do odbiornika. Konwersja 24 bitów do 20 bitów powoduje, że 4 ostatnie bity niosą ze sobą niskopoziomowy szum, ale te pierwsze 20 bitów nie zostaje w ogóle naruszone i są takie same jak przy 24 bitach na wyjściu.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

Witam,

 

mam pytanie do zaprawionych w boju konwersji D/A. Zastanawiam się jakie (i czy?) są negatywne konsekwencje następuącego zestawienia bloków w przypadku budowy dac:

 

1. DIR (WM8804)

2. ASRC (AD1896)

3. 20bit R2R dac (AD1862), prawdopodobnie w uzyciu w trybie mono (1 per channel) ale tutaj raczej nie ma to znaczenia wiekszego.

 

Czytając datasheet ad1896, strona 22 jest: "When the output word width is less than 24 bits, dither is added to the truncated bits.". Pytanie: czy konwersja 24bit ->20bit (dokonana w ASRC) w powyższym zestawieniu wydaje się być akceptowalna?. A może jest inna / lepsza opcja jak obslużyć potencjalnei 24bity/96kHz z dacami R2R ktore mają zazwyczaj 16/20 bitow max? Z góry dziękuję.

 

Nie wiadomo co sie wydarzy, bo twój układ i tak nie zadziała.

.3lite wcale nie musi mieć racji.

Bo w całym rozumowaniu jest wada - błąd polega na nie uwzględnieniu filtra (który musi byc za SRC) i wewnętrznej pracy samego SRC.

 

Jeżeli SRC ustawisz format wyjściowy na 20bitów to najniższy bit (w tym przypadku 20) i tak "dostanie" dither.

Bo wg mnie o ile pamięć nie myli , ale mogę się mylić - dither będzie dodawany do najniższego bitu ustawionego formatu wyjściowego obojętnie czy 24, czy też 20, no chyba że w dataszecie jest wyraźnie inaczej napisane.

Stąd też jak wyślesz format 20bitów do filtra to filtr dalej to przepuści do przetworników.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

@Waldi_06

 

Może teź tak być, ale zobacz sobie na poniższe zdanie:

 

When the output word width is less than 24 bits, dither is added to the truncated bits

 

"Dither is added to the truncated bits" - w wolnym tłumaczeniu brzmi to następująco: "dither dodany jest do obciętych bitów". Bity obcięte to właśnie te 4 LSB przy 20 bitowym strumieniu z 24 bitowego słowa. Może być inaczej, ale tak jest napisane.

 

Jak oni tam zrobili to trzeba sobie po prostu sprawdzić.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

@Waldi_06

 

Może teź tak być, ale zobacz sobie na poniższe zdanie:

 

 

 

"Dither is added to the truncated bits" - w wolnym tłumaczeniu brzmi to następująco: "dither dodany jest do obciętych bitów". Bity obcięte to właśnie te 4 LSB przy 20 bitowym strumieniu z 24 bitowego słowa. Może być inaczej, ale tak jest napisane.

 

Jak oni tam zrobili to trzeba sobie po prostu sprawdzić.

 

Oczywiście, że szum jest dodawany do "obcinanych" bitów, ale w związku z tym to, co pozostanie, jest inne niż zwykłe obcięcie.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

nagrywamy.com

Link to comment
Share on other sites

W ogólnym ditheringu? Tak, ale dithering sygnału robi się jeszcze przed obcięciem (truncation). W ASRC jakim jest SRC4192 dithering jest zawsze (cyt. "Data: All Output Data is Dithered from the Internal 28-Bit Data Path", więc jest to jasno napisane. W przypadku AD1896 przy obcięciu też tak powinno być, ale tego ci nie powiem.

 

Odpowiadając na pytanie w temacie - musisz sam sprawdzić. W praktyce dithering będzie lepszy, ale osobiście dla 18-bitowego DAC'a wybrałem czyste ucięcie bitów LSB. Zrób sobie przełącznik wyboru długości słowa i testuj w praktyce :)

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

Waldi, .3lite, dzieki za odpowiedzi. Nie ukrywam że fakt nieuwzględnienia filtru wynikał z mojego niezrozumienia roli ASRC w dacu .3lite (

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą ) ), myślałem że może być zastępczo stosowany z filtrami cyfrowymi, rozumiem ze nie bez zrobienia czegoś dodatkowo w ukladzie. Patrząc dokładniej w schemat daca (btw, bez wchodzenia w wazeline świadomie powiem że imponujący projekt;)) .3lite: ustawione ma asrc w trybie 24bit output word a ad1865 wspiera 18bit. Rozumiem ze z jakiegos powodu nie przeszkadza to niczemu i gdzies ta "stratność" w długości słowa odbywa się poza samym ASRC. Musze chyba jednak odrobić domowe lekcje i doszkolić sie z teorii D/A.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

W ogólnym ditheringu? Tak, ale dithering sygnału robi się jeszcze przed obcięciem (truncation).

 

Kurcze, ale piszesz co następuje:

 

Dither jest dodany do tych bitów, które usuwasz i nie zostaje on przesłany do odbiornika. Konwersja 24 bitów do 20 bitów powoduje, że 4 ostatnie bity niosą ze sobą niskopoziomowy szum, ale te pierwsze 20 bitów nie zostaje w ogóle naruszone i są takie same jak przy 24 bitach na wyjściu.

 

a to jest nieprawda....

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

nagrywamy.com

Link to comment
Share on other sites

Waldi, .3lite, dzieki za odpowiedzi. Nie ukrywam że fakt nieuwzględnienia filtru wynikał z mojego niezrozumienia roli ASRC w dacu .3lite (

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą ) ), myślałem że może być zastępczo stosowany z filtrami cyfrowymi, rozumiem ze nie bez zrobienia czegoś dodatkowo w ukladzie. Patrząc dokładniej w schemat daca (btw, bez wchodzenia w wazeline świadomie powiem że imponujący projekt;)) .3lite: ustawione ma asrc w trybie 24bit output word a ad1865 wspiera 18bit. Rozumiem ze z jakiegos powodu nie przeszkadza to niczemu i gdzies ta "stratność" w długości słowa odbywa się poza samym ASRC. Musze chyba jednak odrobić domowe lekcje i doszkolić sie z teorii D/A.

 

ASRC to też filtr cyfrowy i może być stosowany zamiast normalnego filtru, ale jak ASRC ma niską częstotliwość wyjściową (np. maksymalnie w okolicach 192 kHz) to filtr analogowy przyda się zrobić porządnie. W praktyce głównym zadaniem filtru analogowego jest stłumienie reszty aliasingu z którym nie poradził sobie filtr cyfrowy, ale przesunął go wyżej względem Fs, więc łatwiej go filtrować. Tłumienie samej Fs jest w tym wypadku drugorzędnym zadaniem, ale też znaczącym.

 

Ten projekt nie używa ditheringu i "stratność" odbywa się na rejestrach przesuwnych gdzie po prostu ostatnie 6 bitów LSB jest obcinane (truncation). Nie testowałem z ditheringiem, tj. jeszcze wtedy chciałem dodać przełącznik i użytkownik sam sobie miał wybierać, ale potem stwierdziłem, że nie ma to większego sensu.

 

Kurcze, ale piszesz co następuje:

 

a to jest nieprawda....

 

Przecież nie pisałem ogólnie o tym jak dithering działa, ale jak jak to może wyglądać w rozumieniu tego cytowanego zdania...

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )
Link to comment
Share on other sites

Przecież nie pisałem ogólnie o tym jak dithering działa, ale jak jak to może wyglądać w rozumieniu tego cytowanego zdania...

 

No ale naprawdę trzeba dużo złej woli i mało matematyki ;) żeby to tak zrozumieć - jeżeli do obcinanych bitów cokolwiek dodamy, to pozostała reszta MUSI się zmienić.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

nagrywamy.com

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

                  wykrzyknik.png

AdBlock blocking software detected!


Our website lives up to the displayed advertisements.
The ads are thematically related to the site and are not bothersome.

Please disable the AdBlock extension or blocking software while using the site.

 

Registered users can disable this message.