clear all;
delta_fc=200;
N=1000;
M=4;
Ts=1/1000;
Td=Ts/2;
for m=1:100;
for i=1:N;
[x,x1,x2]=psk_gen(M);
t=((i-1)*Ts)/4:Ts/4:(i-1)*Ts/4+3*Ts/4;
[I,Q]=add_f(x,delta_fc,t);
Ii(i*4-3:i*4)=I;
Qi(i*4-3:i*4)=Q;
end
l=length(Ii);
p1=Ii(1:l-2);p2=Ii(3:l);
q1=Qi(1:l-2);q2=Qi(3:l);
for i=1:l-2;
Y(i)=p1(i)*q2(i)-q1(i)*p2(i);
X(i)=p1(i)*p2(i)+q1(i)*q2(i);
end
Y1=mean(Y);
X1=mean(X);
Z1=Y1/X1;
delta_f(m)=atan(Z1)/Td/(2*pi);
end
E=mean(delta_f)
子程序psk_gen.m
function [x,x1,x2]=psk_gen(M)
temp=rand;
dsource=1+floor(M*temp);
map=[0:M-1].*2*pi/M;
psk_sig=map(dsource);
x1=cos(psk_sig);
x1=round(x1);
x2=sin(psk_sig);
x2=round(x2);
x=x1+j*x2;
return
子程序add_f.m
function [I,Q]=add_f(x,delta_fc,t)
x1=real(x);
x2=imag(x);
R=(x1+j*x2)*exp(j*2*pi*delta_fc*t);
I=real(R);
Q=imag(R);
return