5. května 2016 v 5:35 | Petr
|
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.
- Mezi anténu a mixér dávají přece jenom nějaké filtry.
- "Anti aliasing" filtry před AD převodníkem dělají jako rudimentární mezifrekvenční filtry
- 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.
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?