已知FIR滤波器的系数,求频率响应,用matlab代码写出来
时间: 2024-02-21 07:01:20 浏览: 76
假设FIR滤波器的系数为h,可以用MATLAB的freqz函数来计算其频率响应。具体代码如下:
```matlab
% 定义FIR滤波器的系数
h = [0.1, 0.2, 0.3, 0.4, 0.5];
% 计算FIR滤波器的频率响应
[H, w] = freqz(h);
% 绘制频率响应的模长和相位响应
subplot(2,1,1);
plot(w/pi, abs(H));
xlabel('Normalized frequency (\times\pi rad/sample)');
ylabel('Magnitude');
title('Magnitude Response');
subplot(2,1,2);
plot(w/pi, angle(H));
xlabel('Normalized frequency (\times\pi rad/sample)');
ylabel('Phase (rad)');
title('Phase Response');
```
其中,freqz函数的输出变量H表示FIR滤波器的复频率响应,w是对应的频率向量。subplot函数用于绘制两个子图,分别为频率响应的模长和相位响应。运行该代码可以得到FIR滤波器的频率响应图形。
相关问题
已知FIR滤波器的各阶系数,如何通过matlab画出其频率响应曲线?
可以使用MATLAB中的 `freqz` 函数来计算并绘制FIR滤波器的频率响应曲线。
以下是一个示例代码,假设FIR滤波器的系数存储在向量 `h` 中:
```
% 定义FIR滤波器系数
h = [0.1, 0.2, 0.3, 0.2, 0.1];
% 计算频率响应
[H, W] = freqz(h);
% 绘制振幅响应曲线
figure;
plot(W/pi, abs(H));
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Magnitude');
title('Frequency Response');
% 绘制相位响应曲线
figure;
plot(W/pi, angle(H));
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Phase (rad)');
title('Phase Response');
```
在上述代码中, `freqz` 函数返回滤波器的频率响应 `H`,以及对应的频率向量 `W`。通过 `plot` 函数可以将 `H` 绘制成振幅响应曲线或相位响应曲线。`W` 是以弧度为单位的频率向量,可以通过除以 π 转换为归一化频率。
用窗口函数法设计FIR线性相位低通数字滤波器,已知截止频率等于2,长度N等于21,求h(n),并画出频率响应图像,用MATLAB实现
首先,根据窗口函数法设计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)