通过多径瑞利衰落信道对输入信号进行滤波
感谢大佬文章:
https://blog.csdn.net/shenjun1992722/article/details/50193381
rayleighchan
chan = rayleighchan(ts,fd,tau,pdb)
ts-输入信号的采样周期;fd-多普勒频移,单位为hz;tau-输入的信道参数,向量,包含了各径的延时,单位为s;pdb-输入的信道参数,向量,包含各径的功率【均值,实际产生的能量都是以此为均值的随机量】单位dB
然后
y = filter(chan,x) % 将信道的影响加在输入的数据x上
rayleighchan函数生成信道的过程实际是设计一个多抽头的滤波器,而滤波器的系数计算是多个sinc函数加权、延时后的求和:
g(n)=\sum_k{ sinc( tau(k)/Ts-n) h(k) },-N1<=n<=N2
其中N1和N2的选取要使得在-N1<=n<=N2之外的g(n)很小可忽略
实现步骤
- h(k)看作是一串冲激函数,与sinc函数卷积,sinc函数的边瓣周期由输入参数采样时间Ts决定,如果看连续时间波形的话,整个信道响应就是多个不同时延、不同幅度的sinc函数的叠加;
- 对这个连续的信道响应进行采样得到信道滤波器的抽头系数,采样间隔为Ts,而采样点的个数是要保证舍弃位置的信道响应足够小可以忽略,如果采样率过小则Ts较大sinc函数衰减慢,需要保存较多个抽头系数,此时很可能在第一径位置之前出现若干个信道采样点,即h(n)~=0, n<0;
3)输入信号(以Ts为间隔的采样点)与滤波器进行卷积输出(filter函数的作用)。【sinc(x)=sin(x)/x】
注:输入信号和多径衰落信道的采样间隔必须相同。
clear all
close all
clc
%-----------------------------升余弦滤波器
Fs=9600; %采样频率
Ts=1/Fs; %采样间隔
Fd=960; %Doppler频偏,以Hz为单位
tau=[0,0.002]; %多径延时,以s为单位
pdf=[0,0]; %各径功率,以dB位单位
h=rayleighchan(Ts