⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phase_shift.m

📁 加入载波相位偏差
💻 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 + -