www.mikrocontroller.net

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


Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Hi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kessler

Kannst du das mal als Blockschaltbild zeichnen?

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

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

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Hi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.