📄 phase_shift.m
字号:
clear;
clc;
n=5000;
snr=5:14;
phase=pi/10; %加入的相偏,单位为弧度
sum1=zeros(1,10);
sum2=zeros(1,10);
for i=1:10
for count=1:200
x=randint(1,n);
%由信噪比计算噪声功率,由于噪声分为实部和虚部两路
%其中一路噪声的功率为总噪声功率的一半
pn=1/10^(snr(i)/10)*10/2/4;
%产生噪声
[x1 x2]=sixteenQam_modulation(x); %16QAM调制
noise1=randn(1,n/4);
noise2=randn(1,n/4);
x=x1+j*x2;
y1=x1+sqrt(pn)*noise1;
y2=x2+sqrt(pn)*noise2;
y=y1+j*y2;
%加入载波相位偏差
y=y*exp(-j*phase);
%最大似然估计的相偏
phaseout(i)=-atan(sum(imag(conj(x).*y))/sum(real(conj(x).*y)));
%错误估计方法的相偏
phaseout2(i)=-mean(atan(imag(conj(x).*y)./real(conj(x).*y)));
%求相偏估计方差
sum1(i)=sum1(i)+(phase-phaseout(i))^2;
sum2(i)=sum2(i)+(phase-phaseout2(i))^2;
end
end
m=5:14;
plot(m,sqrt(sum1/count)/phase)
hold on;
plot(m,sqrt(sum2/count)/phase,'r');
legend('最大似然估计','错误估计');
title('相偏估计误差');
xlabel('SNR(dB)')
ylabel('标准误差(%)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -