Spezieller digitaler Filter

Ich habe einen DDS (0-80 MHz) mit einem FPGA (XC3S400) gebaut, den ich programmieren kann, um fast jede Wellenform zu erzeugen (begrenzte Frequenz durch die Wellenformkomplexität). Nachdem ich wochenlang mit der Herstellung eines geeigneten Tiefpassfilters dafür gekämpft hatte, wurde mir klar, dass es fast unpraktisch ist, einen nahezu perfekten analogen Filter zu bauen, der alle hochfrequenten Bilder (Nyquist) + alle niederfrequenten Aliase entfernen kann (Fotos der Ergebnisse hier ; Behinderungen durch niederfrequente Aliase in DDS, Abbildung-1 hier ).

Jetzt möchte ich mich in einen digitalen Tiefpassfilter (oder vorzugsweise einen abstimmbaren Bandpass) verwandeln, aber ich habe wirklich keine Zeit, DSP von Grund auf zu lernen. Ich habe einige große Unternehmen (Analog Devices, Texas Instruments, ...) nach einem speziellen Digitalfilterprodukt durchsucht, aber meine Suche führt immer zu DSP-Produkten.

Ich möchte wissen, ob es dedizierte digitale Filter mit einer einfachen Schnittstelle gibt (z. B. Frequenzauswahl durch eine Mikrocontroller-Schnittstelle oder so etwas?). Zum Beispiel das gewünschte Filterverhalten über ein serielles/paralleles Wort an das Gerät senden und damit funktioniert es.

Auflage:

Ich habe aus der folgenden Antwort erkannt, dass ich das aktuelle FPGA für meinen Zweck verwenden kann. Ich habe 2 Ansätze ausprobiert: 1- DDS > DAC > ADC > FIR (FPGA) > DAC. dies macht wieder Aliase, die sich auf den DAC beziehen. 2- DDS > FIR (kein externer ADC) > DAC. Das ist nicht schlimm, aber das Problem mit Aliasnamen bleibt bis zu einem gewissen Grad bestehen. Ich suche nach einer guten Ressource / Denkmethode für dieses Problem (die einfachste vielleicht!)

Sofern ich nichts übersehe, sind die Aliase ein Produkt Ihres SCOPE und nicht Ihres DDS.
@ScottSeidman Nein, schließlich fand ich heraus, dass es eine Kombination aus allem war: Bereich + Niederfrequenz-Aliase, die "Real World DDS" innewohnen (der zweite Link in der Frage) + schlechte Erdungsleitung, die vom FPGA anstelle der dedizierten Pins + schlecht geht Prototyping PCB-Design +...... und möglicherweise viele viele andere Dinge, die bei hohen Frequenzen ins Spiel kommen (Event vielleicht die Marsmenschen! :)) !!
Ich bin mir nicht sicher, ob ich Ihre Frage verstehe. Worin unterscheiden Sie, wenn Sie von „hochfrequenten Bildern“ und „niederfrequenten Aliasen“ sprechen? Können Sie das Spektrum Ihres Signals teilen und zeigen, was Sie mit diesen beiden Komponenten meinen?
@ThePhoton In der Frage ist ein Link angegeben (das erste "hier") oder auch: electronic.stackexchange.com/questions/91616/…
@Aug, auf Ihrer verlinkten Seite sehe ich nicht, welche Funktionen Sie "Niedrigfrequenz-Aliasnamen" und welche Funktionen Sie "Hochfrequenzbilder" nennen. Sie sagen auch, dass Ihre Probleme durch eine Kombination mehrerer Dinge verursacht werden, darunter "schlechte Erdungsleitung" und "schlechtes Prototyping-PCB-Design". Sie müssen diese beiden Probleme unbedingt beheben und uns die Ergebnisse zeigen, bevor wir in der Lage sind, Ihre Probleme mit Aliasing zu unterscheiden.

Antworten (2)

