瑞利信道Matlab仿真程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

%程序结束

相关文档
最新文档