FT polega ma wymnazaniu sygnalu przez rozne czestotliwosci, a nastepnie usrednianiu Jesli w sygnale jest poszukiwana czestotliwosc, to po wymnoszeniu jej przez wygenerowana, uzyskamy cos w sensie detekcji synchronicznej , np .sin(x) * sin(x) = 1/2 + cos(2x)/2 czy jakos tak, usredniajac , odfiltrowujesz ten cosinus i dostajesz skladowa stala, proporcjonalna do zawartosci danego skladnika w sygnale. Pomijam tu sprawe fazy. tak wiec bierzesz ciag probek, tworzysz drugi ciag probek(sinus, najprosciej tablica, szczeg na jednoukladowcu), wymnazasz je(ciagi) przez siebie, w sensie kazda probka przez odpowiadajaca sobie. Nastepnie sumujesz i dzielisz przez ilosc - i dostajesz amplitude jednego prazka. Powtarzasz to dla tylu prazkow, ile masz probek, tyle ze z inna czestotliwoscia. FFT jest to dokladnieto samo, w sensie matematycznym, tyle ze duzo szybsze, dla wiekszej ilosci probek, chyba wiekszej niz 100. ale nie pamietam. ilosc obliczen FT rosnie z kwadratem probek a w FFT z N log2 (N)
tak wiec, dla 8051 proponuje w ROM zaszyc tablice sinusa dla polowy lub cwiartki okresu (lub jak ktos chce sobie zycie uproscic, to dla calego, jak np w DSP56004) poszczegolne czestotliwosci generowac beda sie przez zmiane kroku z jakim pobieramy wartosci z tej tablicy. proponuje robic to dla kilku - kilkuset okresow (na 8051 moze byc maly problem z tym:)) Pomijam tu problem przepelnien, szumow kwantyzacji i innych spraw.. mam nadzieje ze nieco rozjasnilem sytuacje