Software Defined Radio (SDR) mit Blackfin-DSP

Möchte hier zwei selbstkreierte Empfänger vorstellen, die mit dem DSP BF537 von Analog Devices für den SDR-Teil
arbeiten. Der Erste arbeitet mit Analog-Frontend (1. analoger ZF, Digitalisierung mit Audio-Codec) und ist als
Tisch-Empfänger mit Display konzipiert. Er stellt sich hier vor mit dem Namen ToneSDR 2013
Der Zweite wird als Vorsatz für einen Windows-PC mit Breitband-Ethernet-Interface als Direct-Sampling-Receiver
betrieben. Ich habe Ihn auf den Namen ToneSDR LAN getauft.

Warum verwende ich einen Blackfin-DSP ? Weil er nicht nur ein sehr guter DSP ist, sondern mit seinen vielen schon
eingebauten Schnittstellen auch ein echter All-Rounder ist. Außerdem kann er mit freier kostenloser Software (im
Gegensatz zum SHARC-DSP) programmiert werden. Dazu aber später.

 

ToneSDR 2013 Beschreibung

Photogen wie er ist, hat er ein Bild von sich gemacht:

ToneSDR 2013 ist ein Tischgerät mit tollem farbigen Display aus dem Hause Electronic Assembly (das Display)
und Knöpfen, Schaltern sowie Dreh-Encodern. Hinter der Frontplatte ist direkt die Front-Board (Leiterplatte)
montiert. Diese enthält die Elektronik fürs Entprellen der Schalter/Tasten und stellt ein I2C-Interface für die
Anbindung an den DSP zur Verfügung. Auch der Lautsprecher-Vertärker ist dort mit integriert. Hinten draufgesteckt
befindet sich die DSP-Board, welche über ein Audio-Kabel und den entsprechenden Interface-Kabeln (I2C/SPI) mit
dem Analog-Frontend, genannt die QSuper-Board, verbunden ist. Vor diesem Board ist dann noch die PreSelector-
Platine mit den Bandfiltern und zuschaltbaren 20 dB Verstärker angeordnet.

QSuper Board:

Die QSuper-Board kann man als Super mit Quartz-Filter ansehen, deswegen der Name. Am Ausgang steht ein I/Q-Signal
zur Verfügung, zur Weiterverarbeitung mittels des DSP-Board. Als Ausgangs-Mitten-Frequenz habe ich 16kHz für den mit
48 kHz SampleRate betriebenen Audio-Codec am DSP gewählt.
Das Eingangs-Signal wird mit Hilfe des Double-Balance-Mischers (AD831) und des DDS-Oszillators (AD9951) auf die
erste ZF von 22.003 MHz gemischt. Die Oszillator-Frequenz liegt immer über der Empfangs-Frequenz (z.Bsp. fIN = 1MHz -->
fDCO = 23.003MHz). Diese ZF entspricht genau der Mitten-Frequenz des Quartz-Filters.
Die beiden Mischer (SA602) setzen das Band dann auf die zweite ZF (fNF) von 16 kHz herunter. Als Misch-Oszillator für die
zweite Mischung wird ein SI570 verwendet, der gleichzeitig den Takt für den AD9951 bereit hält. Die Frequenz des SI570
wird fest auf 20.019MHz eingestellt (fSI = fIF1 + fNF). Eine Vervielfachung im AD9951 sorgt für dessen Betaktung von
18 x 20.019 = 360.342 MHz.
Der Phasen-Schieber im zweiten Zweig ermöglicht die Bereitstellung eines I/Q-Signals am Ausgang, um dem DSP eine
Trennung der IF1-Spiegel-Bänder zu ermöglichen. Es wird das untere Spiegel-Band verwendet (fSI > fIF1).
Das Quartz-Filter hat nicht die Aufgabe, SSB/CW-Signale zu filtern, sondern dient zum einen als Protection-Filter für die
SA602 (das Summen-Signal an den Eingängen wird klein gehalten, erforderlich wegen des geringen Dynamic-Bereichs),
und zum anderen zur Sperrung des oberen IF1-Spiegel-Bandes (mind. 60dB). Zusammen mit dem I/Q-Mechanismus wird
dann eine Spiegel-Band-Unterdrückung von mind. 100dB erzielt. Der Phasen-Schieber besteht aus einem LC-Glied, welches
mittels C-Trimmer auf Maximale Dämpfung des oberen IF1-Bandes eingestellt werden muss. Diese Kalibrierung erfolgt
bei überbrückten Quartz-Filter mit Hilfe der DSP-Software und muss natürlich nur einmal erfolgen. Damit ist eine stabile
Unterdrückung von 40dB machbar.
Die Empfangs-Frequenz wird am AD9951 vom DSP über ein SPI-Interface eingestellt (fIN = fDCO - fIF1). Der SI570 wird
nach dem Einschalten, von der DSP-Software über das 2-Wire-Interface (I2C-Bus), zur Ausgabe von 22.019 MHz initialisiert.

