Dieses Beispiel zeigt, wie Sie den Intel® FPGA DSP Builder Advanced Blockset (DSPB-AB) verwenden, um einen Multi-Channel-Sample-Rate-Konvertierungsfilter basierend auf einer Farrow-Struktur zu implementieren.
Die Konvertierung von Probenraten hat eine Vielzahl von Anwendungen wie drahtlose Kommunikation, medizinische Bildgebung und militärische Anwendungen. Anstatt die Polyphasen-Zersetzung zu implementieren, verwendet der Farrow-Resampling-Filter Polynome niedriger Ordnung, um die gleiche Funktionalität zu realisieren, was zu erheblichen Logikeinsparungen führt. Sie ist besonders effizient für die Verarbeitung mehrerer Kanäle oder mehrerer paralleler Datenpfade, wobei alle Kanäle oder Datenpfade den gleichen Filtersatz benötigen.
In diesem Beispiel bauen wir einen Farrow Sample Rate Konvertierungsfilter mit DSPB-AB primitiven Blöcken. Insbesondere zeigen wir, wie Sie die Faltfunktion des DSPB-AB nutzen können. Die Faltfunktion des DSPB-AB erkennt automatisch die Ressourcenfreigabe und Hardware-Wiederverwendung basierend auf vom Benutzer spezifizierten Systemparametern.
Das Funktionsblockdiagramm eines Farrow-Filters ist in Abbildung 1 dargestellt. Alle Module wurden mit primitiven Blöcken in DSPB-AB entwickelt.
Das Symbol r wird verwendet, um die Sampling-Phasenunterschiede zwischen der aktuellen Eingabe und der gewünschten Ausgabeprobe zu quantifizieren. Der Wert wird zwischen 0 und 1 normalisiert. Für jedes Ausgabebeispiel können Sie r mit der folgenden Formel berechnen:
r = (Output_time – Input_time)* Input_Sampling_Frequency
In dieser Demo haben wir einen rekursiven Algorithmus verwendet, um r für jedes Ausgabebeispiel zu berechnen:
Formel
wobei n eine Integer ist, die die Anzahl der Proben oder den separaten Zeitstempel angibt. C1 ist definiert als der Bruchteil der Inverse des Rate Change Factor
Und
Funktionen
Diese Demo hat die folgenden Funktionen:
- Unterstützt sowohl Dezimierung als auch Interpolation.
- Unterstützt fast jeden rationalen Sample-Rate-Change-Faktor
- Unterstützt bis zu 16 Kanäle, obwohl Sie das Design einfach ändern können, um mehr Kanäle zu unterstützen.
- Unterstützt die Parameterisierung über ein Setup-Skript
- Unterstützt einfache Modifizierung der Resampling-Filterreihenfolge (Polynom), indem die Länge der Leitungsverzögerungslinien verlängert wird
- Bietet Initialisierungs- und Skripts nach der Simulation zur Konfiguration von Parametern und zum Vergleich und zur Überprüfung der Ausgänge
- Unterstützt das automatische Falten, wodurch Time-Division-Multiplexing auf Multiplikatoren, Addern und anderen Hardwareressourcen ermöglicht wird
Hinweis 1: Für Version 9.1 erfordert das Design, dass die FPGA Taktrate ein Integer-Vielfache der Eingabe-Sample-Rate und der Ausgabe-Sample-Rate ist. In zukünftigen Versionen muss die Ausgabe-Sample-Rate die FPGA Taktrate nicht dividieren. Daher kann sie theoretisch auch Downsampling-Rate-Änderungen unterstützen. Es gibt keine strukturellen Änderungen für die unterschiedliche Abtastrate, die unterstützt wird.
Hinweis 2: Alle Kanäle sollten von einem Datenpfad (d. h. einem einzigen Kabel im DSPB-AB-Design) verarbeitet werden. Wenn Sie eine große Anzahl von Kanälen haben, sollten Sie Ihre FPGA Taktrate so erhöhen, dass Sie die Datenkanäle nicht auf mehrere parallele Datenpfade aufteilen müssen. Um mehrere Kabel oder mehrere Datenpfade zu unterstützen, müssen Sie den Datenausrichtungsblock ändern, der in diesem Beispiel nicht abgedeckt ist.
Weitere Informationen zum Design von Resampling-Filtern in DSPB-AB finden Sie unter AN 623: Using the DSP Builder Advanced Blockset to Implement Resampling Filters (PDF).
Laden Sie die in diesem Beispiel verwendeten Dateien herunter:
Zu den Dateien im zip-Download gehören:
- farrowm.mdl– DSPB-AB Designdatei für den Multikanal-Farrow-Sampleratenänderungsfilter
- setup_farrowm.m—BEREITE*-Skript zur Konfiguration der Initialisierung und der Parameter der farrow.mdl
- stop_farrowm.m— SCRIPT von SCRIPT FÜR DIE Farrow-Neusampling-Filterausgabe und Vergleich mit der Eingabewellenform
Weitere Informationen zu verwandten Funktionen in diesem Designbeispiel erhalten Sie unter: