QPSK调制与解调在MATLAB平台上的实现
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/30 05:17:42
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
![QPSK调制与解调在MATLAB平台上的实现](/uploads/image/z/2043672-24-2.jpg?t=QPSK%E8%B0%83%E5%88%B6%E4%B8%8E%E8%A7%A3%E8%B0%83%E5%9C%A8MATLAB%E5%B9%B3%E5%8F%B0%E4%B8%8A%E7%9A%84%E5%AE%9E%E7%8E%B0)
程序没有错,不是直接运行的,你需要建立三个.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相比有什么优势?