Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atlys Board - fdatool - filtr audio

jaitylkoja 28 Gru 2012 16:58 1263 1
  • #1 28 Gru 2012 16:58
    jaitylkoja
    Poziom 6  

    Cześć,


    Zaprojektowałem kontroler wraz z maszyną stanu do komunikacji i sterowania z kodekiem lm4550 znajdującym się na Atlys Board. Dodałem dynamiczną zmianę głośności i źródła dźwięku (line-in, microphone) za pomocą switchy zgodnie z mapą rejestrów. Mój schemat wygląd następująco:

    Atlys Board - fdatool - filtr audio

    No i to wszystko działa, co prawda jakoś odsłuchiwanego dźwięku jest trochę gorsza niż normalnie, ale jest akceptowalna dla moich zastosowań.

    W miejsce przerzutników D chciałem zastosować filtr cyfrowy generowany przez środowisko matlab (fdatool). I tu zaczęły się schody. Filtry FIR w kosymulacji matlab-active działają bez zarzutu, efekt filtracji jest słyszalny a także widać go na wykresie widmowym. Po implementacji takiego filtru, relatywnie niskiego rzędu, na płytkę słychać charakterystyczne trzaski o dużej amplitudzie pojawiające się przy niskich częstotliwościach (do 200-500 Hz), niezależnie od tego czy jest to fitr dolno-, górno-, czy pasmowoprzepustowy. O wiele lepiej sprawują się natomiast filtry IIR generowane przez to samo narzędzie. Co prawda trzaski występują (choć sporadyczne i niewielkie), jednak nie to jest problemem. Zarówno w symulacji, jaki i sprzętowo dochodzi do sporego tłumienia (z 20 dB) w zakresie pasma przepustowego filtru. Mogę to łatwo zaobserwować, zamieniając jednego ze switchy na switch odpowiedzialny za włączenie/wyłącznie filtru. Reszta właściwości filtrów jest w gruncie rzeczy spełniona. Z czego może wynikać ten problem? Z niewłaściwie generowanych filtrów? Z przetworników na Atlysie? Z biednej karty dźwiękowej mojego laptopa? A może z użycia zbyt dużych zasobów sprzętowych?

    Sprzęt testuję podłączając kabel jack-jack z wyjściem audio mojego laptopa z wejściem LINE_IN płytki, słuchawki podłączam do Hdph_out.

    Pozdrawiam i dzięki za odpowiedzi.

    PS gdy będę chciał połączyć TB (matlab_interface) ze sprzętem, to w jaki sposób ustawiać plik .ucf? Matlab interface, będący elementem TB, komunikuję się z kontrolerem za pomocą równoległych wejść L/R IN i wyjść L/R_out, synchronizowany sygnałem ready, mający w sobie sygnał zegarowy clk 100Mhz (sygnał mający pin na płytce) i n_reset aktywowany stanem niskim. Mam przypisywać piny n_reset i clk do poszczególnych pinów na płytce, czy po prostu ustawiam je w TB jako stimulator?

    PSS Jeśli coś jest niejasne, to postaram się odpowiedzieć/dołączyć skriny/fragmenty kodu.

    0 1
  • Sklep HeluKabel
  • #2 29 Gru 2012 13:39
    Dave_PL
    Poziom 14  

    Tłumienie nie powinno występować w paśmie przepustowym, więc coś jest nie tak. Trzasków też nie powinno być - jak coś to lekkie pogorszenie jakości dźwięku (w zależności od rozdzielczości przetwornika)

    I nie da się podłączyć Matlaba ze sprzętem (no chyba, że chodzi Ci o podłączenie L_OUT z płytki do L_IN kompa i analizowanie sygnału). Idea kosymulacji jest taka, że cześć HDL (sterowanie kodekiem) symulujesz w symulatorze, a część nazwijmy to nieprecyzyjnie wysokiego poziomu (filtry) symulujesz w Matlabie i sprawdzasz czy cały system działa. Jak w symulacji wszystko jest ok to wrzucasz kod filtra wygenerowany przez Matlaba do swojego projektu i całość symulujesz w symulatorze. W teorii powinno działać to tak samo jak w połączeniu z Matlabem, wówczas jak tak jest to wrzucasz to na płytkę i sprawdzasz działanie.

    0