matlab信号经过瑞利,Matlab关于 BPSK信号通过瑞利信道的误码性能分析的仿真实验....
主函数。
SNRindB1=0:2:12;%定义信噪比序列
SNRindB2=0:2:12;%采用dB作为单位
for i=1:length(SNRindB1)
s_e(i)=ray(SNRindB1(i));%计算误码率
end
for i=1:length(SNRindB2)
SNR=exp(SNRindB2(i)*log(10)/10);%转化信噪比为数值表示。。
theo_err_prb(i)= 1/2*(1-sqrt(SNR/(1+SNR))); %瑞利信道下BPSK信号的理论误码率
end
semilogy(SNRindB1,s_e,'*');
hold on
semilogy(SNRindB2,theo_err_prb);
legend(' simulated result',' theoretical result');
hold off
自定义的函数ray.m
function[p]=ray(SNRindB) %用来产生给定信噪比的
N=5000;
E=1; %定义每符号能量
snr=10^(SNRindB/10); %信噪比
sgma=E/sqrt(snr*2); %标准差
%产生数据源
for i=1:N
temp=rand;
if (temp<0.5)
dsource(i)=0;
else
dsource(i)=1;
end
end
num_err=0;%计算错误的次数
for i=1:N
y=randn(1,2); %产生均值为零的正态分布随机变量
r=sqrt(y(1)^2+y(2)^2); %瑞利分布的包络…….
if (dsource(i)==0)
r0=r*E+gnray(sgma);
r1=gnray(sgma);
else
r1=r*E+gnray(sgma);
r0=gnray(sgma);
end
if(r0>r1)
decis=0;
else
decis=1;
end
if (decis~=dsource(i))
num_err=num_err+1;
end
end
p=num_err/N;
瑞利信道函数。。gnray.m
function [n1,n2]=gnray(m,sgma)
if nargin==0
m=0;
sgma=1;
elseif nargin==1
sgma=m;
m=0;
end
% rayleigh function
u=rand;
z=sgma*(sqrt(2*log(1/(1-u))));
u=rand;
n1=m+z*cos(2*pi*u);
n2=m+z*sin(2*pi*u);
我想请各位高手指教下我的瑞利信道模型写的对不对。虽然能运行出结果,但是我觉得还是有点问题,到底该如何描述瑞利信道这个乘性噪声模型呢?谢谢指教
总结
以上是生活随笔为你收集整理的matlab信号经过瑞利,Matlab关于 BPSK信号通过瑞利信道的误码性能分析的仿真实验....的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 信息论与编码曹雪虹第三版学习第二章总结
- 下一篇: matlab基于瑞利信道,一种基于MAT