一、Matlab实现hamming,hanning时域窗函数相乘法。
数字滤波器都是2π归一化的,2π对应fs采样率。这一点和FFT结果是一样。采样时间离散序列,频谱以2π为周期,(也是以Fs为周期)。
% %------------------------------低通滤波器2----------------------------------
fpass=200; %通带
fstop=500; %阻带
Bslope=(fstop-fpass)/Fs*2*pi; %过渡宽度
N0=ceil(3.3*2*pi/Bslope); %滤波波长
N=N0+mod(N0+1,2); %取N为奇数,时延(N-1)/2,仍在采样点处
window = (hamming(N))'; % 海明窗计算
Wn=(fpass+fstop)/2/Fs*2; % 计算截止频率
firfilter_vect=fir1(N-1,Wn,window); % 用fir1函数设计FIR第1类滤波器,M=N-1,为滤器的阶数,也是除了当前点,前面其他需加进的点数
datay=filter(firfilter_vect,1,data); %原始数据data进行滤波,即data与firfilter_vect的卷积。
%======================================================
因为理想滤波器具有很好频率特性,但是因为其时间响应长度无限。所以我们要用一个窗函数来把它截断,hamming窗截断具有通带、阻带波动小的特点。fir1函数实现了理想低通滤波器的时域无限长序列h(t)与汉明窗window相乘,生成一个有限长的序列。即对h(t)的加窗截断。t在离散采样形式可写成h(n),
![97db14bd94acea0925ed33a113fdb6e2.png](https://i-blog.csdnimg.cn/blog_migrate/47d3770096f66e60089962a20478d71b.jpeg)
fir1实现:
![equation?tex=h%28n%29%3Dh_d%28n%29%5Cbullet+window](https://i-blog.csdnimg.cn/blog_migrate/d1fd1762b3482497a2831803d0149b14.png)
filter实现:h(N)卷积data。因为把理想低通变成有限长度,这正是FIR(有限长度冲击响应的由来)。