[请益] BPSK通过rayleigh和AWGN的模拟问题

楼主: zai1245 (ZAI)   2020-03-29 02:07:22
各位好
小弟新手刚接触MATLAB
最近需要跑BPSK通过rayleigh和AWGN的模拟
从MathWorks的Fading Channel页面有一段范例
里面的rayleigh fading是用comm.RayleighChannel直接产生的
接着通过AWGN channel通道后做hard decision
范例里面是用DBPSK做modulation
接着我把调变方式换成BPSK之后
BER直接飙升到0.5
请问为什么会有这种情形QQ
我的写法如下
==================================
tx_signal = randi([0 1],10000,1);
SNR = 0:1:35;%dB
errorRate = comm.ErrorRate;
Rayleigh = comm.RayleighChannel;
%BPSK modulation
for i = 1 : length(tx_signal)
if tx_signal(i) == 0
BPSK(i,:) = -1;
else
BPSK(i,:) = 1;
end
end
%Rayleigh fading channel
fad_BPSK = Rayleigh(BPSK);
for snrdb = 1 : length(SNR)
AF_BPSK = awgn(fad_BPSK,snrdb);
%demodulate BPSK
for i = 1 : length(tx_signal)
if AF_BPSK(i,1) > 0
rx_BPSK(i,1) = 1;
else
rx_BPSK(i,1) = 0;
end
end
reset(errorRate)
BPSK_error{snrdb} = errorRate(tx_signal,rx_BPSK);
BPSK_BER(snrdb) = BPSK_error{snrdb}(1);
end
semilogy(SNR,BPSK_BER)
grid on
=================================
感谢各位

Links booklink

Contact Us: admin [ a t ] ucptt.com