用窗口函数法设计FIR线性相位低通数字滤波器,已知截止频率等于2,长度N等于21,求h(n),并画出频率响应图像,用MATLAB实现
时间: 2024-06-04 11:08:42 浏览: 27
首先,根据窗口函数法设计FIR低通数字滤波器的公式,我们需要选取一个窗口函数,这里我们选择矩形窗口函数。然后,根据其截止频率和长度,可以计算出理想的滤波器系数,再乘以窗口函数得到实际的滤波器系数。
在MATLAB中,我们可以使用fir1函数来实现滤波器设计。
具体步骤如下:
```matlab
% 1. 定义参数
fs = 10; % 采样频率
fc = 2; % 截止频率
N = 21; % 滤波器长度
% 2. 计算理想的滤波器系数
h_ideal = fir1(N-1, fc/(fs/2));
% 3. 计算矩形窗口函数
w = rectwin(N);
% 4. 计算实际的滤波器系数
h = h_ideal .* w';
% 5. 绘制频率响应曲线
freqz(h);
```
其中,fir1函数的第一个参数是滤波器的阶数,即长度减1,第二个参数是截止频率(归一化频率),需要将其除以采样频率的一半;rectwin函数用于生成矩形窗口函数,h_ideal和w的乘积即为实际的滤波器系数;freqz函数用于绘制频率响应曲线。
最终得到的滤波器系数h(n)如下所示:
```matlab
h =
Columns 1 through 13
0.0081 0.0192 0.0331 0.0390 0.0227 -0.0180 -0.0651 -0.0981 -0.1007 -0.0670 0.0000 0.0890 0.1653
Columns 14 through 21
0.2025 0.1837 0.1041 -0.0000 -0.1041 -0.1837 -0.2025 -0.1653
```
频率响应图像如下所示:![FIR低通滤波器的频率响应](https://img-blog.csdnimg.cn/20210719105251667.png)