📄 qpsk_performance.m
字号:
%% QPSK误码率及误符号率
clear all;
clc;
Ebn0=0:10;
for i=1:length(Ebn0)
sigma(i)=sqrt(10^(-Ebn0(i)/10));
end
nfr=1000;
frame=1000;
j=sqrt(-1);
for s=1:length(sigma)
for n=1:nfr
x=round(rand(1,frame));
for i=1:frame/2
if x(2*i-1:2*i)==[0 0]
u(i)=1;
elseif x(2*i-1:2*i)==[0 1]
u(i)=j;
elseif x(2*i-1:2*i)==[1 1]
u(i)=-1;
else u(i)=-j;
end
end
y=u+sigma(s)*(randn(1,frame/2)+j*randn(1,frame/2));
for i=1:length(y)
if angle(y(i))>=(-pi/4)&angle(y(i))<(pi/4)
y1(i)=1;
elseif angle(y(i))>=(pi/4)&angle(y(i))<(3*pi/4)
y1(i)=j;
elseif angle(y(i))>=(3*pi/4)|angle(y(i))<(-3*pi/4)
y1(i)=-1;
else y1(i)=-j;
end
end
for i=1:length(y1)
if y1(i)==1
x1(2*i-1:2*i)=[0 0];
elseif y1(i)==j
x1(2*i-1:2*i)=[0 1];
elseif y1(i)==-1
x1(2*i-1:2*i)=[1 1];
else x1(2*i-1:2*i)=[1 0];
end
end
symerr(n)=length(find(u~=y1));
biterr(n)=length(find(x~=x1));
end % end n
symber(s)=sum(symerr)/(length(u)*nfr)
bitber(s)=sum(biterr)/(length(x)*nfr)
end %% end s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -