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