Re: SDR bez smovn

Tom Hamouz konfery.tomas.hamouz na seznam.cz
ter Prosinec 7 16:25:54 CET 2021


Navázal bych na předchozí debatu.

Odzkoušeno:
Nejprve CORDIC generátor lokálního oscilátoru, ale to bylo
příliš náročné na CPU. Funguje, ale hledal jsem méně náročné řešení.

Druhý pokus: Vzorkování 4x přijímaný kmitočet, a vynásobit lokálním
oscilátorem na přijímaném kmitočtu. Protože jsou právě 4 vzorky na
periodu, fáze LO jsou 0, 90, 180 a 270stupňů, což odpovídá hodnotám
sin  (0, 1, 0, -1), cos je o 1 pozici posunutý. Tím se vzorky jednoduše
rozhází  do  I a Q větve, jen je potřeba občas změnit znaménko vzorku,
násobení nulou je triviální.
V podstatě to odpovídá níže uvedenému příspěvku od p.Anděla.

Problém byl, že ADC je triggerované timerem a ten nešel nastavit přesně na
přijímaný kmitočet, byla tam chyba cca 4%.

Pak  sem zkusil kompromis - poštelovat systémové hodiny a vzorkovat 3x
za  periodu.  Tabulka  sin  a  cos  už nevychází tak pěkně, už se musí
násobit,  ale  na  ARMu  to není drahá operace a je to jen 6 hodnot v
tabulce.  Funguje  v  podstatě  stejně jako předchozí verze, jen už se
dokážu naladit přesně.

Pak  následuje  CIC  filtrace  s  decimací,  úzký  filtr  a  zbývá jen
detekovat modulaci. 

V principu potřebuju měřit   mezeru   mezi   pulzama. Pulzy jsou
všechny    stejné,  mění  se  jen  mezery.  Triviální  verze  (detekce
sestupné   hrany  a odpočítání  vzorkovacích  period do dalšího  pulzu  funguje,
ale pro signál  blízko  šumu to celkem pochopitelně zlobí. Ono to tedy
zlobí i když je signál moc silný, ale to přijde na řadu posléze.

Existuje  nějaká  metoda, jak detekovat pulz "podle tvaru"?
Nebo použít metodu "SW UART", tzn detekovat hranu a pak vyhodnotit pár
vzorků v rozhodném okamžiku? 

Tomáš



> Zajímavé, v podstatě Tayloe směšovač provedený také SW. To mě nenapadlo, holt začátečník.

> Tomáš

>> Jej tak to by mě taky zajímalo. Vždycky jsem to dělal tak, že jsem vzal 
>> 4 vzorky za periodu, odečetl 1. -3. a 2. -4. A tyhle dva výstupy jsem 
>> dál průměroval podle požadované šířky pásma. Ale to čtení musí být 
>> synchronní s nosným kmitočtem, což je komplikace. Kdyby to šlo číst 
>> nějak nesynchronně, bylo by to fajn. Ale tuším v tom podstatně větší 
>> náročnost na výpočetní rychlost toho procesoru, počítat sin, cos, 
>> případně ty hodnoty někde tahat z tabulek :-( Nejspíš nějaké DSP tohle 
>> zvládá jednodušeji a líp.

>> Anděl

>> Dne 21.10.2021 v 10:59 Tomas Hamouz napsal(a):
>>> Zdravím vespolek
>>>
>>> Potřebuju nakopnout kde začít, prolistovávat se hodinama videí budu až potom :-)
>>>
>>> Mám signál, cca 40kHz, s AM modulací 1kHz. Chtěl bych ho zkusit zpracovat pomocí SDR, jsem
>>> přesvědčený že to musí jít, ale nějak nedokážu dohledat jak se generují I a Q signály BEZ použití
>>> kvadraturního směšovače, tzn. přímou digitalizací vstupního signálu.
>>>
>>> Tomáš
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list


>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list





Další informace o konferenci Hw-list