Witam drogich forumowiczów
Wlasnie jestem w trakcie robienia equalizera w C++ do plikow *.wav. Oto co juz mam i dziala:
1. czytanie z wejscia liniowego dzwieku
2. wyswietlanie na ekran przebiegu w czasie
3. zapisywanie do bufora
4. wyrzucanie na wyjscie
Do zrobnienia equalizera zaczalem myslec o fft:
1
a) mam bufor probek 1024
b) licze fft o rozdzielczosci tez 1024 i otrzymuje 1024 prazki czyli dwie tablice: jedna to czesc rzeczywista, druga urojona
c) licze sobie amplitude i faze z tych liczb, mam informacje o poszczegolnych prazkach i skladowych
d) wybieram sobie przedzial powiedzmy od 10 do 20 prazka, biore amplitudy z tego przedzialu i je podwyzszam(wymnazam przez jakis wspolczynnik)
e) za pomoca tak otrzymanej amplitudy i fazy spowrotem wyliczam czesc rzeczywista i urojona
f) licze odwrotne fft z calosci
g) wyrzucam na wyjscie
Czy dobrze to rozumiem, moze pominalem jakas kwestie?
ogolnie rzecz biorac powiedzmy ze to jakos dziala, ale pojawiaja sie male trzaski, przerwy w dzwieku, takie jakby "cykanie". Czy to jest spowodowane duzo iloscia obliczen? Moze powininem uzyc jakis f-cji okienkujacych? Tylko jak je zaimplementowac?
2. Moze zamiast zabawy w fft, zastosowac filtry FIR, o ktorych juz tutaj troche czytalem, ale nasuwa sie kolejne pytanie. Jak w takim razie przepuscic takie probki przez filtr. Załóżmy, ze mam jakis filtr gornoprzepustowy o danej transmitancji: H(z). W jaki sposob to zaimplemetowac, mam mnozyc probki przez transmitancje?
pozdrawiam i z gory dziekuje za wszelka pomoc:)
Wlasnie jestem w trakcie robienia equalizera w C++ do plikow *.wav. Oto co juz mam i dziala:
1. czytanie z wejscia liniowego dzwieku
2. wyswietlanie na ekran przebiegu w czasie
3. zapisywanie do bufora
4. wyrzucanie na wyjscie
Do zrobnienia equalizera zaczalem myslec o fft:
1
a) mam bufor probek 1024
b) licze fft o rozdzielczosci tez 1024 i otrzymuje 1024 prazki czyli dwie tablice: jedna to czesc rzeczywista, druga urojona
c) licze sobie amplitude i faze z tych liczb, mam informacje o poszczegolnych prazkach i skladowych
d) wybieram sobie przedzial powiedzmy od 10 do 20 prazka, biore amplitudy z tego przedzialu i je podwyzszam(wymnazam przez jakis wspolczynnik)
e) za pomoca tak otrzymanej amplitudy i fazy spowrotem wyliczam czesc rzeczywista i urojona
f) licze odwrotne fft z calosci
g) wyrzucam na wyjscie
Czy dobrze to rozumiem, moze pominalem jakas kwestie?
ogolnie rzecz biorac powiedzmy ze to jakos dziala, ale pojawiaja sie male trzaski, przerwy w dzwieku, takie jakby "cykanie". Czy to jest spowodowane duzo iloscia obliczen? Moze powininem uzyc jakis f-cji okienkujacych? Tylko jak je zaimplementowac?
2. Moze zamiast zabawy w fft, zastosowac filtry FIR, o ktorych juz tutaj troche czytalem, ale nasuwa sie kolejne pytanie. Jak w takim razie przepuscic takie probki przez filtr. Załóżmy, ze mam jakis filtr gornoprzepustowy o danej transmitancji: H(z). W jaki sposob to zaimplemetowac, mam mnozyc probki przez transmitancje?
pozdrawiam i z gory dziekuje za wszelka pomoc:)