Das Quartz-Filter:

Das Filter ist als 4-Pol-Ladder-Filter aufgebaut. Bei Reichelt hab ich mir 25 von den sehr günstigen 22 MHz Grundton-
Quartzen besorgt und mir dann die 4 Gleichesten herausgesucht. Das ist mein erster Quartz-Filter-Aufbau. Sehr verwunderlich,
dass es mit Anhieb so toll funktioniert !
Zu erkennen ist die viel steilere Flanke zu höheren Frequenzen hin. Bei 22.003MHz + 24kHz wird eine Dämpfung von
60 dB erzielt (warscheinlich noch mehr, meine Messanordnung ist nicht so der Bringer). Somit hat das Filter im untern
IF1-Spiegel-Band eine stärkere Wirkung als im Oberen. Von daher kommt meine Vorliebe für das untere Band.

QSuper Platine mit aufgesetzten Ladder-Filter und Trimmer zum Einstellen der Band-Unterdrückung:

 

DSP Board mit Blackfin BF537

Dieses DSP-Board habe ich mir speziell für SDR-Sachen designed. Es ist sehr kompakt aufgebaut und mit allen
notwendigen Schnittstellen (2xSPI, I2C, UART, Audio AD/DA) sowie mit JTAG zum Programmieren/Debuggen und
PPI-Interface für Direct-Sampling-RX ausgestattet. Der SDRAM hilft beim Speichern grösserer Programme/Daten.
Der interne schnelle SRAM des BF537 umfasst 64kB an Code-Speicher und 64kB an Daten-Speicher, was für kleinere
Projekte vollkommen ausreichend ist. Ein serieller Flash (nichtflüchtiger Speicher) behält Programm & Daten auch
im ausgeschalteten Zustand. Von Ihm wird auch beim Einschalten gebootet.
Ein UART-Interface erlaubt spezieller PC-Software die Kommunikation mit der Firmware (DSP-Software). Auch ist
über Diese ein Firmware-Update möglich (Bytes werden direkt von der UART an den SPI-Flash weitergeleitet)..

Programmierung/Debugging:

An der DSP-Board wird am JTAG-Anschluss (im Blockbild nicht eingezeichnet) ein gnICE-Modul angeschlossen,
welches wiederum über USB mit dem PC verbunden ist.
Ich benutze ausschlieslich freie Software unter UBUNTU für den Blackfin. Als Entwicklungsumgebung (IDE) nutze
ich Eclipse mit den entsprechenden Plug-In's (GCC, Sprache C/C++, GDB). Als Tool-Chain wird die bfin-elf-
Tool-Chain (Compiler, Linker etc.) verwendet.
Das Programm wird direkt gespeichert und direkt ausgeführt ohne Betriebssystem (z.Bsp. ucLinux). Das nennt
man glaube ich Bare Metal Programming. Das hat folgende Vorteile: man braucht nur wenig Speicher für
Code/Daten, Programm kann mit maximaler Geschwindigkeit laufen (im SRAM), Echtzeit-Fähigkeit, kein grosser
Parallel-Flash notwendig, oft auch kein SDRAM notwendig, einfache 4-Lagen-Platine reicht.
Nur muss man für alle Interfaces den Code selber schreiben (oder klauen), was nicht unbedingt ein Nachteil sein
muss. Im Betriebs-System übernehmen das ja die sogenannten Driver, deren Installation auch zu einer
Wissenschaft ausarten kann.

