Hi,
ich möchte gerne eine IQ Demodulation auf einem STM32 Nucleo
durchführen.
An den beiden 2 ADC's liegt das Referenzsignal und das modulierte Signal
an.
Nun möchte ich aus diesen Werten,welche in einem array stehen, das
Nutzsignal ausrechnen.
Dazu müsste ich doch eigentlich nur das modulierte Signal und das
Referenzsignal multiplizieren respektive um 90° verschieben und
multiplizieren. Daraus lässt sich dann wiederum der Winkel und die
Amplitude berechnen.
Meine bisherige Idee sieht so aus:
1 | for(int i = 0; i < 1000; i++){
|
2 | I[i] = (carrier[i] * source[i]) * 0.000825195;
|
3 | Q[i] = (carrier[i] * source[i+25]) * 0.000825195;
|
4 | }
|
5 |
|
6 | for(int i = 0; i < 1000; i++){
|
7 | phi[i] = 57.3*(atan(Q[i]/I[i]));
|
8 | A[i] = sqrt(pow(I[i],2)+pow(Q[i],2));;
|
9 | }
|
Ist das so sinnvoll? Wenn ich das modulierte und Referenzsignal als
sinus und cosinus mit gleicher Frequenz einstelle bekomme ich ein
alternierende phase, was nicht meinen Erwartungen entspricht. Die Phase
müsste doch gleich bleiben.
Ist meine Berechnung murks?
Ich bin für jede Hilfe sehr dankbar!