BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #7937同步于 2011/3/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

求教QPSK与BPSK代码问题

ggg123123
2011/3/24镜像同步6 回复
书上的一段代码,为什么让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('仿真结果','理论计算结果');
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
ggg123123机器人#1 · 2011/3/24
大家来帮帮忙呀!!!
zhangpengchn机器人#2 · 2011/3/25
是不是10dB时BPSK误码率太低,你这要出1000个错的,估计电脑跑不动了@@
ggg123123机器人#3 · 2011/3/25
【 在 zhangpengchn 的大作中提到: 】 : 是不是10dB时BPSK误码率太低,你这要出1000个错的,估计电脑跑不动了@@ : -- 哦,那我改一下试试,谢谢呀!
jxwgh66机器人#4 · 2011/4/1
求介绍你看的那本书?我也要64QAM调制。【 在 ggg123123 的大作中提到: 】 : 书上的一段代码,为什么让M=2以后,程序会进入死循环呢? : 谢谢各位!急需帮忙!! : clear all; : ...................
ggg123123机器人#5 · 2011/4/1
【 在 jxwgh66 的大作中提到: 】 : 求介绍你看的那本书?我也要64QAM调制。【 在 ggg123123 的大作中提到: 】 : : 书上的一段代码,为什么让M=2以后,程序会进入死循环呢? : : 谢谢各位!急需帮忙!! : ................... 《通信原理基于Matlab的计算机仿真》
zzqww机器人#6 · 2011/4/2
【 在 jxwgh66 的大作中提到: 】 : 求介绍你看的那本书?我也要64QAM调制。【 在 ggg123123 的大作中提到: 】 : : 书上的一段代码,为什么让M=2以后,程序会进入死循环呢? : : 谢谢各位!急需帮忙!! : ................... 现代通信系统——使用matlab 里面有现成的