DSP-Platine, hinten befindet sich der JTAG- und der RS232-Connector, vorne links der Codec mit OV's, hinten links
die Spannungsversorgung, rechts neben dem DSP der Flash (winzig), auf der Unterseite der SDRAM:

 

DSP-Software für den ToneSDR_2013

Die Software hat im Wesentlichen folgende Aufgaben:

- Signal-Verarbeitung (Signal-Proccessing) inlusive Gain-Control
- Steuerung der Komponenten (AD9951, SI570, PreSelector / Gain) im Signalweg
- Display-Ausgabe
- Abfrage der Steuer-Elemente (Schalter, Dreh-Encoder, Tasten) nach Interupt
- Komunikation mit UART-Schnittstelle (z.Bsp. für Firmware-Update, Kalibrierung)

Die Software benutzt im Signalfluss nur 16Bit-Arithmetik (fractional integer). Es wird blockweise verarbeitet (nicht
Sample for Sample). Alle Filter sind als  FIR-Filter oder als FFT-Filter ausgelegt.
Im folgenden soll nur der Signal-Fluss erläutert werden.

AGC Input:

Datenblock jeweils für I und Q wird vom I2S-Controller bereitgestellt. Die Signale werden angehoben um grösst
mögliche Zahlen-Werte für die nachfolgenden Berechnungen zu bekommen (weil nur 16Bit-Genauigkeit).

Complex IQ-Mixer:

Das I/Q-Eingangs-Signal wird mit dem I/Q-BFO-Signal komplexwertig multipliziert (Produkt-Mischung). Das ist
mit der Multiplikation zweier komplexer Zahlen vergleichbar. Das Q-Sample fungiert dabei als Imaginär-Teil. Das
herunter gemischte Ausgangs-Signal (AF I/Q) kann wiederum als komplexe Zahl aufgefasst werden. Man nennt das
auch das analytische Signal.
Vorteil dieses Verfahrens ist die Unterdrückung eines IF1-Spiegelbandes. Bei positiver BFO-Frequenz wird das
untere Band underdrückt, bei negativer BFO-Frequenz das Obere. Da wir das untere IF1-Spiegelband verwenden,
muss die BFO-Frequenz negativ sein (das heisst der sinus wird negiert, mathematisch: komplex konjugiert).
Das Ausgangs-Signal ist auf die 0Hz-Linie heruntergemischt, also die eigentliche NF.
Bei einem Direct-Sampling-Vorsatz hat das I/Q-Eingangs-Signal eine so hohe Güte (exakte 90° Phasenverschiebung
und Ampliduten-Gleichheit über gesamte Bandbreite +- B/2), dass mit dem BFO die Frequenzen von -B/2 bis +B/2
durchfahren  werden können.

BFO:

Der BFO gibt ein Cosinus als I-Signal, und einen Sinus als Q-Signal aus, also ein analytisches Signal. Die Frequenz
wird hier auf -16kHz (also -sinus) fest eingestellt. Die Empfangsfrequenz wird ausschliesslich mit dem AD9951 eingestellt.

Decimation:

Nach der Mischung erhalten wir ein Signal, das zwar immer noch mit 48 kHz abgetastet wird, aber dessen Frequenz-
Anteile über 5 kHz nicht benötigt werden (Bandbreite AM maximal 5kHz). Um nun Rechenzeit zu sparen, bietet sich
hier eine Unterabtastung mit 12 kHz (Decimation-Factor 4) an. Nach dem Nyquist-Kriterium müssen aber alle Frequenzen
vor dem Abtasten oberhalb 12/2 = 6kHz unterdrückt werden. Das machen die Decimation-Filter gleich mit.

Demodulation:

