Forum: FPGA, VHDL & Co. schmalbandiges Bandpassfilter im FPGA


von Hi (Gast)


Lesenswert?

Hallo,

muss aus einem Signalgemisch einen schmalen Frequenzbereich 
herausfiltern. Ich habe jetzt schon ein FIR Filter in den FPGA 
programmiert. Leider ist der Filter nicht schmalbandig genug. Leider 
kann ich die Koeffizientenanzahl auch nicht mehr erhöhen. Was für 
Möglichkeiten gibt es noch einen schmalen Frequenzbereich 
herauszufiltern? Gibt es eine Möglichkeit mit einem PLL? Wenn ja, wie 
muss ich das im FGPA aufbauen?

Danke

von Falk B. (falk)


Lesenswert?

@ Hi (Gast)

>Möglichkeiten gibt es noch einen schmalen Frequenzbereich
>herauszufiltern?

IIR Filter.

> Gibt es eine Möglichkeit mit einem PLL?

Mischer wäre möglich, aber auch aufwändiger.

MFG
Falk

von Hi (Gast)


Lesenswert?

@Falk

Kannst du mir die Möglichkeit mit einem Mischer erklären?

von Falk B. (falk)


Lesenswert?

@ Hi (Gast)

>Kannst du mir die Möglichkeit mit einem Mischer erklären?

Uuups, Kommando zurück, das war wohl ein Schnellschuss aus der Hüfte, 
der in den Fuss ging :-(
Ein schmalbandiges Filter geht halt nur mit nem schmalbandigen Filter.

MfG
Falk

von idee (Gast)


Lesenswert?

du könntest dein signal durch zwei sehr steilflankige filter laufen 
lassen, das ein machst du als hochpass das andere als tiefpass... müsste 
theoretisch gehen

von peter (Gast)


Lesenswert?

Spezifiziere doch das Filter mal etwas genauer:

- Welche (Mitten-)Frequenz?
- Justierbar oder fixe Frequenz?
- Welche Bandbreite?
- Flankensteilheit?
- Sperrdämpfung?
- Spezielle Anforderung an Phasenverlauf, Laufzeit, Rippel, Dämpfung?

Jenachdem ist ein gewöhnliches LC-Filter oder ein aktives Filter die 
einfachere Wahl...

von Hi (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

in etwa wie das Filter im Anhang müsste es aussehen.

Ist ein IIR Filter im FPGA schwer zu realisieren?
Wo kann es mit einem IIR Filter Probleme geben?
Habt ihr ein Beispiel für ein IIR Filter?

Danke

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Heruntermischen ist durchaus eine Möglichkeit, die relative Bandbreite 
des Filters zu erhöhen, und es damit zu vereinfachen. Mischen = 
Multiplizieren mit einem Sinus. Damit entstehen allerdings 
Spiegelfrequnezen, die man zum Teil mit zwei Mischungen mit Sinus und 
Cosinus unterdrücken kann.

von Hi (Gast)


Lesenswert?

@Kessler

Kannst du das mal als Blockschaltbild zeichnen?

von Mark (Gast)


Lesenswert?

@Hi

Deine Anforderungen sind zu hoch, die Filterflanken viel zu steil
bei einer Samplefrequenz von 100 MHz.
Du musst das Konzept ändern, z.B. Abtastratenreduktion, runtermischen, 
Aufteilung in TP/HP (so wie oben schon vorgeschlagen).

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das soll ein Bandpass für ca 7 MHz werden?
Dann könnte der Mischoszillator z.B. bei 7,5 MHz liegen, die 
Zwischenfrequenz bei 0,5 MHz, die Spiegelfrequenz liegt bei 8 MHz, die 
sollte also vor dem Mischer mit Tiefpass unterdrückt sein. Die 
Summenfrequenz bei 7+7,5=14,5 MHz muß nach dem Mischer mit Tiefpass 
unterdrückt werden, sodaß nur die 0,5 MHz übrigbleiben. Nach deren 
Bandpassfilterung werden sie wieder mit demselben Oszillator auf ihre 
ursprüngliche Frequenz hochgemischt, dabei entsteht wieder eine 
Spiegelfrequenz bei 8 MHz, die ein weiteres Tiefpassfilter unterdrückt. 
So würde man das in Analogtechnik machen, im FPGA geht es entsprechend.

Ob sich der Aufwand allerdings lohnt ist einen andere Frage.

von Hi (Gast)


Lesenswert?

@kessler

ja der Bandpass sollte bei ca. 7 MHz liegen.

Was meinst du mit "ob sich der Aufwand lohnt"?
Glaubst du nicht, dass das funktioniert?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

na der zusätzliche Aufwand mit einem Sinusgenerator, zwei 
Multiplizieren, drei Tiefpässen nur um ein Bandpassfilter zu 
vereinfachen?

von Hi (Gast)


Lesenswert?

@Kessler

Hallo,
ich habe nochmals eine Frage. Das mit den Spiegelfrequenzen verstehe ich 
nicht. Woher kommt die Frequenz bei 8 MHz? Kannst du mir das erklären?
Ich habe gedacht wenn ich heruntermische erhalte ich eine Frequenz bei 
0.5 MHz und bei 14,5 MHz.

von Mark (Gast)


Lesenswert?

@Hi

mach bitte mal genauere Angaben:
- die Samplefrequenz ist 100 MHz?
- welche Bandbreite hat Dein Eingangssignal - ist das schon begrenzt ?
- was soll mit dem Signal nach der Filterung passieren?

wie wärs wenn Du direkt ins Basisband runtermischst, also Oszillator = 7 
MHz und dann nur noch einen Tiefpass danach?

von Hi (Gast)


Lesenswert?

@Mark
Das Eingangsignal hat eine Bandbreite von 5 MHz. Mittenfrequenz liegt 
bei 7 Mhz.
Was für Frequenzen erhalte ich wenn ich mit 7 MHz runtermische?
Was passiert mit den negativen Frequenzen?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ja das geht dann mit zwei Mischern ins Basisband, mit Sinus und Cosinus. 
Dann lassen sich die beiden Seitenbänder später wieder trennen. Die 
negativen Frequenzen spiegeln sich an der Nullinie und fallen damit in 
dasselbe Frequenzband. Das Bandpassfilter vereinfacht sich zu einem 
Tiefpass halber Bandbreite. Zurück auf 7 MHz nach derselben Methode, 
nochmal zwei Mischer und dieselben Oszillatorsignale.
Die 8 MHz würden als unerwünschtes Eingangssignal wie ein 7 MHz Signal 
behandelt und sind nach dem ersten Mischer nicht mehr abzutrennen 
("Nebenempfangsstelle" beim Radio).

von Joerg W. (joergwolfram)


Lesenswert?

Ich möchte mich dem anschließen, was Mark weiter oben schon geschrieben 
hat, so geht das nicht. Auch nicht mit runtermischen.
Wenn ich mal ein "günstiges" Frequenzpaar aus dem Bild nehme:
7,05 und 7,104 MHz, dann unterscheiden sich die Perioden der beiden 
Signale um gerademal ca. 1ns. Die Abtastzeit beträgt aber 10ns. Um eine 
Verbesserung zu bekommen, müsste man VOR dem digitalisieren analog 
runtermischen.

Gruß Jörg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.