返回信息流书上的一段代码,为什么让M=2以后,程序会进入死循环呢?
谢谢各位!急需帮忙!!
clear all;
close all;
M=4;
EsN0dB=3:0.5:10;
EsN0=10.^(EsN0dB/10);
Es=1;
N0=10.^(-EsN0dB/10);
sigma=sqrt(N0/2);
error=zeros(1,length(EsN0dB));
s_data=zeros(1,length(EsN0dB));
for k=1:length(EsN0dB)
error(k)=0;
s_data(k)=0;
while error(k)<1000
%产生信源1~4均匀分布
d=ceil(rand(1,10000)*M);
%调制成QPSK信号
s=sqrt(Es)*exp(j*2*pi/M*(d-1));
%加入信道噪声
r=s+sigma(k)*(randn(1,length(d))+j*randn(1,length(d)));
%判决
for m=1:M
rd(m,:)=abs(r-sqrt(Es)*exp(j*2*pi/M*(m-1)));
end
for m=1:length(s)
dd(m)=find(rd(:,m)==min(rd(:,m)));
if dd(m)~=d(m)
error(k)=error(k)+1;
end
end
s_data(k)=s_data(k)+10000;
end
end
Pe=error./s_data;
%理论计算的误码率结果
Ps=erfc(sqrt(EsN0)*sin(pi/M));
semilogy(EsN0dB,Pe,'b*-');hold on;
semilogy(EsN0dB,Ps,'rd-');
xlabel('Es/N0(dB)');ylabel('误码率');
grid on;
legend('仿真结果','理论计算结果');
这是一条镜像帖。来源:北邮人论坛 / matlab / #7937同步于 2011/3/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
求教QPSK与BPSK代码问题
ggg123123
2011/3/24镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 zhangpengchn 的大作中提到: 】
: 是不是10dB时BPSK误码率太低,你这要出1000个错的,估计电脑跑不动了@@
: --
哦,那我改一下试试,谢谢呀!
求介绍你看的那本书?我也要64QAM调制。【 在 ggg123123 的大作中提到: 】
: 书上的一段代码,为什么让M=2以后,程序会进入死循环呢?
: 谢谢各位!急需帮忙!!
: clear all;
: ...................
【 在 jxwgh66 的大作中提到: 】
: 求介绍你看的那本书?我也要64QAM调制。【 在 ggg123123 的大作中提到: 】
: : 书上的一段代码,为什么让M=2以后,程序会进入死循环呢?
: : 谢谢各位!急需帮忙!!
: ...................
《通信原理基于Matlab的计算机仿真》
【 在 jxwgh66 的大作中提到: 】
: 求介绍你看的那本书?我也要64QAM调制。【 在 ggg123123 的大作中提到: 】
: : 书上的一段代码,为什么让M=2以后,程序会进入死循环呢?
: : 谢谢各位!急需帮忙!!
: ...................
现代通信系统——使用matlab
里面有现成的