Für die Demodulation steht wieder ein analytisches Signal zur Verfügung, was die Sache sehr einfach macht.
Für SSB/CW wird einfach das I-Signal 90°-Phasen-verschoben und dann mit dem Q-Signal addiert (LSB) bzw.
subtrahiert (USB). 
Die Schärfe der Seitenband-Trennung hängt von der Güte des Hilbert-Filters ab (und die ist sehr sehr gut).
Das Delay-Filter gleicht zur Symmetrie-Wahrung die Laufzeit (Latenz) des Hilbert-Filters aus.
Für AM lässt der Satz des Pythagoras grüssen. Es wird einfach der Betrag des analytischen Signals errechnet,
was der momentanen Amplidute des Eingangs-Signals entspricht.
Bei FM sieht die Sache etwas komplizierter aus. Nach einer speziellen Differenzierung des I/Q-Signals wird
ein ArcusTangens gebildet. Ergebniss ist proportional zur momentanen Eingangs-Frequenz.

Bandpass:

Hier wird die eigentliche Filterung der demodulierten Signale durchgeführt. Dieses sehr scharfflankige Filter
ist als FIR-Filter mit mindestens 200 Koeffizienten ausgeführt und kann während des Betriebes, bei Wechsel
der Modulations-Art oder der Bandbreite, umgeschaltet werden.
Auch Filter, die mit Fourier-Transformation arbeiten, habe ich mit Erfolg ausprobiert. Beide Filtertypen zeichnen
sich auch durch absolute Phasen-Linearität und 0-Welligkeit im Durchlass-Bereich aus.

AGC Output:

Hier wird schlieslich das Signal so angehoben/gedämpft, dass am KH/Lautsprecher eine Norm-Lautstärke zu
hören ist. Das gilt aber nur, solange das Eingangs-Signal über dem eingestellten Squelch-Level liegt. Unter
diesem Level wird nicht mehr geregelt und die Lautstärke sinkt ab. Bei hohen Squelch-Level (z.Bsp. S9+10dB)
klinkt der Empfänger sehr ruhig, weil die leisen Signale (meistens Rauschen und Krähen von Nachbar-Plasma-
Fernseher) nur leise oder gar nicht zu hören sind.

 

ToneSDR LAN Beschreibung

ToneSDRLAN ist ein echtes Software Defined Radio. Die Hochfrequenz wird nach PreSelektion und Vorverstärkung
direkt von einem High-Speed-A/D-Wandler digitalisiert. Das nennt man auch Direct Sampling. Da der BF537-DSP
auch einen LAN-Controller (MAC) mit an Bord hat, habe ich mich entschieden eine Breitband-Ethernet-Anbindung zu
realisieren. Das Gerät ist als PC-Vorsatz konzipiert, Bedienung, Ausgabe und Signalverarbeitung findet auf dem
Windows-PC statt.

Hardware:

Programmiert wird der BF537 auch hier mittels JTAG-Interface und gnICE wie oben schon bei der BF537-Board
beschrieben. Als Speicher- und Bootmedium dient wieder ein SPI-Flash.

