estimación de fase de I y Q

2

digamos que tengo una señal sinusoidal discreta. Construyo el canal I y Q de acuerdo con el muestreo con una frecuencia 4 * tiempo la frecuencia de la señal. eso significa multiplicar la señal con [1 1 -1 -1 .....]. en Matlab:

n1=1024;
n=[0:n1-1];
f=50;
sf=4*f;
PHI=150; 
x=(1*sin(2*pi*(f*1e6)*((1/sf)*1e-6)*n+PHI*pi/180));
xx=reshape(x,4,n1/4);
xrr=[xx(1,1:n1/4) ;-xx(3,1:n1/4)];
xii=[xx(2,1:n1/4) ;-xx(4,1:n1/4)];
I=reshape(xrr,1,n1/2);
Q=reshape(xii,1,n1/2);

Filtré ahora el I y Q con un paso bajo.

PHI=atan2d(Q,I)

¿Por qué conseguir algo diferente a 150?

    
pregunta dspp

1 respuesta

1

Creo que quieres la versión de 2 argumentos de atan2d ,

atan2d(I, Q) ,

en lugar de atan2d(Q/I) .

Con la forma de un argumento, no hay manera de distinguir entre el segundo y el cuarto cuadrantes, por lo que probablemente tengas una respuesta de -30 grados o algo así.

Advertencia: no probé esto en Matlab, solo en SciLab.

Editar Aquí está mi código SciLab:

n1=1024;
n=[0:n1-1];
f=50;
sf=4*f;
PHI=150; 
x=(1*sin(2*%pi*(f*1e6)*((1/sf)*1e-6)*n+PHI*%pi/180));
xx=matrix(x,4,n1/4);
xrr=[xx(1,1:n1/4) ;-xx(3,1:n1/4)];
xii=[xx(2,1:n1/4) ;-xx(4,1:n1/4)];
I=matrix(xrr,1,n1/2);
Q=matrix(xii,1,n1/2);

phi = atan(I, Q) * 180 / %pi;

Ves que esto es esencialmente idéntico al tuyo, excepto

  1. SciLab tiene matrix en lugar de reshape .
  2. SciLab no tiene atan2d .
  3. SciLab usa %pi en lugar de pi .

Con este código obtengo 150 en todos los elementos de la matriz phi .

    
respondido por el The Photon

Lea otras preguntas en las etiquetas