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

求助:别的论坛上看到的一个rayleigh_bpsk调制解调程序

dhwl
2010/8/30镜像同步2 回复
close all; clear all; N=5e5; M=2; k=log2(M); EbNo=0:15; tx=randint(N,1,M);%产生N行1列,并且数据都是在0~M-1之间 %Tx_Sig=de2bi(tx,[],k,'left-msb'); %Tx_S=reshape(Tx_Sig,1,length(Tx_Sig)*k); %Transmitted bits %mod_Sig=exp(j*tx*2*pi/M); h = modem.pskmod('M', 2, 'PhaseOffset', 0, 'SymbolOrder',... 'binary', 'InputType', 'bit'); mod_Sig=modulate(h,tx); chan = rayleighchan(5e-4,75,[0 5e-7],[0 -3]); %1 sample time of the input signal %2 maximum doppler shift %3 a vector of path delays %4 a vector of average path gains ray_Sig=filter(chan,mod_Sig); %采样时间用chan的采样时间 for n = 1:length(EbNo) noise_Sig=awgn(ray_Sig,EbNo(n),0.04); % Add Gaussian noise. h = modem.pskdemod('M', 2, 'PhaseOffset', 0, 'SymbolOrder',... 'binary', 'OutputType', 'bit', 'DecisionType',... 'hard decision'); demod_Sig=demodulate(h,noise_Sig); % Demodulate. rx=demod_Sig; [nErrors, BER(n)] = biterr(tx,rx); end % Compute theoretical performance results, for comparison. BERtheory = berfading(EbNo,'psk',M,1); % Plot BER results. semilogy(EbNo,BERtheory,'b-',EbNo,BER,'r*'); legend('Theoretical BER','Empirical BER'); xlabel('EbNo (dB)'); ylabel('BER'); title('Binary DPSK over Rayleigh Fading Channel'); 其BER总是0.5左右,导致最后画出的曲线几乎是一条直线,与理论值差别较大,但是不知道原因在哪里; simulink中bit error calculation模块有个参数receive delay需要设置,在脚本语言中也需要设置吗?而且我发现即使有1个delay的话BER仍然在0.5左右。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
realid机器人#1 · 2010/9/11
没做信道补偿。
chengtai机器人#2 · 2011/8/17
【 在 dhwl 的大作中提到: 】 : close all; : clear all; : N=5e5; : ................... 您这个问题解决没有,我遇到同样问题,急求解决方案,谢谢