QPSK调制与解调在MATLAB平台上的实现
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 16:02:43
QPSK调制与解调在MATLAB平台上的实现
% QPSK误码率分析
SNRindB1=0:2:10;
SNRindB2=0:0.1:10;
for i=1:length(SNRindB1)
[pb,ps]=cm_sm32(SNRindB1(i));
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
end;
for i=1:length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);
theo_err_prb(i)=Qfunct(sqrt(2*SNR));
end;
title('QPSK误码率分析');
semilogy(SNRindB1,smld_bit_err_prb,'*');
axis([0 10 10e-8 1]);
hold on;
% semilogy(SNRindB1,smld_symbol_err_prb,'o');
semilogy(SNRindB2,theo_err_prb);
legend('仿真比特误码率','理论比特误码率');
hold off;
function[y]=Qfunct(x)
y=(1/2)*erfc(x/sqrt(2));
function[pb,ps]=cm_sm32(SNRindB)
N=10000;
E=1;
SNR=10^(SNRindB/10);
sgma=sqrt(E/SNR)/2;
s00=[1 0];
s01=[0 1];
s11=[-1 0];
s10=[0 -1];
for i=1:N
temp=rand;
if (temp
% QPSK误码率分析
SNRindB1=0:2:10;
SNRindB2=0:0.1:10;
for i=1:length(SNRindB1)
[pb,ps]=cm_sm32(SNRindB1(i));
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
end;
for i=1:length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);
theo_err_prb(i)=Qfunct(sqrt(2*SNR));
end;
title('QPSK误码率分析');
semilogy(SNRindB1,smld_bit_err_prb,'*');
axis([0 10 10e-8 1]);
hold on;
% semilogy(SNRindB1,smld_symbol_err_prb,'o');
semilogy(SNRindB2,theo_err_prb);
legend('仿真比特误码率','理论比特误码率');
hold off;
function[y]=Qfunct(x)
y=(1/2)*erfc(x/sqrt(2));
function[pb,ps]=cm_sm32(SNRindB)
N=10000;
E=1;
SNR=10^(SNRindB/10);
sgma=sqrt(E/SNR)/2;
s00=[1 0];
s01=[0 1];
s11=[-1 0];
s10=[0 -1];
for i=1:N
temp=rand;
if (temp
程序没有错,不是直接运行的,你需要建立三个.m文件,分别把两个Function和最上面的程序粘贴上去.我修改了一下你只需要建立两个.m文件然后运行第一个文件就可以得到结果.
SNRindB1=0:2:10;
SNRindB2=0:0.1:10;
for i=1:length(SNRindB1)
[pb,ps]=cm_sm32(SNRindB1(i));
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
end;
for i=1:length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);
theo_err_prb(i)=(1/2)*erfc(sqrt(2*SNR)/sqrt(2));
end;
title('QPSK误码率分析');
semilogy(SNRindB1,smld_bit_err_prb,'*');
axis([0 10 10e-8 1]);
hold on;
% semilogy(SNRindB1,smld_symbol_err_prb,'o');
semilogy(SNRindB2,theo_err_prb);
legend('仿真比特误码率','理论比特误码率');
hold off;
另一个.m文件
function [pb,ps]=cm_sm32(SNRindB)
N=10000;
E=1;
SNR=10^(SNRindB/10);
sgma=sqrt(E/SNR)/2;
s00=[1 0];
s01=[0 1];
s11=[-1 0];
s10=[0 -1];
for i=1:N
temp=rand;
if (temp
SNRindB1=0:2:10;
SNRindB2=0:0.1:10;
for i=1:length(SNRindB1)
[pb,ps]=cm_sm32(SNRindB1(i));
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
end;
for i=1:length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);
theo_err_prb(i)=(1/2)*erfc(sqrt(2*SNR)/sqrt(2));
end;
title('QPSK误码率分析');
semilogy(SNRindB1,smld_bit_err_prb,'*');
axis([0 10 10e-8 1]);
hold on;
% semilogy(SNRindB1,smld_symbol_err_prb,'o');
semilogy(SNRindB2,theo_err_prb);
legend('仿真比特误码率','理论比特误码率');
hold off;
另一个.m文件
function [pb,ps]=cm_sm32(SNRindB)
N=10000;
E=1;
SNR=10^(SNRindB/10);
sgma=sqrt(E/SNR)/2;
s00=[1 0];
s01=[0 1];
s11=[-1 0];
s10=[0 -1];
for i=1:N
temp=rand;
if (temp
QPSK调制与解调在MATLAB平台上的实现
英语翻译最好是关于 异步双通道QPSK调制解调电路设计与实现
关于用matlab做的FM调制解调,在FM解调过程中用了一个z=hilbert(u);就实现了解调,请问是怎么实现的
计算机通信调制与解调的几个问题
用MATLAB研究莫尔斯码的幅度调制与解调.
谁知道什么是信号的调制与解调?为什么要进行调制与解调?
调制和解调是在哪进行的
信号调制中调幅对应的解调方式是什么?
高频电子线路——在无线电通信中为什么要采用“调制”和“解调”?各自的作用是什么?
调制解调器用英语怎么说?
2011年数学建模B题交巡警服务平台的设置与调度画图程序matlab实现
QPSK和Offset QPSK有什么区别?Offset QPSK与QPSK相比有什么优势?