Jak fungují softwarová rádia 2.

5. května 2016 v 5:35 | Petr |  Elektro
Na začátek si dáme opakování z minula:
Signál z antény se digitálním přepínačem mixuje na nulovou mezifrekvenci a to tak že výsledkem jsou dva signály I a Q posunuté o 90 stupňů. Oba se v AD převodnících digitalizují, pak procházejí filtry označenými FIR "finite impulse response" které jsou "digitální mezifrekvence". A pak se oba signály kombinují podle vzorečků, které se mění podle toho jakou modulaci chceme demodulovat.
Je pochopitelné že celý číslicový algoritmus v DSP procesoru musí probíhat nejméně tak rychle kolik vzorků potřebujeme pro výstupní audio. - tedy pro telefonní kvalitu ( dostačující pro krátké vlny) musí celý výpočet se všemi filtry, násobením a průmerováním proběhnout alespoň 8000 krát za vteřinu, ve skutečnosti však mnohem více ( u stereo FM demodulace potřebujeme až 75 KHZ tedy výpočet musí probíhat s frekvencí 150 kHz). Přitom energie není nazbyt - například - WIFI přijímač z notebooku má stanovenu "normu" 200mW to jest 70 mA při 3.3 V a to je maximální spotřeba, kterou jsou u WIFI přijímače ochotni výrobci notebooků tolerovat.

Čip AKC6951 z Lídl tranzistoráčku má spotřebu 35mA - je tedy jasné, že DSP procesory ( i ty Čínské ) jsou přehlídkou exotických architektur majících spočítat co nejvíce operací za co nejméně proudu. Typické je řešení typu "multi core" kdy každý blok na schémátku je samostatný sub-procesor, nebo řešení typu SIMD - single instruction multiple data - kdy jeden program řídí třeba 8 aritmetických jednotek pracujících paralelně.

Krom uvedeného "základního scémátka" existují i varianty, které by asi pro krátké vlny nepřinesly nic navíc, ale za určitých okolností mají zásadní význam.

Varianta č. 1. - "nedůvěřivá" : Klasickým radioamatérům nedělá dobře když v přijímači pracuje kmitočtová ústředna generující signál který je násobkem přijímaného kmitočtu. V tomto případě 4 násobkem. Moje zkušenost je sice taková, že sudé harmonické základní kmitočet neruší a vyšší kmitočet většinou neruší nižsí základní frekvenci, ale radioamatéři jsou nedůvěřiví. Takže u rádií "softwarové" koncepce většinou dělají celkem 3 úpravy.
  1. Mezi anténu a mixér dávají přece jenom nějaké filtry.
  2. "Anti aliasing" filtry před AD převodníkem dělají jako rudimentární mezifrekvenční filtry
  3. Ale hlavně - nemixují na "nulovou mezifrekvenci"
Zejména ten poslední bod je důležitý - kmitočtová ústředna v radioamatérské DSP radiostanici většinou kmitá o 40-80 KHZ "vedle" a signál se mixuje ne na "nulovou" ale na "nízkou" mezifrekvenci třeba o hodnotě 20 kHz - pak se digitalizuje a pak se dělá druhé směšování "numericky" v procesoru.

Při tom je celkem výhodné digitalizovat na 4 násobku "mezifrekvence" protože pak se druhé směšování dělá tak že 1 perioda mezifrekvence jsou 4 vzorky A, B, C, D - z toho signál I se vyrábí jako 0, B, 0, -D a takto se hodnoty pouští k dalšímu zpracování američani tomu říkají "digitální sinus". Signál Q se pochopitelně numericky generuje jako sekvence A, 0, -C, 0 a tak dále - "digitální kosinusovka" - velice jednoduché - "násobení bez násobení" - přibližně ve stylu jak vidíte zapojené operační zesilovače.

Varianta č. 2 - "ponorková" - softwarové rádio námi omílané konstrukce má zásadní problém - není schopné zpracovat modulaci na širším pásmu než jsou "ubohé" anti aliasingové analogové filtry. To nevadí u rozhlasu na krátkých vlnách, ale co když atomová ponorka přijímá a potřebuje dekódovat nějaký neznámý signál, který dneska často bývá zašifrovaný a spread spectrum ( aby šel těžko rušit ). V tom připadě se používá "přímá digitalizace" tedy signál z antény jde do nějakého ultra-lineárního a nezahltitelného předzesilovače, odtud do anti aliasové doní propusti v GHz a pak následuje digitalizace v desítkách GHz - pak už je naprosto všechno digitální.
Tohle řešení už není pro tranzistoráček za 249 ale opravdové rádio pro ponorku která
  • Zachytí neznámý signál
  • Digitalizovaný vzorek pošle do NSA
  • NSA najde dekódovací algoritmus
  • Algoritmus si ponorka stáhne do svého přijímače.
