www.pudn.com > MultipathFading.rar > MultipathFading.m


%多径衰落信道 
%按F5开始运行 
%主要用于多径无线接口 
%多径衰落信道公式和图形 
%M文件运行后,输入显示为蓝色 
%输出为红色, 输出载波变动、增加、减弱 
%       L 
%a=an*exp(-j*2*pi*fc*nT) 
%c=a*exp(-j*2*pi*fc*time_1);                  
%g=int(c*sin(B*(v-n*T))/(B*(v-n*T)),v);                  
%x=g*[zeros(1,100),signal_in]                 
%signal_out=symsum(x,time_1,0,N);                
%       k 
 
% S(t)--------T-----T-----T-----T-------------!     Delay 
%          !     !     !     !     !          !   
%          !     !     !     !     !          ! 
%         *g0   *g1   *g2   *g3   *g4  ---   *gN    response                     
%          !     !     !     !     !          ! 
%          !     !     !     !     !          ! 
%          !-----!-----!-----!-----!----------!-----Sum----r(t)signal out 
 
close all; 
N_path=5;                                         %设定多径时延个数为N个 
f=2;                                              %信号频率取f=2kHZ 
f_c=5;                                            %未调制的载波频率,f_c>=2f 
an=1;                                           %设定衰减系数 
N_point=1000;                                     %对信号取点总数 
B=10;                                            %设定系统带宽(T=1/B),信道最大传输速率为20Mbps 
                                                 %在无噪情况下,B=R/2,R/2=10*1024*1024b/s约等于10b/us 
T=1/B                                            %采样周期ms 
time_1 = (linspace (0, N_path, N_point));        %时间单位为ms 
x_min=-0.1; 
x_max=0.1; 
y_min=0; 
y_max=1;                                       %定义画图范围 
signal_in = sin(2*pi*f*time_1);         %输入正弦波 
plot (time_1, signal_in, 'b')                  %蓝色输入信号 
syms x;                                        %定义变量x 
grid on;                                       %画网格线 
xlabel('时间');ylabel('振幅'); 
title('多径衰落信道信号') 
hold on 
signal_1=zeros(1,N_point);                                               %定义输出信号长度  
for n = 1:1:N_path                                                         %叠代 
    a=an*exp(-j*2*pi*f_c*n*T);                                             % 
    a_1=a*exp(-j*2*pi*f_c*time_1(n));                                       %时延的复衰减 
    c=a_1*exp(-j*2*pi*f_c*time_1(n));                                      %定义复低通冲激响应 
%     c=a*exp(-j*2*pi*f_c*x);                                        %定义复低通冲激响应  
    gg=int(c*sin(pi*B*(x-n*T))/(pi*B*(x-n*T)),x,0,N_path*T);                     %冲激响应函数 
    g=double(gg);                                                          %将符号常数转变为数值常数 
    s_1=signal_in/cos(2*pi*f_c*time_1(n)); 
    signal_1=signal_1+g*[zeros(1,n*N_point/N_path*T),s_1(1:end-n*N_point/N_path*T)];   %输出信号 
    signal_out=signal_1+signal_in; 
    plot(time_1,signal_out,'g')                                            %红色信号输出线 
    pause (0.5)                                                            %时间间隔 
end 
plot(time_1,signal_out,'r')                                            %红色信号输出线 
 
figure; 
xlabel('频率');ylabel('振幅'); 
title('多径衰落信道信号'); 
grid on;                                                                   %画网格线 
hold on 
f_out=-0.5:1/N_point:0.5-1/N_point;                                        %对输出频谱图横轴fo取点 
signal_ff=fft(signal_out);                                                 %进行FFT变换 
signal_fff=signal_ff/max(signal_ff);                                       %归一化处理 
signal_f=fftshift(abs(signal_fff));                                        %归拢处理 
plot (f_out,signal_f,'r')                                                  %红色频谱图 
axis([x_min x_max y_min y_max])                                            %设定坐标轴取值范围 
hold off 
 
 
figure; 
xlabel('频率');ylabel('振幅'); 
title('输入信号'); 
grid on;                                                                   %画网格线 
hold on 
f_out=-0.5:1/N_point:0.5-1/N_point;                                        %对输出频谱图横轴fo取点 
signal0=sin(2*pi*f*time_1); 
signal1=fft(signal0);                                                      %进行FFT变换 
signal2=signal1/max(signal1);                                              %归一化处理 
signal3=fftshift(abs(signal2));                                            %归拢处理 
plot (f_out,signal3,'r')                                                   %红色频谱图 
axis([x_min x_max y_min y_max])                                            %设定坐标轴取值范围 
%plot (f_out,abs(signal_f),'r')                                            %红色频谱图 
hold off 
 
 
 
 
 
 
 
 
 
 
 
%signal_out=zeros(1,2000) 
%for n = 1:1:N                                                             %叠代 
    %c=a*exp(-j*2*pi*fc*time_1(n));                                        %定义复低通冲激响应  
    %gg=int(c*sin(B*(v-n*T))/(B*(v-n*T)),v);                               %冲激响应函数 
    %g=vpa(gg);                                                            %将符号常数转变为数值常数 
    %signal_out=signal_out+g*[zeros(1,n*100),signal_in,zeros(1,(N-n)*100)];%输出信号 
    %plot (time_1,(signal_out),'r')                                        %红色输出线 
    %pause (0.5)                                                           %时间间隔 
    %end 
     
%for n =1:1:N                                                              %叠代 
    %c=a*exp(-j*2*pi*fc*time_1(n));                                        %定义复低通冲激响应  
    %g=int(c*sin(B*(v-n*T))/(B*(v-n*T)),v);                                %冲激响应函数          
    %x=g*[zeros(1,n*100),signal_in(1:end-(n*100))]; 
    %signal_out=symsum(x,1,N)                                              %输出信号 
    %plot (time_1,(signal_out),'r')                                        %红色输出线 
    %pause (0.5)                                                           %时间间隔 
%end