📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -