瑞利信道Matlab仿真程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%%File_C7:
%本程序将一随机信号通过瑞利信道产生输出
%%
clear;
clc;
Ts=;
fmax=2;%最大多普勒频移
Nt=400;%采样序列的长度
(
sig=j*ones(1,Nt);%信号
t=[0:Nt];
%设定信道仿真参数
N0=25;
D=1;
[u]=jakes_single_rayleigh(N0,D,fmax,Nt,Ts);%生成瑞利信道RecSignal=u.*sig;
?
plot(20*log10(RecSignal));
%
%本函数用Jakes方法产生单径的符合瑞利分布的复随机过程%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [u]=jakes_single_rayleigh(N0,D,fmax,M,Ts,Tc)
% 输入参数:
% N0 频率不重叠的正弦波个数
{
% D 方差,可由输入功率得到
% fmax 最大多普勒频移
% M 码片数
%输出参数
%u 输出复信号
%u1 输出信号的实部
%u2 输出信号的虚部
%%
、
%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=4*N0+2;%Jakes仿真叠加正弦波的总个数
%计算Jakes仿真中的离散多普勒频率fi,n
f=zeros(1,N0+1);
for n=1:N0
f(n)=fmax*cos(2*pi*n/N);
~
f(N0+1)=fmax;
%计算多普勒增益ci,n
%同向分量增益c1,n
c1=zeros(1,N0+1);
for n=1:N0
c1(n)=D*(2/sqrt(N))*2*cos(pi*n/N0);
end
c1(N0+1)=D*(2/sqrt(N))*sqrt(2)*cos(pi/4);
《
%正交分量增益c2,n
c2=zeros(1,N0+1);
for n=1:N0
c2(n)=D*(2/sqrt(N))*2*sin(pi*n/N0);
end
c2(N0+1)=D*(2/sqrt(N))*sqrt(2)*sin(pi/4);
%插入随机相移ph_i,解决Jakes方法的广义平稳问题n=(1:N0+1);
\
U=rand(size(n));
[x,k]=sort(U);
ph_i=2*pi*n(k)/(N0+1);
%计算复包络
u1=zeros(1,M);%Rc(t)
u2=zeros(1,M);%Rs(t)
u=zeros(1,M);%R(t)
k=0;
&
%计算Rc(t)
k=0;
for t=0:Ts:(M-1)*Ts;
w2=cos(2*pi*f*t+ph_i);
ut2=c2*w2.';
k=k+1;
u2(k)=ut2;
end
%计算u(t)
k=0;
for t=0:Ts:(M-1)*Ts
k=k+1;
u(k)=u1(k)-j*u2(k);
end
%程序结束