Hallo, in einem Empfänger habe ich nur einen ADC. Diesen lese ich zyklisch aus und habe die Werte im Microcontroller. Nun würde ich gerne wissen, wie ich daraus ein IQ-Signal erzeuge, und zwar nur mit Software. Gruss Robert
Na, indem Du die Basisfrequenz erzeugst, und zwar zweimal: Einmal eben um 90 Grad verschoben. DIese beiden Signale multiplizierst Du dann im Controller mit dem ADC Ergebnis und bekommst so dein I und Q Signal. Gruss Michael
Also, ich habe eine ZF von 48 MHz, diese wird durch den ADC gesampelt. Wie erzeuge ich denn jetzt eine Taktfrequenz per Software? Gruss Robert
Hier ein Beispiel, wenn die Samplefrequenz genau 4x 48MHZ beträgt.
1 | zeit = 0; |
2 | |
3 | while (1) { |
4 | |
5 | while (WAIT_4_ADC_RESULT); |
6 | |
7 | zeit = (zeit+1) & 0x03; // zeit zählt von 0 ... 3; |
8 | |
9 | // ADC Wert mit +1 oder -1 multiplizieren
|
10 | if ( (zeit == 0 ) || (zeit == 1 ) ) |
11 | i = ADC; |
12 | else
|
13 | i = -ADC; |
14 | |
15 | // q ist wie i, jedoch um 90° ( i Schritt phasenverschoben)
|
16 | if ( (zeit == 1 ) || (zeit == 2 ) ) |
17 | q = ADC; |
18 | else
|
19 | q = -ADC; |
20 | |
21 | |
22 | }
|
Wenn das Signal nur noch als Basisband (Niederfrequenz) vorliegt, ist es zu spät zum I/Q-Auftrennen. Die üblichen Soundkarten-Empfänger (z.B. der DRM-Decoder aus Darmstadt) verwenden eine Zwischenfrequenz von 12 kHz, das liegt etwa in der Mitte des Soundkarten-Frequenzbereichs, und demodulieren digital nach der AD-Wandlung mit zwei gegeneinander um 90 Grad verschobenen Sinusschwingungen von 12 kHz.
Bei dem Signal handelt es sich um die erste ZF, per Quarzfilter gefiltert. Ich werde das Signal nochjmal heruntermischen. Ein ADC digitalisiert das Signal dann und die weitere Verarbeitung soll ausschliesslich digital erfolgen. Gruss Robert
Wenn man Quadratur will, muss man mit Quadratur beginnen. Und die ganze Kette ist auf Quadratur ausgelegt, nicht nur die Digitalisierung.
R. Freitag schrieb: > Bei dem Signal handelt es sich um die erste ZF, per Quarzfilter > gefiltert. Ich werde das Signal nochjmal heruntermischen. Dann mischst du einfach mit z.B. einem Schaltermixer dieses Signal mit der ZF-Frequenz (also z.B. 10,7MHz), und gleichzeitig das selbe Signal auch mit 10,7MHz, aber um 90° phasenverschoben. Die Ausgänge beider Mixer (nach Tiefpassfilterung) sind dann I und Q und können digitalisiert (im einfachsten Fall per Soundkarte) werden. Beispiele für die Erzeugung der phasenverschobenen Signale mit einem f=f_misch*4-Quarz sowie Schaltermischern finden sich zu hauf bei den ganzen SDR-Projekten, z.B. hier: http://www.andreadrian.de/sdr/ Gruß, droelf
Hallo, such mal nach Hilberttransformation. Mit der macht man aus einem reellen Signal ein Analytisches. Ganz offensichtlich musst Du dann aber noch Deine 0Hz Linie durch Multiplikation an die richtige Stelle schieben, da ein allgemeines analytisches Signal ja kein symetrisches Spektrum aufweist. Willst Du also bei z.B. 20MHz ein IQ-Signal (200kHz Bandbreite) empfangen stellst Du Deinen Empfänger auf 19.9MHz, machst eine Hilberttransformation mit dem 200kHz breiten Signal und mischt es anschließend mit exp(j*2*%pi*100kHz) bzw mit der entsprechenden Sampelrate. Dann hast Du I und Q mit der Mittenfrequenz von 20MHz. Das ist alles ein bisschen verzwickt und man tut gut sich mit den Grundlagen zu beschäftigen. Sonst kommen solche Aussagen wie die von "hacky" heraus. Einziger Haken: Die praktische Hilberttransformation tut sich bei niedrigen Frequenzen schwer die 90° Phasendrehung zu erreichen. Sollte aber nicht stören weil Du die 0Hz Referenzlinie sowieso nachher verschiebst. Viele Grüße, Martin L.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.