Verox
Guest
Wed Jan 26, 2011 4:22 pm
Hej,
Nie mam doświadczenia w technikach DSP; mam za do ADC i procesor z szybkim
mnożeniem i dzieleniem (dsPIC30) i paroma innymi featurkami.
Potrzebuje z sygnału wejściowego (AFSK, 1200 + 2400 Hz) wyciągnąć
te prążki celem poddania dalszej detekcji. Wiem, że można to zrobić przy
pomocy FFT, ale może są jakieś łatwiejsze do implementacji algorytmy.
Bardzo proszę grupowych matematyków o nakierowanie :-)
--
#begin 755 signature.exe
[tomek <at> sikornik <dot> net] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek
Verox
Guest
Thu Jan 27, 2011 3:11 pm
On Wed, 26 Jan 2011 15:50:25 +0100, Michał Baszyński napisał:
Quote:
W dniu 2011-01-26 15:22, Verox pisze:
Potrzebuje z sygnału wejściowego (AFSK, 1200 + 2400 Hz) wyciągnąć
te prążki celem poddania dalszej detekcji. Wiem, że można to zrobić przy
pomocy FFT, ale może są jakieś łatwiejsze do implementacji algorytmy.
Bardzo proszę grupowych matematyków o nakierowanie :-)
nie jestem matematykiem, ale popatrz na Goerztla
Dziękuje, w weekend postaram się to zaimplementować :-)
--
#begin 755 signature.exe
[tomek <at> sikornik <dot> net] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek
Verox
Guest
Fri Jan 28, 2011 2:34 pm
On Thu, 27 Jan 2011 14:42:21 +0100, EM napisał:
Quote:
Potrzebuje z sygnału wejściowego (AFSK, 1200 + 2400 Hz) wyciągnąć
te prążki celem poddania dalszej detekcji. Wiem, że można to zrobić przy
pomocy FFT, ale może są jakieś łatwiejsze do implementacji algorytmy.
Bardzo proszę grupowych matematyków o nakierowanie :-)
nie jestem matematykiem, ale popatrz na Goerztla
Dziękuje, w weekend postaram się to zaimplementować :-)
Witam
Czy potrzebna armata, skoro da się zrobić na malutkim procku coś podobnego.
http://www.ampr.poznan.ws/users/sp3uqs/procesor/index.html
Witaj,
No jakiś algorytm musi tam być zaszyty, niestety nie ma źródeł.
Dokładnie chcę zrobić własnego trackera, jadnak takiego z odbiorem
i analizą przychodzących ramek.
Tak, wiem że są gotowce, ale chcę zrobić sam i przy okazji się nauczyć
czegoś nowego :-)
--
#begin 755 signature.exe
[tomek <at> sikornik <dot> net] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek
blur
Guest
Sun Jan 30, 2011 12:50 am
?Użytkownik "EM" napisał w wiadomości grup
dyskusyjnych:ihrso4$aqf$1@news.onet.pl...
Quote:
Przypomniały mi się czasy Packet Radio w latach `90, skakałem jak głupek po
pokoju gdy poskładałem modem, zestroiłem i na ekranie zaczęły lecieć ramki,
Amiga + Lincoln i byłem gość POL1PE
Verox
Guest
Sun Jan 30, 2011 12:52 am
On Wed, 26 Jan 2011 15:50:25 +0100, Michał Baszyński napisał:
Quote:
W dniu 2011-01-26 15:22, Verox pisze:
Potrzebuje z sygnału wejściowego (AFSK, 1200 + 2400 Hz) wyciągnąć
te prążki celem poddania dalszej detekcji. Wiem, że można to zrobić przy
pomocy FFT, ale może są jakieś łatwiejsze do implementacji algorytmy.
Bardzo proszę grupowych matematyków o nakierowanie :-)
nie jestem matematykiem, ale popatrz na Goerztla
Dziękuję pięknie, wziąłem algo z wikipedii:
http://en.wikipedia.org/wiki/Goertzel_algorithm
I działa :-)
wyniki symulacji dla f_probkowania=16 kHz
ponośna 2200 Hz:
freq = 500.000000 Hz pwr = 3630.037598 lvl=0
freq = 600.000000 Hz pwr = 6390.092285 lvl=0
freq = 700.000000 Hz pwr = 6390.092285 lvl=0
freq = 800.000000 Hz pwr = 6390.092285 lvl=0
freq = 900.000000 Hz pwr = 10942.559570 lvl=0
freq = 950.000000 Hz pwr = 10942.559570 lvl=0
freq = 1000.000000 Hz pwr = 10942.559570 lvl=0
freq = 1100.000000 Hz pwr = 21924.453125 lvl=1
freq = 1180.000000 Hz pwr = 21924.453125 lvl=1
freq = 1190.000000 Hz pwr = 21924.453125 lvl=1
freq = 1200.000000 Hz pwr = 21924.453125 lvl=1
freq = 1210.000000 Hz pwr = 21924.453125 lvl=1
freq = 1220.000000 Hz pwr = 21924.453125 lvl=1
freq = 1230.000000 Hz pwr = 21924.453125 lvl=1
freq = 1250.000000 Hz pwr = 21924.453125 lvl=1
freq = 1300.000000 Hz pwr = 21924.453125 lvl=1
freq = 1500.000000 Hz pwr = 44501.601562 lvl=2
freq = 2000.000000 Hz pwr = 412674.156250 lvl=20
freq = 2100.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2150.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2180.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2190.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2200.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2210.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2220.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2250.000000 Hz pwr = 15191353.000000 lvl=247
freq = 2300.000000 Hz pwr = 1229633.875000 lvl=61
freq = 2400.000000 Hz pwr = 1229633.875000 lvl=61
freq = 3000.000000 Hz pwr = 69920.218750 lvl=3
freq = 3500.000000 Hz pwr = 34523.902344 lvl=1
freq = 4000.000000 Hz pwr = 21944.585938 lvl=1
podnośna 1200 Hz
freq = 500.000000 Hz pwr = 419.161530 lvl=0
freq = 600.000000 Hz pwr = 1563.212891 lvl=0
freq = 700.000000 Hz pwr = 1563.212891 lvl=0
freq = 800.000000 Hz pwr = 1563.212891 lvl=0
freq = 900.000000 Hz pwr = 8458.195312 lvl=0
freq = 950.000000 Hz pwr = 8458.195312 lvl=0
freq = 1000.000000 Hz pwr = 8458.195312 lvl=0
freq = 1100.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1180.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1190.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1200.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1210.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1220.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1230.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1250.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1300.000000 Hz pwr = 17934266.000000 lvl=128
freq = 1500.000000 Hz pwr = 14059.884766 lvl=0
freq = 2000.000000 Hz pwr = 2022.837646 lvl=0
freq = 2100.000000 Hz pwr = 1150.462524 lvl=0
freq = 2150.000000 Hz pwr = 1150.462524 lvl=0
freq = 2180.000000 Hz pwr = 1150.462524 lvl=0
freq = 2190.000000 Hz pwr = 1150.462524 lvl=0
freq = 2200.000000 Hz pwr = 1150.462524 lvl=0
freq = 2210.000000 Hz pwr = 1150.462524 lvl=0
freq = 2220.000000 Hz pwr = 1150.462524 lvl=0
freq = 2250.000000 Hz pwr = 1150.462524 lvl=0
freq = 2300.000000 Hz pwr = 806.450989 lvl=0
freq = 2400.000000 Hz pwr = 806.450989 lvl=0
freq = 3000.000000 Hz pwr = 394.281921 lvl=0
freq = 3500.000000 Hz pwr = 356.505646 lvl=0
freq = 4000.000000 Hz pwr = 229.909637 lvl=0
Dziwi mnie tylko to, że przy jednakowej amplitudzie sygnału wejściowego
(bo jest wyliczony

, algorytm daje wyniki mocno różniące się na wyjściu. W moim
zastosowaniu to nie przeszkadza - ot taka ciekawostka :-)
--
#begin 755 signature.exe
[tomek <at> sikornik <dot> net] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek
Piotr \"Curious\" Slawins
Guest
Sun Feb 06, 2011 8:31 am
Verox wrote:
Quote:
No jakiś algorytm musi tam być zaszyty, niestety nie ma źródeł.
Dokładnie chcę zrobić własnego trackera, jadnak takiego z odbiorem
i analizą przychodzących ramek.
do dekodowania FSK nie potrzebujesz Groetzla , bo nie musisz dekodowac dwoch
czestotliwosci rownoczesnie (Frequency Shift - wiec czestotliwosc sie
przesuwa, albo jest niska, albo wysoka). innymi slowy, wystarczy ze
napiszesz prosty dyskriminator
z przelomem przy np. 1700hz i wsio. na wejscie mozna dodac jeszcze jakis
prymitywny filtr aktywny poprawiajacy SNR - dwa lm358 i pare elementow
bedzie dzialac o niebo szybciej i lepiej niz proba wyluskania sygnalu z
danych z 12bit ADC ...
osobiscie troche bawilem sie dekoderami fsk na pic16f628 , i fakt faktem
uzycie czegos 'silniejszego' (tzn. samplujacego wejscie przez adc , a nie
tylko zero-crossing) jest wskazane - uklad jest bardzo czuly na
intermodulacje i przesterowanie (wykrywa harmoniczne) wiec potrzeba nie
tylko analogowego filtru na wejscie, ale i limitera...
jesli jednak sygnal jest 'ladny' to ukladzik bezproblemowo daje rade :)
--