通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2010-3-22
跳转到指定楼层
1#
发表于 2010-3-22 15:50:57 |只看该作者 |倒序浏览
小弟不才,对于MATLAB和无线信道不是非常了解。

尤其是MATLAB的程序,目前要做一个无线瑞利信道的仿真,就是最后的程序不知道怎么改,马上就要交了,很急!希望懂的能帮我下,要求和程序一下放出,希望好心人能把改好的程序写出来或者发我的邮箱![email=le75756969@163com]le75756969@163com[/email],万分感谢!

我们的要求是在原有的程序基础上,建立一个瑞利无线信道的仿真,仿真模型是常用的JACK模型。以下发的程序是单径,要求改成是3径,希望懂matlab的高手能帮我修改下程序,在时间上第一条信号延迟0.5us,第2条延迟1.0us,第3条延迟1.5us。就可以了。
-----------------------------------------------------------------------------分割线----------------------------------------------------------------
%%jakes.m
%%本程序将一随机信号通过瑞利信道,产生输出
%%
clear,clc,close all;
Ts=0.02;
fmax=2;                 %最大多普勒频移
Nt=400;                 %采样序列的长度
sig=j*ones(1,Nt);       %信号
t=[0:Nt-1];
%设定信道仿真参数
N0=25;
D=1;
[ u ]=JakesRayleigh(N0,D,fmax,Nt,Ts);
RecSignal=u.*sig;
plot(20*log10(abs(RecSignal)))


------------------------------------------------------------------------分割线-------------------------------------------------------------------
%%JakesRayleigh.m
%%本函数用Jakes方法产生单径的符合瑞利分布的复随机过程
%%
function [ u ]=JakesRayleigh(N0,D,fmax,M,Ts,fc)
%输入参数
%       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);
    end
    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:TsM-1)*Ts,
        w1=cos(2*pi*f*t+ph_i);
        ut1=c1*w1.';
        k=k+1;
        u1(k)=ut1;
    end;
%计算Rs(t)
    k=0;
    for t=0:TsM-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:TsM-1)*Ts,
        k=k+1;
        u(k)=u1(k)-j*u2(k);
    end;

举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-24 14:22 , Processed in 0.150419 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部