-
Data: 2011-02-07 16:02:22
Temat: Re: Technika DSP - demodulacja FSK
Od: WP <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 4 Lut, 14:02, Verox <a...@b...veroxsystems.com>
wrote:
>
> Większość rozwiązań na uC jest zamkniętoźródłowe.
> Podglądałem kilka rozwiązań już - ale na zabawe mam czas tylko w weekendy.
> W zeszły weekend doszedłem do wniosku że goertzel reaguje zbyt wolno, za
> to mnożenie i opóźnienie wygląda obiecująco. Muszę się tylko nauczyć
> projektowania filtrów FIR i ich implementacji.
Teoretycznie najlepszą detekcję by dawało porównywanie ostatnich
kilkunastu próbek z oczekiwanym kształtem sybmolu dla 0 i 1 (czyli
cały okres 1200 i 1.8 okresu 2200). Porównywanie tu jest policzeniem
korelacji. Gorzej, że symbol 2200 nie zawiera całkowitej ilości
półokresów, tylko ułamek, więc wstawienie takiego symbolu w strumień
zmienia fazę następnych, zatem i ich spodziewany kształt. Byłoby dużo
łatwiej z 1200/1800 lub 1200/2400, bo wtedy każda jedynka czy zero
wygląda tak samo, ew. jest zanegowane. I z korelacji by można
zrezygnować, i synchronizacja rząd wielkości prostsza, same zalety,
ale niestety nie tu:)
Jeśli masz na tyle mocy procka żeby FIR zrobić, to można tak:
Strumień wejściowy na FIR o takiej długości, jak długość symbolu
(dłuższy sprawi, że sąsiednie symbole będą wpływały na siebie, efekt
niemile widziany). FIR ma być taki, żeby przepuszczał do 1200 a
wycinał od 2200. Np. taki (dla 16 kHz):
-0.0523 -0.0256 -0.0050 0.0376 0.0959 0.1559 0.2012 0.2180 i dalej
symetrycznie 0.2012 0.1559...
Na jego wyjściu będzie duży sinus dla 1200 i jakieś śmieci przy 2200.
Tylko że nigdy nie wiadomo w jaką fazę 1200 trafimy, więc ten jeden
okres 1200 może dawać szczyty za każdym razem w różnych miejscach.
Czasem to będzie jeden dodatni i jeden ujemny, czasem jeden ujemny i
dwa słabsze dodatnie, a typowo coś pomiędzy:) Można zliczać symbole
2200 i sobie przewidywać fazę. Ale to dla ambitnych. A można też
wyrównać tego sinusa to czegoś w miarę płaskiego. Gdyby był sygnał
kwadraturowy, to łatwo sobie amplitudę wyliczyć z sumy kwadratów. Ale
że nie ma, to go sobie można zrobić przez opóźnienie o ćwierć okresu
(tak jakby z sinusa zrobić cosinus), i wychodzi amplituda (pierwiastka
nie lubimy):
y[n] = x[n]^2 + y[n-ćwierć okresu]^2
x to wyjście z FIRa. y to już jest sygnał trzymający się wysoko przy
1200 i nisko przy 2200. Do detekcji całkiem się nadaje.
Oddzielny temat to synchronizacja. Do tego przydaje się wiedza o
protokole. Typowo powinna być preambuła, pozwalająca na znalezienie
momentów gdy jeden symbol się kończy a następny zaczyna. Np. histogram
ze zmian tego wyżej wyliczonego sygnału może to podpowiedzieć.
Próbkowanie będące wielokrotnością 1200 też nieco ułatwi. Przy dobrej
synchronizacji można też CPU zaoszczędzić i liczyć wszystko nie co
próbkę, ale raz na symbol.
WP
Następne wpisy z tego wątku
- 07.02.11 22:42 Piotr \"Curious\" Slawinski
Najnowsze wątki z tej grupy
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
Najnowsze wątki
- 2024-11-11 Wyważanie kół rowerowych
- 2024-11-11 Kosz, gdzie??
- 2024-11-11 Coraz mniej ludzi robi prawo jazdy
- 2024-11-11 Opole => SAP HANA Cloud Dev / Data Engineer <=
- 2024-11-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-11 Lublin => Senior PHP Developer <=
- 2024-11-11 Marki => Senior PHP Symfony Developer <=
- 2024-11-11 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-11 Gliwice => Specjalista ds. public relations <=
- 2024-11-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-11 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-11-11 Warszawa => Sales Development Representative (in German) <=
- 2024-11-11 Marsz niepodległości
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa