logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

FFT, Przesyłanie widma

lukjez 15 Sie 2006 02:02 1127 0
REKLAMA
  • #1 2916612
    lukjez
    Poziom 11  
    Witam. Mam następujący problem. Otóż wykonuje na projekt komunikator głosowy z kompresją zbliżoną do tej z mp3. Przesylanie nieskompresowanego dzwięku oraz zamiana sygnału na widmo przy pomocy fft i spowrotem przez ifft juz dziala, działa te zabawa głosem ( przesuwanie prązków widma w prawo i w lewo). Oczywiscie ifft wykonuje jeszcze po stronie nadawcy gdyz tu tkwi mój problem. Ponieważ fft i ifft dziala na buforze 1024 próbek, wykonuję je za pomocą specjalnie przystosowanych funkcji do obróbki sygnału rzeczywistego na wejściu liczących praktycznie połowe widma( nie liczb zespolonych !) i stąd o trzymuje 1024 elementówą tablice 512 prążków(prazek sie sklada z czesci rzeczywistej i urojonej). Niestety chociaż próbki dźwięku są 8 -bitowe to tablica na wyjśćiu fft jest typu float (4-bajty). A ja potrzebuję ją zmieścić również w tablicy typu char (8 bitów) jak próbki na wejsciu, żeby ta kompresja miała jaki kolwiek sens. Metodą eksperymentalną doszełm , ze i tak przy mowie można usunać (wyzerowac) połowe górych prążków, co praktycznie nie zmienia jakosci dzwieku, i wpadl mi pomysl zeby tam upakowac te wartosci dolnej polowy widma, ale to zniwelowało by mozliwosć przeprowadzienia jakiej kolwiek kompresji o dobrych parametrach. Nie zanudzając, czy ktoś wie jak zrobić aby otrzymać widmo o rozmiarze 1024 bajtów z tablicy próbek dzwięku również 1024 bajtów ?? oczywiscie bez jakiejs znaczacej starty jakosci dźwieku.
    Przypatrując się tym wartościom transformaty są one rozciągniete w bardzo szerokim zakresie, pierwszy prązek widma , który nie ma czesci urojonej ma przewaznie wartosc w okolicach 140000 , czesc prozkow ma wartosci okolo kliku tysiecy, i to one maja najwiekszą role w tworzonym dziweku, na a najwiecej prazkow ma tak w okolicy 255. Oczywiscie wartosci ujemne również występują. I teraz pytanie, jak to wszystko jakos sensownie znormalizowac do wwartosci 255 (jednego bajta), które prązki olać, i czy może już tu przeprowadzić model psycho akustyczny, zeby bylo mniej tych wartosci?

    Dodano po 40 [minuty]:

    juz sobie poradzilem : ) nie było tematu, 1 prazek dziele przez 1024, a pozostale przez 16, i prawie wszystko sie miesci do jednego bajta, znieksztalcenia sa male, i jest git :)
  • REKLAMA
REKLAMA