matlab bpsk ber,在Matlab中计算BPSK的BER

我编写了这段代码,用于以图形方式比较手动计算的BER和理论BER .

手动计算的BER(错误)总是1x1值,我希望它作为对应于SNR值的值范围 .

我也替换了这一行:

err=error+1;

用这一行:

err(k)=error+1;

仍然没有工作 .

任何人都可以解决这个问题吗?

这是代码:

N=100; % number of bits

SNR=0:1:10; % Different values for SNR

err=zeros(1:length(SNR)); % Initilizing calculated error for

% different SNR values

for k=1:1:length(SNR)

N0(k)=10^(-SNR(k)/10); % Calculating the noise level

s=randn(1,N)>.5; % generating random number of logic bits

% with equal probability 0.5

s=2*s-1; % Generating BPSK sequence between logic 1 , -1

% Generating real random noise with SD of 0.1

n = sqrt(N0(k)/2)*(randn(1,N) + j*randn(1,N));

r=s+n; % Noisy signal

rd=zeros(1,N); % Initializing Detected signal

for i=1:1:N

if(r(i)>0) % Comparing detected signal against a threshold

rd(i)=1;

else

rd(i)=0;

end

end

error=0;

for j=1:1:N % calculating BER

if(abs(rd(j)-s(j))==1)

error=error+1;

end

end

err=error+1; % calculated error for this value of SNR

end

th_err=.5*erfc(sqrt(10.^(SNR/10))); % Theoretical BER

semilogy(SNR,th_err,'*r');grid on;title('Bit error rate for BPSK');xlabel('Eb/N0');ylabel('Theoritical BER');

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值