Czy jest mozliwe zrobienie cos takiego i jak sie do tego zabrac? Jestem zielony w tych sprawach. Prosze o jakies lopatologiczne wytlumaczenie. Powiedzmy ze przedzial widma, ktory chcialbym zobaczec bedzie zawieral sie w przedziale czestotliwosci akustycznych.
analizator widma na 8051
Jul 20, 2003
47 Replies
U¿ytkownik "Janusz Ch" napisa³ w wiadomo¶ci news:bfep90$nc4$ snipped-for-privacy@nemesis.news.tpi.pl...
Hm, mo¿liwe jest. Inna sprawa w którym bloku analizatora, je¶li do interfejsu klawiatury to czemu nie :-) Domy¶lam siê ¿e chodzi Ci o FFT, hm, to wybór nienajlepszy, gdy¿ to baaardzo wolny uk³ad do takich zastosowañ. Zobacz na
formatting link
, tam s± trochê szysbsze wersje. Ale proponujê zapoznaæ siê z jakim¶ DSP, gdzie ca³a architektura ku temu porêczniejsza, przyk³adów ka¿dy producent podaje sporo, zobacz np. na
formatting link
czy
formatting link
.
A skoro jeste¶ "zielony" to poczytaj najpierw jak siê buduje analizatory widma, je¶li chodzi o FFT to np. zajrzyj do jakiego¶ podrêcznika z teorii sygna³ów, jest ich sporo. A takie bardziej konwencjonalne to np. Christoph Rauscher, "Fundamentals of Spectrum Analysis", Rohde&Schwarz 2001. Niez³a ale niestety mo¿e byæ trudno osiagalna. W ka¿dym razie bez jakiej¶ teoretycznej podbudowy to nie ma co siê za to zabieraæ, przynajmniej pi*drzwi warto wcze¶niej dowiedzieæ siê co wp³ywa na co, jakie parametry s± wa¿ne etc.
Andrzej Kamieniecki
Jest to mo¿liwe do zrobienia z wykorzystaniem szybkiej transformaty Fouriera (FFT). Przyk³adowe kody mo¿na znale¼æ w internecie.
Wyslano z forum elektronicznego: http://www.elektroda.pl/rtvforum/
U¿ytkownik "simon71" napisa³ w wiadomo¶ci news:bfev9p$fum$ snipped-for-privacy@taurus.webcorp.pl...
naprawdê??? hm, przyznam ¿e to trochê odkrywcze.
Andrzej Kamieniecki
naprawdę??? hm, przyznam że to trochę odkrywcze.
A co cię tak dziwi?
Moze nie na 8051, ale cos ciekawego i tez na jednoukladowcu :)
formatting link
Sun, 20 Jul 2003 20:50:01 +0000 (UTC) jednostka biologiczna o nazwie snipped-for-privacy@mail.zetosa.com.NOSPAM.pl (simon71) wyslala do portu 119 jednego z serwerow news nastepujace dane:
Na '51 ? To chyba za szybko nie bedzie...
Kole¶ na studiach jeszcze co¶ takiego zrobi³ na 51, z rozdz. 128 pkt. i uda³o siê wycisn±æ 4 widma na sekundê... ma³o trochê.
Witek
Na '51 ? To chyba za szybko nie bedzie... "Szybko" to stwierdzenie mało konkretne. Kolega, który zadawał pytanie sam będzie musiał ocenić jak szybki analizator jest mu potrzebny i czy '51 mu wystarcza czy nie. Druga sprawa, ze '51 to nie tylko oryginał Intela, ale również cała masa o wiele szybszych klonow, chociażby wspominany powyżej mikrokontroler Cygnala.
Mon, 21 Jul 2003 18:18:31 +0200 jednostka biologiczna o nazwie "Janusz Ch" snipped-for-privacy@wp.TOWYTNIJ.pl> wyslala do portu 119 jednego z serwerow news nastepujace dane:
Zostala wydana przez oficyne wydawnicza PW, szukaj w firmowych sklepach.
Kolego, FFT to nie jest "generatorek na NE555 do mrugania dioda" :-))) Jest to dosyc zlozone zagadnienie matematyczne, ktorego nie da sie wyjasnic w 5 minut. Poza tym, nie oczekuj ze na grupach UseNetowych ktos bedzie przeprowadzal wyklad na temat transformaty Fouriera. I tak przeciez Koledzy nakierowali cie w miejsca gdzie nalezy szukac informacji. Niestety bez posiadania podstaw z matematyki nic nie zrozumiesz, nawet gdyby bylo to wylozone jak najlopatologiczniej :-))) Poza tym na tych stronach do ktorych linki padly, masz wlasnie informacje na temat dzialania transformaty Fouriera, wiec nie oczekuj ze ktos je bedzie przepisywal na grupe. Glowa do gory, wszystko bedzie dobrze !!!
Aaa jak chcesz wyklad to zapraszam do nas na wyklad z matmy na 3-cim semestrze :-))) Bedzie o transformacie Fouriera. Brrrrr az mnie ciarki przeszly na sama mysl :-))))
A no to trzeba tak od razu. :-) Po kolei:
- Zapomnij o FFT, bo tu go nie potrzeba. W pamieci ROM przygotuj sobie macierz Vandermonde'a 16x16 zespolonych liczb postaci V = [w^{p*q}], gdzie p i q sa indeksami wierszy i kolumn, p,q \in {0,..,15}, a "w" jest zespolonym pierwiastkiem z 1 stopnia 16.
- Pobierz 16 probek z digitalizera.
- Zamien je na wektor x liczb zespolonych. Czesc rzeczywista kazdej skladowej wektora to pobrana wartosc, czesc urojona to 0.
- Oblicz wektor y = V*x.
- Dla widma amplitudowego oblicz modul kazdej skladowej wektora y, dla fazowego oblicz argument.
- Przeskaluj, wyswietl slupki. goto 1.
IMO najlepiej i najprosciej bedzie to liczyc na stalym przecinku, floating point to bedzie duzy overkill. Tylko musisz wowczas pamietac o jakims unormowaniu, aby Ci dane nie wyskoczyly poza przyjety zakres.
Hm, to musisz miec zdrowo ponad 200 lat. ;-)
Podana metoda zadziala wszedzie, ale dla wiekszego wymiaru bazy funkcyjnej uzyj FFT, bo algorytm klasyczny ma zlozonosc O(n^2), a FFT tylko O(n lg n). BTW, dla sygnalow rzeczywistych widmo jest symetryczne, wiec dowolnej liczby kreseczek zamien 16 na N, a 15 na N-1. i dobierz sobie N, np. N=32 dla pierwszych 16 istotnych slupkow. Zamiast trzymac macierz V w ROM mozesz jej skladowe wyliczac sobie dynamicznie, choc bedzie to wowczas nieco wolniejsze.
Pozdrawiam Piotr Wyderski
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
No, poltoraroczny akademicki kurs analizy powinien wystarczyc. :-)
FFT to juz nie matematyka, tylko informatyka, a konkretnie zastosowanie strategii "dziel i zwyciezaj" do liczenia DFT. Jesli sposob liczenia tej transformaty calkowej wprowadzono Ci od razu w wersji FFT, to nie dziwie sie, ze, delikatnie mowiac, niewiele zrozumiales. :-) Bez podejscia na raty tego "nie rozbierjosz". ;-) Na poczatek wez DFT liczona klasycznie (z macierzy Vandermonde'a), a nastepnie zapytaj tu, albo przeczytaj w podreczniku (do informatyki, np. we "Wprowadzenu do algorytmow" Cormena, a nie, bron boze, jakiejkolwiek ksiazce do teorii sygnalow) jak mozna inaczej zapisac wielomian opisujacy funkcje wejsciowa i od razu zobaczysz skad sie bierze zwykle FFT oraz skad sie biora FFT liczone dla innych podzialow niz 2. :-)
Pozdrawiam Piotr Wyderski
Dzieki uprzejmosci kolegow, zaczyna mi sie cos rozjasniac. Chyba jednak wymysle wlasny sposob na analizator widma. Jak to powiedzial pewien slynny matematyk (nie pamietam nazwiska) "nie mam czasu na uczenie sie, wole do tego dojsc samemu". Tak czy owak, dziekuje wszystkim za zainteresowanie moim problemem i naswietlenie mi rozwiazanie problemu przez uczelnie.
Dzieki i pozdrawiam J.
U¿ytkownik "Piotr Wyderski" snipped-for-privacy@hoga.pl napisa³ w wiadomo¶ci news:bfh7tk$94n$ snipped-for-privacy@nemesis.news.tpi.pl... [ciap]
a niby czemu? i dlaczego "bron boze"?
Andrzej Kamieniecki
Bo IMO pisanie o matematyce nalezy pozostawic matematykom, a nie inzynierom. :-) W tych ksiazkach, ktore widzialem algorytm szybkiej FT byl przedstawiany w kategoriach "prawdy objawionej", bez wyjasnienia co z czego wynika i dlaczego mozna zrobic dane przeksztalcenie. Np. pisza, ze kazda funkcje okresowa [rzeczywista
-- przyp. moj] mozna przedstawic w postaci sumy sinusow i kosinusow. OK, ale _dlaczego_? :-) W podreczniku do analizy takie wyjasnienie znajdziesz, a w podreczniku do algorytmiki bedzie o tym, dlaczego mozna policzyc DFT istotnie szybciej, niz z definicji. Podrecznikom do teorii sygnalow przypada rola pokazania co z ta DFT mozna zrobic w praktyce, lecz jej "teoretyczne dno", a o tym tu mowa, to inna dziedzina.
?Pozdrawiam Piotr Wyderski
U¿ytkownik "Piotr Wyderski" snipped-for-privacy@hoga.pl napisa³ w wiadomo¶ci news:bfhho9$its$ snipped-for-privacy@nemesis.news.tpi.pl... [ciap]
Z mojej praktyki wynika, ¿e takie 'in¿ynierskie' podej¶cie to bli¿sze jest panom od teorii obwodów, zreszt± niewa¿ne.
Mowa jest, przypomnê, o budowie analizatora widma. Do takiej czy innej formy transformaty Fouriera doszli¶my tylko przez domniemanie, rozpoczynaj±cy w±tek wcale o ni± nie pyta³. A analizator widma mo¿e siê z powodzeniem bez niej obej¶æ. Spójrz na takie profesjonalne konstrukcje jak np seria FSP Rohde&Schwarza, tam ani FFT ani DFT siê nie liczy, a nie jest to urz±dzenie wy³±cznie analogowe i po drodze cyfrowa obróbka sygna³u jest. A zatem algorytmika w zakresie sposobów na transformatê Fouriera mo¿e okazaæ siê zbêdna, ot jest taka mo¿liwo¶æ zastosowania tego w analizatorze widma, zreszt± nienajlepsza. Wydaje mi siê jako poznanie sposobów budowy analizatorów widma nie le¿y w gestii matematyki.
Andrzej Kamieniecki
No wlasnie - nie potrzebuje analizatora widma, tylko bajerancki wskaznik :-)
Czesciowo sie przychylam, ale bym nie zapominal na razie..
Spytaj najpierw dla jakich czestotliwosci maja byc te kreski. Jesli 20,30,50,70,100,150,200,300,500,700,..15000 Hz, to 16 probek nie starczy..
J.
czas wykonania FFT dla 32 próbek jest porównywalny z DFT liczonego z definicji (korelacyjnie), czyli tak, jak opisa³e¶. Powy¿ej 32 FFT staje siê szybsze.
Fakt.
Pozdrawiam, Witek
Mon, 21 Jul 2003 19:20:54 +0200 jednostka biologiczna o nazwie "Grzegorz Kasprowicz" snipped-for-privacy@cern.ch wyslala do portu
119 jednego z serwerow news nastepujace dane:
Propuje, aby najpierw zaimplementowac i sprawdzic algorytm w zwyklym C na pececie, a pozniej, po uruchomieniu, majac w reku wydruk z listingiem, pisac cos w assemblerze '51 na "wzor i podobienstwo".
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required