eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaTechnika DSP - demodulacja FSKRe: Technika DSP - demodulacja FSK
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.supermedia.pl!news.nask.pl!news.na
    sk.org.pl!news.unit0.net!feeder2.cambriumusenet.nl!feed.tweaknews.nl!209.197.12
    .242.MISMATCH!nx01.iad01.newshosting.com!209.197.12.246.MISMATCH!nx02.iad01.new
    shosting.com!newshosting.com!69.16.185.16.MISMATCH!npeer02.iad.highwinds-media.
    com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!k3
    0g2000yqb.googlegroups.com!not-for-mail
    From: WP <p...@g...com>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Technika DSP - demodulacja FSK
    Date: Mon, 7 Feb 2011 08:02:22 -0800 (PST)
    Organization: http://groups.google.com
    Lines: 68
    Message-ID: <b...@k...googlegroups.com>
    References: <s...@m...verox.pl>
    <p...@n...chmurka.net>
    <s...@m...verox.pl>
    <p...@n...chmurka.net>
    <s...@m...verox.pl>
    <0...@4...com>
    <s...@m...verox.pl>
    NNTP-Posting-Host: 213.192.80.34
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1297094542 8485 127.0.0.1 (7 Feb 2011 16:02:22 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Mon, 7 Feb 2011 16:02:22 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: k30g2000yqb.googlegroups.com; posting-host=213.192.80.34;
    posting-account=IbYA7woAAABvc1iLJW1qEPhxazrH_YNX
    User-Agent: G2/1.0
    X-HTTP-Via: 1.0 interrad.radmor.com.pl:8080 (squid/2.6.STABLE4)
    X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.13)
    Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729),gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:604356
    [ ukryj 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: