用窗函数法设计一个线性相位的 FIR 低通滤波器 求matlab程序
时间: 2023-09-10 17:12:52 浏览: 245
用窗函数设计线性相位滤波器
好的,以下是用窗函数法设计一个线性相位的FIR低通滤波器的Matlab程序:
```matlab
% 窗函数法设计线性相位FIR低通滤波器
% 参数设置
fs = 10000; % 采样率
fc = 1000; % 截止频率
N = 101; % 滤波器阶数,必须为奇数
w = hamming(N); % 汉明窗函数
% 计算滤波器系数
h = fir1(N-1, fc/(fs/2), 'low', w);
% 计算线性相位
M = (N-1)/2; % 中心点
theta = -M:M;
h_lin = h.*exp(-1i*2*pi*fc/fs*theta); % 线性相位
% 可视化
freqz(h_lin);
```
上面的程序中,我们使用了Matlab中的fir1函数来计算滤波器系数。其中,第一个参数是滤波器阶数减1,第二个参数是归一化的截止频率,第三个参数是滤波器类型(这里选择低通滤波器),第四个参数是窗函数。
计算出滤波器系数后,我们用中心点为原点,计算各个点的线性相位,最后得到线性相位的滤波器系数。最后我们使用freqz函数可视化滤波器的频率响应。
需要注意的是,窗函数法设计的滤波器通常是非线性相位的,如果需要得到线性相位的滤波器,需要进行额外的计算。
阅读全文