Das RF-Eingangssignal kann vom PE4306 abgesenkt werden. Die Dämpfung lässt sich in mehreren Stufen vom PC/DSP
aus einstellen. Das ist manchmal erforderlich, um eine Übersteuerung des A/D-Wandlers zu vermeiden.
Nach Verstärkung im LTC6401 gelangt das nun differentielle Signal zum Eingang des A/D-Wandlers LTC2208.
Dieser sampled das Signal im Takte von Sample-Clock und digitalisiert die Samples. Jedes Sample steht dann am
Ausgang als 16Bit-Parallel-Wert (16Bit-Word) zur weiteren digitalen Verarbeitung zur Verfügung. Bereitgestellt wird
das Clock-Signal vom SI570, der wiederum vom PC/DSP über I2C-Interface gesteuert wird. Die Clock-Frequenz muss
hoch genug sein, um das Nyquist-Kriterium zu erfüllen. Bei RF-Frequenzen von bis zu 30 MHz also min. 60 MHz,
praktisch aber noch höher. Ich verwende in den meisten Konfigurationen 98.304 MHz (Vielfaches von 12kHz).
Die Taktfrequenz des LTC2208 ist auf maximal 120MHz begrenzt. Mit Trickserei kann man aber dennoch viel
höhere Eingangs-Frequenzen verarbeiten (Stichwort: Unterabtastung).
Da die ganze Maschinerie synchron ablaufen muss, wird auch der AD6636 mit der gleichen Rate (InputRate) getaktet.
Im AD6636 befindet sich ganz vorn ein Produkt-Mischer. Dort werden die Eingangswerte jeweils mit Cosinus und Sinus
multipliziert, wodurch ein I- und ein Q-Signal entsteht. Als Mischoszillator dient ein NCO (numeric controlled Osz.)
dessen Frequenz über SPI geändert werden kann. Der Ausgangs-Frequenz-Bereich dieses Mischers ist der auf 0-Linie
heruntergemischte Bereich um die NCO-Frequenz (fNCO). Dieses Direkt-Mischer-Prinzip ist Grundlage aller
Direct-Sampler.
Da die Sample-Rate des Signals immer noch der Inputrate (z.Bsp. 98.304 MHz) entspricht, muss Diese, um von
einem DSP weiterverarbeitet werden zu können, deutlich heruntergebracht werden. Das geschiet im AD6636 mit
Hilfe eines mehrstufigen Down-Sampling-Prozesses (Unterabtastung) bis die gewünschte Output-Rate erreicht ist.
Weil der Herr Nyquist vor jeder Abtastung ein Tiefpass-Filter verlangt, sind Diese natürlich im AD6636 mit drin.
Genaugenommen müssen die Koeffizienten für diese ganzen Filter erst hereingeladen werden (über SPI).
Dezimierungs-Faktoren, Filter-Koeffizienten, NCO-Frequenz usw. bilden einen Datensatz, der nach dem Einschalten
auf den AD6636 hochgeladen werden muss. Das nennt man bei allen ASIC's und FPGA's die Configuration.
Am Ausgang steht nun jeweils für I und Q ein 16Bit-Wort im Takte der Output-Rate zur Verfügung. Übertragen
werden die Daten 16Bit-Parallel-Interleaved (IQIQ....) über PPI-Interface zum DSP. Rein theoretisch ist die
Bandbreite des Signals am DSP nun gleich der Output-Rate. Da aber die Filter keine unendlich steilen Flanken
haben, ziehe ich für die Netto-Bandbreite (Bn) 10% ab. Der Empfangsbereich geht nun dank des I/Q-Mechanismus
von fNCO - Bn/2 bis fNCO + Bn/2.
Beispiel: Inputrate = 98.304MHz, Dezimierung = 256 --> Outputrate = 384kHz --> Bn = 340kHz -->
Gesamt-Spektrum = fNCO - 170kHz bis fNCO + 170kHz.

Bild der Direct Sampling LAN Board:

 

DSP-Software

Ein Blockbild lohnt sich hier nicht, da die Aufgabe des DSP eigentlich nur darin besteht, die Daten zwischen den
einzelnen Interfaces zu dispatchen. Die PPI-I/Q-Daten werden in einen Ethernet-Block übertragen (256 I-Worte
und 256 Q-Worte + Gain-Wort kommen in ein Paket) um dann vom LAN-Controller als ETH/UDP/IP-Paket versendet
zu werden. Kommandos vom PC werden als UDP/IP-Paket empfangen und sogleich an die entsprechenden
Interfaces (SPI/I2C/GPIO) weitergeleitet. Die Trennung der verschiedenen Daten-Ströme wird durch unter-
schiedliche Port-Nummern sichergestellt.
Verbindungsaufnahme:
In der Software habe ich einen einfachen DHCP-Server untergebracht, der bei Anfrage die IP-Adresse
'192.168.179.5' mitteilt. Die meisten Heim-Netze arbeiten mit '192.168.178.X' als Subnetz, so das hier keine
Komplikationen auftreten sollten. Ansonsten kann auch manuell eine beliebige IP-Adresse festgelegt werden
(in der PC-Software einzutragen).
Als MAC-Adresse hat das Gerät die nicht öffentliche Adresse '00.01.02.03.04.05'.

Windows-Software

Nachdem das Windows-Programm die Verbindung über LAN mit der DSP-LAN-Board aufgenommen hat, wird zuerst
die aktuelle Konfiguration (Initialisierung SI570, AD6636) zum DSP-Board gesendet. Danach beginnt sofort die
kontinuierliche Übertragung von I/Q-Daten-Paketen. Die Konfiguration kann auch zu jeder Zeit während des Betriebes
neu gesendet werden (vorallem um die Inputrate/Bandbreite zu ändern).

