Diese Seite soll einen
Überblick über die aktuellen Entwicklungen zur Implementierung
eines DDC im FPGA bieten.
Ziel ist es ein HF-Frontend für ein DSP
basiertes Kurzwellen-SDR(Software Defined Radio) zu schaffen.
Dazu
müssen die mit hoher Abtastrate gesampleteten Antennensignale
vorverarbeitet(auf einen niedrigeren Frequenzbereich herunter
gemischt) und anschliessend in der Datenrate reduziert(dezimiert)
werden.
Es wird das Konzept der komplexen I/Q-Verarbeitung
genutzt. Die Ausgangssignale der I/Q-Mischung bilden dann den
Ausgangspunkt zur Demodulation in einem digitalen
Signalprozessor(DSP).
Für Grundlagen der I/Q-Verarbeitung empfehle ich [1], für das gesamte Thema des Software Defined Radio allgemein [2] und Signalverarbeitung mit FPGA im Speziellen [4].
Zuerst wird ein Testsystem zur Verifizierung der Signalverarbeitung im FPGA entwickelt. Anschliessend fliessen die mit dem Testsystem gemachten Erfahrungen in eine Leiterplatte, die ein gesamtes HF-Frontend von Antennenanschluss über FPGA bis zum DSP-Interface bietet.
Zur Unterstützung während der Entwicklung wird eine Schnittstelle vorgesehen um die I- und Q-Signale am PC von bestehender Software zu demodulieren.
Zum Empfang von Kurzwellen-Signalen ist ein Empfangsbereich von mindestens 1,8 bis 30MHz nötig. Zusätzlich soll die Möglichkeit des Empfangs von Signalen im 2m- bzw. 70cm-Ameteurfunk-Band untersucht werden.
Als Basis des Testsystems wurde das LPRP von Arrow mit einem Altera Cyclone III(EP3C25) gewählt. Es bietet einen integrierten Programmieradapter, einen I²S-Audio-Codec zur NF-Ausgabe und ein User-Interface mit 12 freikonfigurierbaren GPIOs.
Der Programmieradapter wurde so modifiziert, dass darüber auch USB-Kommunikation zwischen FPGA und PC möglich ist. Für das User-Interface wurde ein ADC-Modul mit einem 100MSps-ADC entworfen. Später wurde eine USB-Soundkarte, die eine digitale S/PDIF-Schnittstelle bietet, hinzugefügt.
Über die USB-Schnittstelle des Programmieradapters können die I/Q-Signale mit einer Bandbreite von bis zu 200kHz bei 16bit übertragen werden. Später soll darüber die Konfiguration der Empfangsfrequenz realisiert werden können.
Zusätzlich kann über die USB-Audio-Schnittstelle 24bit/48kHz I/Q-Signale in einem für Standard-SDR-Software kompatiblen Format übertragen werden.
Das HF-Signal wird vom Analog-Digital-Wandler mit 49,152MHz gesamplet. Im IQ-Mixer wird das heruntergemischte Signal per Dezimation auf 48kHz Bandbreite gewandelt. Die heruntergemischten 16bit I- und Q-Daten können mit 3 verschiedenen Schnittstellen(USB, S/PDIF und analog) zum PC übertragen werden.
Erste Tests erfolgten mit generierten Signalen aus dem Signalgenerator und bestätigten die Funktion des DDC. Bald kam der Wunsch auf modulierte Signale zu empfangen und zugleich die Fähigkeit der Unterabtastung auszutesten.
Dazu wurde ein Bandpass-Filter für das 2m-Band vor dem ADC geschalten und ein erster vorführbarer Testaufbau realisiert:
Damit
ist es möglich Signale im 2m-Band zu empfangen. Die Empfangsfrequenz
fRX ergibt sich aus der Samplerate des ADC fADC
und der eingestellten Frequenz des internen NCO fNCO per
Unterabtastung in der 6. Nyquist-Ebene:
fRX = 3 * fADC
- fNCO
Beispiel: Zum Empfang auf fRX =
145,5MHz ist bei einer Abtastfrequenz von 49,152MHz die Frequenz fNCO
= 1,956MHz einzustellen.
Zur Demodulation wurde SDR#
verwendet. Bildschirmfoto des 2m-Empfangs:
Die Möglichkeit des 70cm-Empfangs ist noch zu untersuchen. Laut Datenblatt [3] besitzt der eingesetzte ADC eine Analogbandbreite von 475MHz. Zudem ist die Veränderung des Signal-zu-Rauschabstands bei Verdopplung der Abtastfrequenz zu untersuchen.
Die gesamte Signalverarbeitung befindet sich im Modul des IQ-Mixers. Das hochfrequente Eingangssignal vom ADC(RF) wird mit einem komplexen NCO gemischt und anschliessend mit einem CIC Dezimator dezimiert.
Der
NCO erzeugt ein komplexes Local Oscillator-Signal. Die Berechnung des
Signalverlaufes erfolgt mittels CORDIC-Algorithmus, der eine hohe
Phasen- und somit Frequenzauflösung ermöglicht.
Der aktuelle
Phasenwert ergibt sich durch das Aufsummieren des
Frequenzkontrollworts(FCW).
Die Frequenzauflösung ergibt sich aus
der Phasenauflösung P und der Samplefrequenz fADC.
Beispiel
für 24bit Phasenauflösung: fmin = fADC / P =
2,93Hz
Analyse
der USB-Schnittstelle
Untersuchung
zum USB-Datendurchsatz
VHDL-Implementierung
USB
Informationen
zur VHDL-Implementierung von S/PDIF auf
ACK.space
VHDL-Implementierung
S/PDIF
VHDL-Implementierung
I²S
VHDL-Implementierung
LM4921
VHDL-Implementierung
SPI
Aktueller
Stand:
Sebastian
Weiss(DL3YC)
[1]:
Quadratursignale:
Komplex, aber nicht kompliziert(deutsch)
[2]: Krink(DL7BJK):
SDR - Software Defined Radio für den Funkamateur
[3]: Analog
Devices AD9283 Datasheet
[4]: U. Meyer-Baese: Digital Signal
Processing with Field Programmable Gate Arrays