• 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.

USB Audio - forumowe "Amanero"

Nie przesadzajmy :) Pisałem o tym, że filtr możesz sobie zaimplementować np. w foobar i dane po nadpróbkowaniu wysyłać już do konwertera.
 
Jak się ma taki filtr w foobarze do takiego AD1896 czy układu Ologa? Nie będzie "gorszy"?
 
No właśnie w komputerze masz ogromną moc obliczeniową z której warto korzystać. Tym bardziej instrukcje SIMD są świetne do filtrów FIR i możesz zrobić takiej długości filtr, że głowa mała :) Nie wspominając o tym, że możesz operować nawet na podwójnej precyzji przy współczynnikach i końcowym wyniku mnożenia.

Co do filtru z AS - kolega Olek narobił się przy jego filtrze i robi robotę, ponieważ mam go u siebie i mogę ten projekt ocenić na bazie własnych doświadczeń :) Jak masz DAC, który przyjmie zegar na poziomie 22/24 to możesz śmiało go użyć a wymagany filtr analogowy będzie minimalistyczny. Nie zmienia to jednak faktu, że to jednak FPGA najniższej półki z mocno ograniczonymi zasobami i trzeba się nagimnastykować aby cokolwiek osiągnąć. Czasami odpalę coś na płytce z Artix-7 100T i tu już można mówić o sensownych zasobach, ale nikt nie wyda prawie 5 stów na sam układ.
 
Ostatnia edycja:
Z jednej strony fajnie zrobić rozbudowany filtr na PC, potem tylko upsampling na FPGA i łagodny filtr analogowy, jednak jesteśmy ograniczeni praktycznie do jednego urządzenia :) Fajnie by było mieć ten filtr zaimplementowany jednak w DACu.

Jakiej klasy FPGA trzeba użyć żeby zmieścić dobry filtr i upsampler do 768kHz?

Swoją drogą, pisząc sygnał różnicowy masz na myśli "zanegowane" wyjście danych do drugiego DACa żeby mieć różnicowe wyjście analogowe? ;)
 
Z jednej strony fajnie zrobić rozbudowany filtr na PC, potem tylko upsampling na FPGA i łagodny filtr analogowy

Filtr w komputerze robiłby już upsampling do 768 kHz :)

Jakiej klasy FPGA trzeba użyć żeby zmieścić dobry filtr i upsampler do 768kHz?

Jak jesteś obeznany w opisie sprzętu i znasz dobrze strukturę danego FPGA to i zrobisz na jakimś starszym z serii 3E, który posiada większą ilością mnożników. DSP48A1 doszły dopiero w serii 6 jak dobrze pamiętam, ale i tak obie serie posiadają mnożniki 18x18 bitów, więc trzeba je kaskadować aby osiągnąć większą rozdzielczość. Większa rozdzielczość to większa ilość kaskadowych slice'ów a ich ilość definiuje z jaką częstotliwości będzie musiał pracować rdzeń filtru, więc przy małych ilościach krytyczne będzie utrzymanie timingów. Kaskadowanie mnożników w serii 3 wygląda jak poniżej:

55d4d277d7ed71e97a0c3867d860e364_1528232677.jpg


Jakbym miał robić filtr na FPGA to bym pewnie poszedł w Spartan-7 i np. XC7S25 za stówkę, który posiada 80 DSP slice'ów i mnożniki 25x18.

Swoją drogą, pisząc sygnał różnicowy masz na myśli "zanegowane" wyjście danych do drugiego DACa żeby mieć różnicowe wyjście analogowe?

Tak, ale one nie są zanegowane a raczej odwrócone, np. wartość +100 na normalnej linii daje -100 na drugiej linii. Sama negacja bitów tworzy offset o 1, dlatego trzeba zrobić dwie operacje matematyczne (XOR + 1).
 
Hmm.. Czyli starczy nakładka na odbiornik, filtr w foobarze i można puścić sygnał na 4 DACi typu PCMXX. Udostępniasz wsad do tego projektu, czy raczej sprzedajesz cały moduł? Mam pomysł na kolejny projekt...
 
Fajnie, tylko taką mam wątpliwość. Czemu jedziecie wielokrotnością 48k, a nie 44,1k? Bo tak mi wychodzi, że po pierwsze większość muzyki jest w 44,1, a po drugie lepiej upsamplować liczbę całkowitą razy. Nie?
 
Hmm.. Czyli starczy nakładka na odbiornik, filtr w foobarze i można puścić sygnał na 4 DACi typu PCMXX. Udostępniasz wsad do tego projektu, czy raczej sprzedajesz cały moduł? Mam pomysł na kolejny projekt...

Tak, tyle wystarczy :) Wsad do FPGA jest tylko i wyłącznie do tego projektu.

Fajnie, tylko taką mam wątpliwość. Czemu jedziecie wielokrotnością 48k, a nie 44,1k? Bo tak mi wychodzi, że po pierwsze większość muzyki jest w 44,1, a po drugie lepiej upsamplować liczbę całkowitą razy. Nie?

No to właśnie dlatego ustawiasz końcową wartość interpolacji na 705,6 kHz albo 768 kHz - zależnie od odtwarzanego pliku :) Nikt nie będzie robił interpolacji a potem decymacji bo to nie ma sensu.
 
Co do filtru z AS - kolega Olek narobił się przy jego filtrze i robi robotę, ponieważ mam go u siebie i mogę ten projekt ocenić na bazie własnych doświadczeń :)