Jasné ?

Varianta 3 - ultra selektivní - slabina softwarového přijímače jsou "digitální mezifrekvence", které rozhodují o kvalitě příjmu. Pokud je výpočetního výkonu dosti ( nebo je signál složitý - typu ODFM + QAM jako u digitální televize ) je lepší než se smolit s FIR filtry udělat následující matematické zpracování - signál analyzovat pomocí FFT - rychlé fourierovy transformace - potřebné frekvenční složky uložit k dalšímu zpracování, nepotřebné se nahradí nulami a pak se udělá iFFT - inverzní fourierova transformace zpátky na datovou řadu čísel - tento postup vytváří zcela dokonalé mezifrekvenční filtry, protože "žádný filtr nemá větší útlum než násobení nulou".

Tím bych nástin softwarových rádií považoval za probraný - než mi začnete v diskusi nadávat za "zánik bílých firem" uvědomte si, co je zodpovědné za současnou explozi bezdrátově přenášeného digitálního obsahu ? Čínské "čtyřdírkové moduly" se softwarovými rádii pro WIFI, GSM, GPS, Bluetooth a další, nebo "military grade" superhety se směšováním na 10.7 MHz a 455 kHz ?

Poznámka při druhém čtení - neprobrali jsme spoustu věcí, které jsou v digitálním světě ( relativně ) elementární - třeba AGC - automatické řízení zesílení - procesor podle výstupní apmlitudy spočte nutné zesílení analogových zesilovačů a takové si nastaví, nebo otázku "digitálních kmitočtových ústředen" , ale doufám, že i přesto moje juknutí pod pokličku rádia "SilverCrest" stačilo.
 

1 člověk ohodnotil tento článek.

Komentáře

1 Osmdesát Osmdesát | 5. května 2016 v 9:46

Jako nedostudovaný teolog ještě možná tak chápu to "rozpřepínání" signálu na začátku (byť pochybuji, že 4066 zvládne přepínat frekvencí KV × 4, ale ta je tam asi jen pro ilustraci) - tedy získám 4 kvadranty laděné frekvence plus to, co je nad ní. Co je pod ní, jsem eliminoval.
Pak ty zesilovače tam - o.k., chci z nich tedy získat rozdílové signály mezi 1. a 3. a mezi 2. a 4. kvadrantem. Jenže v každém okamžiku je zapojen jen jeden vstup daného zesilovače, druhý je mrtvý. To by znamenalo, že mi ze zesilovačů poleze pouze nějaký obdélník, podle toho, jsem-li zrovna v kladné nebo záporné půlvlně chytaného signálu - co s tím? Na nezapojeném vstupu zesilovače může být nějaká "paměť", nějaký sample-and-hold, který mi tam ponechá hodnotu předchozího vzorku, ale pak přijdu o vyšší kmitočtové složky chytaného signálu, které mě mohou taky zajímat. Nebo to celé špatně chápu?

2 Osmdesát Osmdesát | 5. května 2016 v 9:58

[1]: Ok, tak jsem to už asi pochopil, my nezesilujeme rozdíl mezi 1. a 3 a mezi 2. a 4. kvadrantem, my je zesilujeme samy o sobě, proto nám nevadí "nula" na druhém vstupu zesilovače, nebo ne? (:

3 Václav IV Václav IV | 5. května 2016 v 10:16

[2]: Ale zesilujeme rozdíl. Tento typ přijímače se totiž nazývá "sample and hold" a pan Kubáč zapoměl na vstupy operáků zakreslit ty samplovací kondenzátory na zem. Druhý vstup pak neplave ale je držen na úrovni minulého vzorku. Doufám, že se nepletu.

4 petr-kubac petr-kubac | 5. května 2016 v 10:37

[3]: Přesně máte pravdu - nějaká malá kapacita ( v desítkách pikofaradů ) mezi každým z výstupů ABCD a zemí je tam dobrá. I bez ní to ale omezeně funguje - díky parazitním kapacitám 4066 a operačních zesilovačů.
Konkrétní schémátko ze zde
http://yu1lm.qrpradio.com/HF%20SDR%20RECEIVER%20CW-SSB-DRM%20YU1LM.pdf
( odkaz byl v minulém díle )

A k tomu mixéru 74HC4066 zvládá celé krátké vlny až do 4x30=120 MHz dneska se používá 74AC4066 nebo 74LVC4066 - ty zvládají ještě více až někde k 4*70=280 MHz

5 SPECZ SPECZ | 5. května 2016 v 10:45

Je to tak. Myslím že je nezapomněl, jen je pro přehlednost vynechal :-)
Tady je schéma reálného spínaného směšovače+operáků a ty kondy (resp. RC články) tam jsou hezky vidět.

