Dopiero się przymierzam do tego projektu. Ma to być układ wykorzystujący AVR, więc raczej złożoność obliczeń nie może być zbyt duża, chcę by dźwięk był wysyłany w jakości 44kHz/16bit, ma być nakładany na oryginalny sygnał i dzięki różnicy faz z sygnału ma być usuwane to co niepożądane (nie chcę psuć sygnału wyjściowego (analogowego) niedoskonałością przetworników). nie ma to być rozwiązanie profesjonalne (w tym względzie, żeby było stosowane w studiu). chodzi przede wszystkim o praktycznie amatorskie zastosowanie do usuwania różnego rodzaju szumów, brumów i innych ciągłych, mało zmieniających się sygnałów.
Na początku myślałem głównie o usuwaniu brumu, czyli czegoś o określonej częstotliwości, co zmienia się w bardzo niewielkim stopniu. No i pomysł prosty. Gdy użytkownik włączy filtr, zostanie pobrana odpowiednia próbka (program pobierze kilka okresów tego brumu do zewnętrznej pamięci) i teraz
albo spróbuje się zsynchronizować z sygnałem wejścia (skoro pobrał kilka okresów, to znana jest częstotliwość) i będzie wysyłać odwrócony w fazie sygnał na wyjście
albo: skoro na wejściu mam ten sam sygnał na który będzie nakładany ten do usuwania brumu, to mogę sprawdzać czy po nałożeniu tego odwróconego w fazie na wejściowy powstaje sygnał o mniejszej amplitudzie (biorąc średnią kilkudziesięciu próbek). jak przejdę tak kilka okresów będę wiedział w jakim położeniu na wyjściu powstaje najcichszy sygnał (czyli kiedy filtr jest idealnie zgrany).
Wciąż pozostaje problem, że częstotliwość brumu może się okresowo zmieniać, więc myślałem o jakiejś interpolacji, ale zaś jej liczenie chyba zadusi mikroprocesor, a do dyspozycji jest 16MHz. Jeśli chodzi o obliczenia, proces analizy szumu itd. (po pobraniu próbki) może trochę potrwać, ale już samo usuwanie szumu powinno działać w czasie rzeczywistym.
To założenia, ale uznałem, że może by spróbować zrobić coś uniwersalnego, wykorzystującego jakiś dobry, szybki algorytm. Jak zauważyłem przy testach na komputerze w edytorze audio, to co powstanie po takim usunięciu brumu nie da się już "oczyścić" w ten sam sposób.
Jak widać jestem jeszcze dość zielony. prosiłbym o jakieś nakierowanie na pewne zagadnienia, porady... Wiem, że profesjonalne algorytmy kosztują majątek, więc wymyślenie tego to nie jest prosta sprawa, ale może są jakieś dobre darmowe sprawdzone algorytmy? Dostępny jest choćby ten z Audacity (choć jego wyniki są raczej kiepskie).
Nie bardzo wiem jak spojrzeć na sygnał pod kątem redukcji szumu, na czym się opierać...
Doczytałem na forum o układzie FX803, jak to ma się praktyce?
Będę wdzięczny za pomoc.
Na początku myślałem głównie o usuwaniu brumu, czyli czegoś o określonej częstotliwości, co zmienia się w bardzo niewielkim stopniu. No i pomysł prosty. Gdy użytkownik włączy filtr, zostanie pobrana odpowiednia próbka (program pobierze kilka okresów tego brumu do zewnętrznej pamięci) i teraz
albo spróbuje się zsynchronizować z sygnałem wejścia (skoro pobrał kilka okresów, to znana jest częstotliwość) i będzie wysyłać odwrócony w fazie sygnał na wyjście
albo: skoro na wejściu mam ten sam sygnał na który będzie nakładany ten do usuwania brumu, to mogę sprawdzać czy po nałożeniu tego odwróconego w fazie na wejściowy powstaje sygnał o mniejszej amplitudzie (biorąc średnią kilkudziesięciu próbek). jak przejdę tak kilka okresów będę wiedział w jakim położeniu na wyjściu powstaje najcichszy sygnał (czyli kiedy filtr jest idealnie zgrany).
Wciąż pozostaje problem, że częstotliwość brumu może się okresowo zmieniać, więc myślałem o jakiejś interpolacji, ale zaś jej liczenie chyba zadusi mikroprocesor, a do dyspozycji jest 16MHz. Jeśli chodzi o obliczenia, proces analizy szumu itd. (po pobraniu próbki) może trochę potrwać, ale już samo usuwanie szumu powinno działać w czasie rzeczywistym.
To założenia, ale uznałem, że może by spróbować zrobić coś uniwersalnego, wykorzystującego jakiś dobry, szybki algorytm. Jak zauważyłem przy testach na komputerze w edytorze audio, to co powstanie po takim usunięciu brumu nie da się już "oczyścić" w ten sam sposób.
Jak widać jestem jeszcze dość zielony. prosiłbym o jakieś nakierowanie na pewne zagadnienia, porady... Wiem, że profesjonalne algorytmy kosztują majątek, więc wymyślenie tego to nie jest prosta sprawa, ale może są jakieś dobre darmowe sprawdzone algorytmy? Dostępny jest choćby ten z Audacity (choć jego wyniki są raczej kiepskie).
Nie bardzo wiem jak spojrzeć na sygnał pod kątem redukcji szumu, na czym się opierać...
Doczytałem na forum o układzie FX803, jak to ma się praktyce?
Będę wdzięczny za pomoc.