Czy mógłbyś choćby z grubsza opisać różnicę pomiędzy filtrem Olka, a filtrem w asrc ad1896, może podzielić się wrażeniami odsłuchowymi?
 
Niestety nie, ponieważ nigdy na nim nie grałem i nie porównywałem, tylko mierzyłem :)
 
Haha, no właśnie ja też czekam za testami odsłuchowymi, ale pomiary chyba Konradowi lepiej grają i mniej irytują :D
 
No właśnie w komputerze masz ogromną moc obliczeniową z której warto korzystać. Tym bardziej instrukcje SIMD są świetne do filtrów FIR i możesz zrobić takiej długości filtr, że głowa mała :) Nie wspominając o tym, że możesz operować nawet na podwójnej precyzji przy współczynnikach i końcowym wyniku mnożenia.

Co do filtru z AS - kolega Olek narobił się przy jego filtrze i robi robotę, ponieważ mam go u siebie i mogę ten projekt ocenić na bazie własnych doświadczeń :) Jak masz DAC, który przyjmie zegar na poziomie 22/24 to możesz śmiało go użyć a wymagany filtr analogowy będzie minimalistyczny. Nie zmienia to jednak faktu, że to jednak FPGA najniższej półki z mocno ograniczonymi zasobami i trzeba się nagimnastykować aby cokolwiek osiągnąć. Czasami odpalę coś na płytce z Artix-7 100T i tu już można mówić o sensownych zasobach, ale nikt nie wyda prawie 5 stów na sam układ.

Ale ta gimnastyka wyszła Olkowi naprawdę rewelacyjnie

- - - - - aktualizacja - - - - -

Niestety nie, ponieważ nigdy na nim nie grałem i nie porównywałem, tylko mierzyłem :)

Zamieścisz pomiary ? :)
 
Zamieściłem pomiar -60 dBFS w temacie z PCM58 na AS już jakiś czas temu ;)

Potem zamieszczę wam ciekawe pomiary z mojego USB Audio + FPGA i PCM58 w trybie NOS oraz z filtrem cyfrowym (np. Olka).
 
Zamieściłem pomiar -60 dBFS w temacie z PCM58 na AS już jakiś czas temu ;)

Potem zamieszczę wam ciekawe pomiary z mojego USB Audio + FPGA i PCM58 w trybie NOS oraz z filtrem cyfrowym (np. Olka).

Niestety nie znalazłem tam porównania filtru Olka z ad1896 :(
 
W sensie pomiarów? Nie przesadzajmy, to są dwa różne przetworniki oraz dwa różne filtry analogowe i nie ma co porównywać. Musielibyśmy mieć AD1896 razem z PCM58 oraz filtrem analogowym 10 rzędu i wtedy możemy mierzyć różnice w samych filtrach, które i tak nic sensownego nie pokażą ;)
 
a23f6e992072c9c9c77181ec66e9348a_1527527352.jpg


Taki addon :) Jego głównym zadaniem jest tworzenie różnicowych sygnałów w każdym formacie. Zanim ta rewizja płytki dotarła to już zdążyłem dodać zewnętrzne wejście I2S (przełączalne, USB Audio lub zewnętrzne) oraz osobny zegar dla formatu right-justified (teraz dane taktowane są względem głównego BCLK a można jeszcze go podzielić przez dwa).

SPDIF generowany jest z wejściowego I2S. Płytka ta nie używa wyjścia SPDIF z USB Audio. W praktyce ma działać z USB Audio w trybie slave, tj. sam będzie taktował DMA w CM6331A i być może tym razem uda się wyciągnąć 768 kHz, ponieważ logika siadała przy 60 MHz na wejściowym zegarze a tutaj nie będzie tego problemu, więc zobaczymy.

Nowa zabawka oprócz 768 kHz doda jeszcze natywne wyjścia DSD ;) W nowej rewizji PCB już dodałem wyjścia. Plik na komputerze będzie odtwarzany w formie DoP (DSD over PCM, nie ma tu żadnej konwersji, format jest w natywnej formie przesyłany ramką PCM), ale addon wykryje markery i wypuści DSD osobnymi kanałami (DSD_R + DSD_L) oraz wypuści osobny zegar dla DSD. Obsługa DSD64, DSD128 oraz DSD256.
 
W sensie pomiarów? Nie przesadzajmy, to są dwa różne przetworniki oraz dwa różne filtry analogowe i nie ma co porównywać. Musielibyśmy mieć AD1896 razem z PCM58 oraz filtrem analogowym 10 rzędu i wtedy możemy mierzyć różnice w samych filtrach, które i tak nic sensownego nie pokażą ;)
Skoro różnice pomiędzy filtrami są słyszalne , a w pomiarach jak twierdzisz różnicy nie będzie - to znaczy , że użyte zostały badziewne przyrządy pomiarowe :D
 
Nic takiego nie stwierdziłem, ponieważ nie sprawdzałem. Ty zmierz i porównaj wszystkie możliwe pomiary (THD, IMD, J-Test, itd.), potem daj nam znać co wyjdzie, ponieważ mnie też ciekawi ;) Przynajmniej dodasz jakieś merytoryczne treści do całej dyskusji.
 
A tak jeszcze dla jasności... Podłączam to do USB, sterowniki same się instalują(Win 7/10), podpinam DAC przez I2S i wsio działa, tak? A update firmware jak mi się zmian zachce?
 
Powrót
Góra