Eine AGC-Input ist hier nicht erforderlich, da mit Fliesskomma-Werten gearbeitet wird. Ausserdem macht der AD6636
an seinem Ausgang schon eine Gain-Control. Da er intern mit 22Bit-Genauigkeit rechnet, macht das auch richtig Sinn.
Im Wesentlichen wird hier signaltechnisch das selbe getan wie beim schon oben beschriebenen ToneSDR2013-DSP-Board.
Es wird mit Blöcken gerechnet, die meisten Filter sind als FIR-Filter aufgebaut, der Bandpass als FFT-Filter.

Complex Mixer:

Die I/Q-Signale werden von der LAN-Control entgegengenommen und mit dem I/Q-Signal des BFO komplex multipliziert.
Am Ausgang steht dann das auf fBFO-0-Linie heruntergemischte I/Q-Signal an.

BFO:

Wegen der hohen Güte des digital produzierten Eingangs-Signals kann die BFO-Frequenz über den gesamten Bandbreiten-
Bereich durchfahren werden. So ist eine Frequenz-Einstellung ohne Änderung der NCO-Frequenz (AD6636) durchfürbar.
Das Empfangsband erstreckt sich also von fNCO - Bn/2 bis fNCO + Bn/2. Die Empfangsfrequenz fRX berechnet sich
nach der einfachen Formel: fRX = fNCO + fBFO. Sollte fRX out of the band sein, wird natürlich automatisch die NCO-
Frequenz, durch Senden eines Command-Pakets, im AD6636 geändert. Die NCO-Frequenz kann auch manuell in der
Software gesetzt werden.

FFT & Spectrum Adder:

In diesem Block werden parallel zum Mixer die gleichen Eingangs-Daten verarbeitet. Mit dem I und Q-Signal wird 
jeweils eine Fourier-Transformation durchgeführt. Das I-Spektrum wird danach mit der Imaginär-Zahl -j multipliziert.
Dieses jI-Spektrum wird dann mit dem Q-Spektrum zusammenaddiert, so dass sich das Spektrum fürs obere Spiegel-
Band (fRX >= fNCO) ergibt. Weiterhin wird das Q-Spektrum vom jI-Spektrum abgezogen, um das Spektrum des
unteren Bandes zu erhalten (fRX < FNCO). Diese beiden Spektren werden abschliesend zusammengefügt und es
entsteht das Gesamt-Spektrum von fNCO - Bn/2 bis fNCO + Bn/2 zur Darstellung (auch als Wasserfall) auf dem
Monitor. Ich rede hier von Signalen, aber in Wirklichkeit wird natürlich mit Blöcken (z.Bsp. 4096 Samples) gerechnet.
Das selbe Prinzip wird bei der Seitenband-Trennung (Demodulation des SSB-Signals) angewendet, nur im Zeitbereich.
Im Frequenz-Bereich ist Hilbert-Filterung nämlich nichts anderes als eine Multiplikation mit -j.
Hinter der Decimation ist nochmal so ein Block angeordnet (nicht eingezeichnet), der auf die gleiche Weise das 
Spektrum von fBFO - 5kHz bis fBFO + 5kHz errechnet (für die Zoom-Darstellung).

Decimation:

Nach der Mischung erhalten wir ein Signal, das zwar immer noch mit der Outputrate des AD6636 abgetastet ist, aber
dessen Frequenz-Anteile über 5 kHz nicht benötigt werden (Bandbreite AM maximal 5kHz). Um nun Rechenzeit zu sparen,
bietet sich hier eine Unterabtastung mit 12 kHz (Decimation-Factor N) an. Nach dem Nyquist-Kriterium müssen aber alle
Frequenzen vor dem Abtasten oberhalb 12/2 = 6kHz unterdrückt werden. Das machen die Decimation-Filter gleich mit.
Der Dezimierungs-Faktor ist variable, da sich abhängig von der aktuellen Configuration, die Inputrate (= Outputrate des
AD6636) ändern kann. Für 384 kHz ergibt sich z.Bsp. eine Dezimierungs-Faktor von N = 32.

