prążków.

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 :-)

Reply to
Verox
Loading thread data ...

W dniu 2011-01-26 15:22, Verox pisze:

nie jestem matematykiem, ale popatrz na Goerztla

Reply to
Michał Baszyński

On Wed, 26 Jan 2011 15:50:25 +0100, Michał Baszyński napisał:

Dziękuje, w weekend postaram się to zaimplementować :-)

Reply to
Verox

Witam Czy potrzebna armata, skoro da się zrobić na malutkim procku coś podobnego.

formatting link

Reply to
EM

On Thu, 27 Jan 2011 14:42:21 +0100, EM napisał:

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 :-)

Reply to
Verox

On Wed, 26 Jan 2011 15:50:25 +0100, Michał Baszyński napisał:

Dziękuję pięknie, wziąłem algo z wikipedii:

formatting link
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 :-)

Reply to
Verox

W dniu 2011-01-29 23:52, Verox pisze:

formatting link

Reply to
Michał Baszyński

?Użytkownik "EM" napisał w wiadomości grup dyskusyjnych:ihrso4$aqf$ snipped-for-privacy@news.onet.pl...

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 :)

Reply to
blur

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 :)

--

Reply to
Piotr "Curious" Slawinski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.