Solche Produkte gibt es auf jeden Fall, aber es wird schwierig für Sie sein, ein Produkt zu finden, das genau zu Ihren Projektanforderungen passt. Für digitale Audiofrequenzfilter können Sie sich QuickFilterTech ansehen . Für höhere Funkfrequenzen (>1 GHz) kommt Hittite in den Sinn.

Wenn Sie jedoch im kleineren 10-MHz-Bereich arbeiten müssen, müssen Sie wahrscheinlich das tun, was die meisten Leute tun: Besorgen Sie sich einen kleineren DSP oder FPGA und verwenden Sie vom Hersteller bereitgestellte Tools, um eine Filter-Firmware zu generieren (alle großen Hersteller haben diese; parametrisches Design mit GUI-Assistenten und unterstützten Bildern).

Tatsächlich könnte der beste (und am häufigsten verwendete) zeitgenössische Ansatz für ein Ein-Chip-Embedded-Design genau das sein: FPGA, das sowohl die MCU als auch den Digitalfilter in derselben Firmware implementiert.

Aktualisieren

Ich habe gerade bemerkt, dass Sie bereits ein Spartan-FPGA in Ihrem Projekt haben. Sie können den Xilinx FIR-Compiler verwenden, um einen festen Filter sofort zu generieren (und den Frequenzschieber für die Abstimmung verwenden), oder Sie können einige der Ansätze für die Implementierung abstimmbarer Filter im FPGA untersuchen (einige sind nicht sehr schwierig, viele Veröffentlichungen). um).

Vielen Dank für den guten Vorschlag. Ich bin gerade etwas verwirrt. Ich habe gerade ein FIR-Modul (IP CORE) erstellt. Es hat einen [0..15]-Bit-Eingang und einen [0..36]-Bit-Ausgang, und da FPGA keinen ADC hat, wie soll ich es verwenden? Eine Idee ist: DDS -> DAC (ein Drittanbieter und außerhalb des FPGA, der Aliase erstellt) -> ADC -> FIR -> DAC (wieder ohne Aliase) oder ich kann einfach nur einen DAC verwenden (DDS-> FIR -> DAU).
Denken Sie nicht analog, alles ist digital. :)
Für den gröbsten Ansatz können Sie die DDS-Impulsfolge nehmen und sie mit dem MSB des FIR-Eingangs verbinden (wollten Sie das nicht mit dem DAC/ADC machen?). Die Ausgabe von FIR ähnelt dann einer Sinuswelle. Wenn dies Ihr Hauptziel ist, gibt es Filtertopologien, die sich besonders für die Umwandlung von Impulsfolgen in digitalisierte Sinuswellen eignen (bedenken Sie jedoch, dass Sie das FIR mit einem ausreichend höheren Takt betreiben müssen).

Digitales Filtern klingt wie der einzige Weg, um das zu erreichen, was Sie wollen, und meine zwei Pence sind nicht viel, aber hier geht es.

Es gibt einfache Digitalfilter zweiter Ordnung, die gut und relativ einfach sind, aber auf ein gewisses Maß an Oversampling angewiesen sind, um Bandbreiten zu erreichen, die nahe an der grundlegenden Abtastrate liegen. Oversampling kann erreicht werden, indem zwei aufeinanderfolgende Basisabtastungen genommen und dazwischen Abtastungen erzeugt werden. Ich sage das, weil dies die einzigen digitalen Filter sind, die ich kenne (in meiner begrenzten Fähigkeit zu diesem Thema), die funktionieren könnten.

Hier ist eine, die auf 1-kHz-Sampling basiert und die Erstellung von Oversamples erwähnt, um Stabilität über die 300-Hz-Grenze hinaus ohne Oversampling zu erreichen. Wenn Sie bereits Samples mit einer Rate von 1 GHz haben, funktioniert dieser Filtertyp bis zu vielleicht 200 MHz: -

Geben Sie hier die Bildbeschreibung ein