Die weiteren Blöcke sind mit der DSP-Software des ToneSDR 2013 identisch.

Maximale Bandbreite:

Ich habe es bis zu einer AD6636-Outputrate von 1.536 MHz (Bn = 1.4 MHz) getrieben. Das ergibt eine Ethernet-
Übetrtragungs-Rate von 2*16*1.536 = 50 MBit/s netto. Es wäre mehr möglich, aber TBase100 (100MBit/s) begrenzt
die Sache.

Die Oberfläche der Windows-Software:

Oben links ist das Hauptfenster zur Einstellung der wichtigsten Parameter, wie Modulationsart, Bandbreite, Seitenband,
Vorverstärkung, Squelch sowie natürlich der Empfangsfrequenz. Auch die NCO-Frequenz (hier DCO, sorry) kann manuell
geändert werden, um z.Bsp. die Mitten-Frequenz des Spektrums zu verschieben.
Ein Frequenzwert wird geändert, indem man mit dem Mauszeiger auf die entsprechende Ziffer zielt und dann das Scroll-
Rad betätigt.
Unten ist das Fenster mit dem Hauptspektrum/Wasserfall zu sehen, dessen Mittenfrequenz immer der NCO-Frequenz
entspricht. Die momentane Empfangsfrequenz und Bandbreite wird durch eine rote Linie angezeigt. Mittels Rechte-Maus-
Klick auf das Spektrum, kann zur entsprechenden Frequenz gesprungen werden.
Oben in der Mitte wird das Zoom-Spektrum angezeigt, dessen Mitten-Frequenz immer der momentanen BFO-Freq.
entspricht.
Damit ist die Beschreibung des ToneSDR LAN hier erstmal beendet.

Wie funktioniert WEB-SDR

Mit den hier gewonnenen Kentnissen, kann auch leicht nachvollzogen werden wie ein WEB-SDR (im Internet) funktioniert.
Schauen wir uns nochmals Blockbild 5 an.  Ein WEB-SDR hat für jedes Band eine Hardware, die ungefähr der DSRX-LAN-
Board entspricht. Jeder User bekommt seinen eigenen BFO, seinen eigenen Mixer und alles was dahinter ist. Nur das
Spektrum wird für alle identisch übertragen. Hinter der Output-AGC wird das Audio-Signal zurück an den entsprechenden
Eigner übertragen. So kann der Eigner eines Empfangsblocks, unabhängig von den anderen Usern, die Empfangsfrequenz
(innerhalb des gewählten Bandes), Modulation und Bandbreite ändern.
Bei Bandwechsel muss in der Regel auf eine andere Hardware umgeschaltet werden (NCO-Frequenz wechselt). Das Konto
wird dann geschlossen und ein neuer Empfangsblock zugewiesen.
Die Anzahl der gleichzeitig agierenten User wird durch die Leistungsfähigkeit des Rechners begrenzt.


Vorteile Ethernet gegenüber USB

- mechanisch stabiler, einmal einrasten und man kann drann rumwackeln wie man will
- wegen strenger elektr. Symmetrie keine Störabstrahlung, längere Kabel sind möglich
- keine Treiber-Installation notwendig (Problem Zertifizierung entfällt)
- funktioniert auf allen Betriebssystemen sofort
- sehr zuverlässig, Ethernet und IP sind uralte Techniken und deswegen bugfree
- Programmierung auf Client- und Serverseite viel einfacher, schon die unterschiedlichen Übertragungs-Modi
  lösen Angstschweiss aus
- mit Hilfe der Portnummern können praktisch beliebig viele Kanäle auf einfache Art & Weise geöffnet werden,
  der Krampf mit den Endpunkten entfällt
- da bereits IP-Pakete vorliegen, kann die Anbindung ins Internet direkter geschehen

USB mag ja in bestimmten Bereichen Vorteile bringen, die nur geringe Nutzung des LAN-Interfaces (100MBit-
LAN-Adapter hat jeder PC schon seit langem eingebaut) erklärt sich mir nicht. Aber das weiss sicherlich die Industrie.


Links

ToneCirc Simulator Hauptseite

altes SDR-Projekt mit Shark-DSP

FIR Filter Calculator

Kontakt

Impressum