http://sdr.ipip.cz/docs/dr2b_receiver.pdf

Jako AD převodník(y) tam pak slouží zvuková karta a všechny další operace už se provádějí softwarově v PC ...

6 m.marianek m.marianek | 5. května 2016 v 12:31

[1]: Jen pro upřesnění, zkuste si uvědomit, že ta 4066ka pracuje v podstatě jako synchronní detektor (usměrňovač). Dejme tomu, že vstupní signál je (pro zjednodušení) synchronní s vzorkovacím kmitočtem (tím čtyřnásobným), Pak první půlvlna vstupního signálu jde na + vstup zesilovače I kanálu a druhá půlvlna jde na - vstup zesilovače I kanálu. Jelikož má vzhledem k tomuto vstupu zesilovač záporné zesílení bude výstup v první i druhé půlvlně kladný I-(-I)=2I. Zapojení tedy v tomto kanále funguje jako synchronní usměrňovač sinusové složky. Zapojení kanálu Q je identické, ale vzorkovací signál je oproti vstupnímu posunut o 90° a tak detekuje kosinusovou složku. V našem případě tedy bude na + vstupu i - vstupu zesilovače Q kanálu nula a tím bude nula i na výstupu. Jelikož v reálu není synchronnost vstupního a vzorkovacího signálu dána, získáme údaj o úrovni vstupního signálu pomocí fázorového součtu sinusového a kosinusového kanálu, odtud ten vzoreček pro AM modulaci SQRT(I^2+Q^2), je to prostý fázorový součet. Celý tento přijímač funguje na stejném principu jako lock-in zesilovače.

7 jik jik | E-mail | 5. května 2016 v 13:59

Příští čtvrtek si to bude moci případný zájemce vyzkoušet na vlastní kůži :)

Zřejmě inovovaná verze toho většího. Pokud ještě bude v regálu/koši, bude se mi líbit a budu v dobrém rozmaru pustit nějakou tu korunu, možná to zkusím.

http://www.lidl.cz/cs/nabidka.htm?action=showDetail&id=50011

8 jik jik | E-mail | 5. května 2016 v 14:21

Příští čtvrtek zase bude - to větší, ale s jiným (asi novým) designem. Uvidíme, možná ho k tomu prvnímu malému přikoupím... Kdyby tak mělo rozsah někde od 3 MHz, ale to pochybuji - to bych ho vzal hned. Jestli bude začínat na 4,75 tak se budu rozmýšlet...

9 Osmdesát Osmdesát | 5. května 2016 v 22:53

[4]: Dobrá zpráva, myslel jsem, že 4066, tak jako celá řada 74x a 4x, zůstala na "retro" frekvenci 20 MHz či tak.

[6]: Díky za vysvětlení, trochu se mi to vyjasnilo, neuvědomil jsem si, že přivedením záporného signálu na záporný vstup zesilovač dá samozřejmě kladný signál.
Ten vzoreček pro výpočet přepony je geniálnější než jsem si myslel, i když už jsem ho párkrát použil i jinde než ve škole. Zkoušel jsem si to namalovat a počítat a opravdu hází vždy hodnotu apmlitudy modulačního signálu, bez ohledu na to, kam se zrovna trefíme! Ale když se nad tím člověk zamyslí, je to logické - přeponou je zde průměr kruhu, po němž se pohybuje signál, tedy jeho amplituda, což nás zajímá.

10 vladimír šmídl vladimír šmídl | E-mail | 6. května 2016 v 2:27

[9]:Vývoj se strčně ilustruje asi takto:
7474=fmax25MHZ..........................
74ALS74 =fmax 80MHz.....................
74F74 ´=fmax 125MHz.....................

11 petr-kubac petr-kubac | 6. května 2016 v 15:08

[9]: Vámi obdivovaný vzořeček je středoškolská analytická geometrie - vzdálenost dvou bodů v rovině kde X a Y je rozdíl jejich souřadnic na ose x a y. V našem případě je střed fázorové kružnice 0,0 takže se žádné rozdíly souřadnic nepočítají a rovnou se umocňuje a sčítá.

To samé je vzdálenost v prostoru
SQRT(X^2+Y^2+Z^2), a to samé i v libovolném N rozměrném prostoru - jenom bych výslovně zmínil, že i ve 3 a vícerozměrné verzi tohoto vzorečku se pořád používají jen DRUHÉ mocniny a odmocniny.

12 Osmdesát Osmdesát | 6. května 2016 v 20:07

[11]: Pythagorova věta je probírána nejen na SŠ, ale už na ZŠ, na SŠ v širších souvislostech, jen jsem o ní nikdy nepřemýšlel ve spojitosti s AM demodulací, což byl důvod mého údivu.

13 jik jik | E-mail | 6. května 2016 v 22:08

