RTV forum PL | NewsGroups PL

Skuteczne sposoby na wyciągnięcie prążków 1200 i 2400 Hz z sygnału AFSK w dsPIC30?

Algorytm DSP, wyciagniecie 2 prążków.

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Skuteczne sposoby na wyciągnięcie prążków 1200 i 2400 Hz z sygnału AFSK w dsPIC30?

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

Michał Baszyński
Guest

Wed Jan 26, 2011 4:22 pm   



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

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 Smile

nie jestem matematykiem, ale popatrz na Goerztla

--
Pozdr.
Michał

EM
Guest

Thu Jan 27, 2011 2:42 pm   



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ć Smile

Witam
Czy potrzebna armata, skoro da się zrobić na malutkim procku coś podobnego.
http://www.ampr.poznan.ws/users/sp3uqs/procesor/index.html
--
Pozdr
EM

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

Michał Baszyński
Guest

Sun Jan 30, 2011 12:38 am   



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

Quote:
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 Smile

http://v2.embedded.com/9900722

--
Pozdr.
Michał

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:
Czy potrzebna armata, skoro da się zrobić na malutkim procku coś podobnego.
http://www.ampr.poznan.ws/users/sp3uqs/procesor/index.html

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 Smile

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




--

elektroda NewsGroups Forum Index - Elektronika Polska - Skuteczne sposoby na wyciągnięcie prążków 1200 i 2400 Hz z sygnału AFSK w dsPIC30?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map