Forum: FPGA, VHDL & Co. IQ - Demodulator


von Hi (Gast)


Lesenswert?

Hallo,

ich möchte mit Hilfe eines FGPAs einen IQ-Demodulator bauen. Dabei soll 
ein auf eine Zwischenfrequenz heruntergemischtes Bandpasssignal 
abgetastet werden. Nach dieser Abtastung erfolgt eine Mischung mit 
-Sinus und Cosinus. Frequenz des Mischers soll gleich der Frequenz der 
Zwischenfrequenz sein. Nach dieser Mischung habe ich einen Realteil und 
ein Imaginärteil. Anschließend möchte ich den Realteil und den 
Imaginärteil zu dem komplexen Signal addieren. Nun meine Frage, wie kann 
ich technisch die Phasenverschiebung der imaginären Einheit (90°) mit 
Hilfe des FPGAs realisieren?

Danke für die Hilfe.

von mandrake (Gast)


Lesenswert?

Ist die Frage auf die zu modulierenden Träger bezogen?

Ich gehe mal davon aus....

Habe keine Erfahrung mit FPGAs aber mathematisch bekommt man aus einem 
Sinus einen Cosinus durch Ableiten (differenzieren). Es gibt zum 
Beispiel Differenzierverstärker, die man mit OPs aufbauen kann. 
Vielleicht ist das eine umsetzbare Idee für dich.

von Andreas A. (Firma: Embedded Microtec) (andi) Flattr this


Lesenswert?

Ich würde dir empfehlen, dass du dir eine Sinustabelle in einem Ram (bei 
Xilinx z.B. Blockram) ablegst. Nachdem du in Hardware wirklich parallel 
Aufgaben erledigen kannst, machst du dir zwei Zähler, die die 
Sinustabelle durchlaufen. Der erste fängt bei am Beginn der Tabelle an 
und der zweite wird mit einem Offset initialisiert, sodass er quasi um 
90° phasenverschoben die Tabelle durchläuft. Damit hast du mit relativ 
wenig Logikaufwand einen genauen Sinus und Cosinus erzeugt.
Falls du einen Xilinx FPGA verwendest, kannst du jetzt noch die zwei 
Multiplizierer verwenden um dein Signal herunterzumischen.

mfg
Andreas

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Google mal nach Hilbert-Filter oder Hilbert-Transformer, das ist der 90 
Grad Phasenschieber, ein FIR-Filter mit zwei Ausgängen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Einen Sinus und Cosinus zum Runtermischen kann man noch mit DDS oder 
Cordic erzeugen, aber die zweite Phasenverschiebung muß das ganze 
Niederfrequenzband erfassen, das ist aufwendiger.
Für das Sprachfrequenzband von 300 Hz bis 3 kHz  ist ein spezielles 
FIR-Filter mit ca. 40-80 Taps nötig, wenn ich das recht gelesen habe.
In einem AVR ist das nicht zu machen, die Application Note von Atmel 
geht bis max.8 Stufen . Ein ARM könnte das eher schaffen, und ein FPGA 
sowieso.

von Alex (Gast)


Lesenswert?

Hilbert gibt es auch als IIR-Filter ...

von 6635 (Gast)


Lesenswert?

Man kann auch einen VCO mitlaufen lassen. Dessen erzeugtes Signal ist 90 
Grad verschoben. Allerdings nur am ort des Vergleichers.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

PLL geht doch auch nur mit einer Sinusschwingung. Er muß ein ganzes 
Frequenzband phasenschieben.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Von IIR-Hilbert-Filtern habe ich noch nichts gelesen, das übliche sind 
anscheinend linearphasige FIR-Filter nach  Parks-McClellan die in Matlab 
oder Scilab mit "remez" berechnet werden. Einfach nach "remez hilbert 
filter" googlen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

ok, wenn man danach sucht finden sich auch IIR-Hilbert-Filter:

http://www.mathworks.com/products/filterdesign/demos.html?file=/products/demos/shipping/filterdesign/iirallpassdemo.html
"...A quasi linear-phase IIR Hilbert filter ... using only 10 MPIS 
compared to 133 MPIS for an FIR equivalent..." (was sind Mega-PIS?), hat 
also Vorteile.

Für solche Fragen scheint "DSP-related" ein gutes Forum zu sein
http://www.dsprelated.com/showmessage/21946/1.php
"Hilbert IIR filter implementation"

von Günter -. (guenter)


Lesenswert?

Christoph Kessler wrote:
[...]
> (was sind Mega-PIS?)

Steht im Text beschrieben:
1
multiplications ... per input sample

[...]
>
> Für solche Fragen scheint "DSP-related" ein gutes Forum zu sein
> http://www.dsprelated.com/showmessage/21946/1.php
> "Hilbert IIR filter implementation"

DSP-related ist in dem Fall nur ein "Konservendosenhändler". Das 
eigentliche Diskussionsforum ist die Usenetgruppe comp.dsp.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ich habe nochmal weitergegoogled und noch das gefunden:
http://yehar.com/ViewHome.pl?page=dsp/
(ein älterer Link zum selben Autor Olli Niemitalo funktioniert nicht 
mehr)

90 degree phase difference allpass pair
This is probably the most efficient structure for a Hilbert transform. 
Actually, it's not a Hilbert transform, but two all-pass IIR filters 
whose phase difference is approximately 90 degrees over a range of 
frequencies symmetric around Nyquist/2.

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.