Prosím vás zkušené z tohoto oboru (vidím, že této technice rozumíte) na mou naléhavou otázku:

Pokud bych předělal ten Silvercrest za 249,- Kč do větší krabičky, kam bych dal větší a hlavně kvalitnější reproduktor, možná i nějaký konektor, musel bych vyvést aspoň některé vývody té maticové klávesnice na samostatná tlačítka ven mimo desku (nemám tam ta klasická mikrotlačítka jako na levé fotce staršího Silvercrestu na fotografii Petra Kubáče, ale jenom ty maticové "plíšky"), jednalo by se řádově o centimetry vodiče. Nezaruším si to rádijko nějakými parazity - předpokládám, že to rádio pracuje jak se sinusovkami tak i obdélníky - samozřejmě tím pádem spousta různých ostrých hran a harmonických uvnitř.
Ptám se proto, že pomýšlím nad koupí toho většího (příští týden v Lidlu) a pokud by se přestavba do větší skříňky povedla - bezproblémové vodiče k tlačítkům, nemusel bych ho kupovat.

Může mi prosím někdo na tuto myšlenku a otázku odpovědět? Díky, Jirka

14 petr-kubac petr-kubac | 6. května 2016 v 23:47

[13]: drátky délky pár cm by s příjmovými vlastnostmi rádia nic neudělaly - až na filosofiícký problém, že žádná taková přestavba se nevyplatí kvůli mizerné základní konstrukci rádia - obrazně jako do Trabanta montovat turbo z BMW

Filosoficky se spíše vyplatí zkusit sehnat nějakou tu Japonskou stavebnici stojící na AKC6955 - ta je udělána velice slušně a potom kolem ní s pomocí Arduína udělat ovládání rádia.

15 Petr G. Petr G. | 7. května 2016 v 9:10

Když nemám lineární zesilovač před AD převodníkem jak spočítat demodulaci? Převést změřené napětí na skutečnou hodnotu A,B,C,D a z něj I,Q nebo jde počítat I,Q přímo.

16 petr-kubac petr-kubac | 7. května 2016 v 9:43

[15]: Něco málo analogové elektroniky je tam nezbytné - třeba anti-aliasingové fitlry mohou být mizerné ale musí tam být. I analogové zesílení - má ulehčit práci s mikrovoltovými signály

Bez něho platí varianta "ponorková" tedy pokud by se mixovalo bez analogového zesílení a na výstupu by byly 4 napětí pak platí že každnou čtveřici vezmu a počítám I=A-C; Q=B-D

Opakuju ale znovu - před každým AD převodníkem MUSí  být analogový fitlr, který odřeže frekvence vyšší než polovina samlplovacího kmitočtu - jinak v modulaci uslyšíte úseky pásma vzdálené o samplovací kmítočet - všechny přes sebe - až do frekvence kde se signál  NĚJAK vyfiltruje sám na parazitních kapacitách obvodů.

17 jik jik | E-mail | 9. května 2016 v 17:24

A ještě jedna "maličkost" - ten obvod M6955 obsahuje i kompletní nf "koncový" zesilovač, navíc bez potřeby Boucherotových členů (dvou, protože do reproduktoru je to můstek), takže výstupní proud je určen přímo pro buzení reproduktoru z vývodů 11 a 13. Dále pohledem do datasheetu vidím, jak je to vyřešeno s tím přepínáním reproduktor vs. sluchátka a tím se vysvětluje to, co jsem psal nedávno - je tam zajímavě vyřešeno i to, že do reproduktoru jde na FM mono součtově L+R oba kanály a po připojení sluchátek se z toho stane stereo proti zemi. Na svědomí to má ten odpor 100 ohm+kondenzátor 22uF. Elegantně a chytře vymyšleno. Samozřejmě po připojení 8 ohmových reproduktorů už to asi začne částečně odečítal kanály L a R od sebe a začne to hrát bez středního kanálu L+R (např. zpěvu zpěváka nebo zpěvačky), ale tento režim jsem nezkoušel. A navíc to FM mě vzhledem k tématu nezájímá, to máme doma asi všichni několikanásobně vyřešené jinak. Zajímají mě ty krátké vlny.

Ten obvod v sobě skrývá potenciál několikanásobně vyší, než je jeho využití v tom malém rádijku, ale bohužel s Arduínem Petře neumím, díky za odpověď.

Zrovna teď ho poslouchám na reproduktoru v dřevěné bedýnce na dvou živých vývodech toho 3,5mm jacku.
Akorát mě trochu vadí to lepení při přelaďování na krátkých vlnách. Když přejedu stanici a ťuknutím "DOWN" se chci vtátit zpět, stanici už neslyším. Ale když rádio vypnu/zapnu, zase tam je. Žít se s tím dá.

Komentáře jsou uzavřeny.


Aktuální články

Reklama