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

Atmega a dźwięk (filtr). Możliwość obrabiania dźwięku.

naimado 21 Gru 2011 17:45 1691 5
  • #1 21 Gru 2011 17:45
    naimado
    Poziom 9  

    Czy na mikro-kontrolerze Atmega da się obrabiać dźwięk? np czy mógłby działać jako filtr?

    0 5
  • #2 21 Gru 2011 18:19
    nsvinc
    Poziom 35  

    A czemu by nie mógł móc działać jako filtr cyfrowy? Pytanie tylko, co chcesz filtrować, jakie jest pasmo filtrowanego sygnału itp itd...

    0
  • #3 21 Gru 2011 18:55
    naimado
    Poziom 9  

    miało by to w pewnym sensie zastąpić zwrotnice zwrotnicę. Były by 3 niezależne układy z Atmega. Każdy miałby mieć regulowane granicę cięcia pasma i poziom głośności.

    Dodano po 3 [minuty]:

    Teoretycznie pasmo może być od 16 Hz do ok. 20 kHz.

    Dodano po 6 [minuty]:

    sygnał podany miałby być wzmocniony końcowką mocy ale to już potrafię.


    Powiem że ideowy plan wyglądał żeby mikro-kontroler przetwarzał już wzmocniony dźwięk, a sygnał przetworzony od razu szedł na głośniki. Ale to raczej byłoby już dużo trudniejsze do realizacji, też tak myślicie?

    0
  • #4 21 Gru 2011 19:03
    nsvinc
    Poziom 35  

    Czyli chcesz filtrować dźwięk. Ale nadal nie wiemy jakie pasmo...

    Jeśli obchodzi cię pasmo audio (DC..20kHz) to dla jakości Audio CD (16bit x samplowanie 44100Hz) masz 22.67us czasu między kolejnymi 16bitowymi próbkami. Przy taktowaniu procesora 16MHz, instrukcja "jednocyklowa" wykonuje się w 62.5ns. Więc pomiędzy kolejnymi próbkami wykonasz 362 instrukcje. Twój procesor jest 8bitowy, więc aby przetworzyć 16bitowa próbkę, musi wykonać dwa razy więcej instrukcji, niż dla 8 bitowej próbki. Zostaje ci 181 operacji na 16bitowej próbce pomiędzy kolejnymi próbkami. A pominąłem fakt, że 8bitowy procesor zużyje na przetwarzanie 16bitowego słowa średnio więcej niż dwie instrukcje. W szczególności, że w kodzie filtra są głównie mnożenia, a ten AVR tego sprzętowo robić nie potrafi. Dodatkowo pominąłem obsługę przerwań (przecież nie ma DMA...), pętle, skoki...
    Nie ma szans aby to chodziło po ludzku... Jeśli zastosujesz filtry IIR o łagodnych charakterystykach odcięcia, być może uzyskasz jako taki efekt. Ale czarno to widzę.

    Jeśli chcesz budować cyfrowe filtry do kolumn aktywnych, to najpierw poznaj takie architektury mikrokontrolerów, które sobie z tym poradzą nie dostając zadyszki, tj. 16bitowe PICe, różnej maści ARMy (nawet LPC11xx!), czy specjalizowane do DSP procki firmy np. Analog Devices czy TI.

    Jeden STM32F103x poradziłby sobie z filtrowaniem wszystkich trzech kanałów, obsługą jednego dobrego ADC 16b/44.1k, i trzech dobrych DACów 16b/44.1k.
    Jeden STM32F2xxx poradziłby sobie z filtrowaniem najpewniej też trzech kanałów w super jakości 24b/192k i obsługą peryferiów (ADC i DAC).
    Jeden TMS570 na rdzeniu Cortex R4F poradzi sobie z filtrowaniem trzech kanałów w jakości 24b/192k i dodatkowo obsłuży trzy kanały PWM do sterowania trzema wzmacniaczami w klasie D (jeden tor na jeden głośnik) ;)

    Dobrze zgrana (wiem z doświadczenia) parka STM32F103xx+dsPIC33FJxxGSxxx będzie potrafił to samo co TMS570, tyle, że wyjdzie taniej i łatwiej oprogramować całość...

    0
  • #5 21 Gru 2011 19:20
    naimado
    Poziom 9  

    Te mikro-kontrolery o których wspomniałeś są łatwo dostępne na polskim rynku? podejrzewam że one mogą być dość drogie.

    0
  • #6 21 Gru 2011 19:39
    nsvinc
    Poziom 35  

    Nie no, to jest prowokacja?... Drogie i niedostępne STM32? Niezdobywalne dla przeciętnego śmiertelnika dsPICe?
    To już ręce opadają, i nawet nie ma co odsyłać do wyszukiwarki, google, sklepów (polskich!!), bo to przypadek beznadziejny.

    Moze Tutaj?

    0