MATLAB中FIR数字滤波器代码并绘制损耗函数
时间: 2024-06-09 18:06:12 浏览: 198
以下是一个MATLAB中设计FIR数字滤波器并绘制其损耗函数的示例代码:
```matlab
% 设计FIR数字滤波器
fs = 1000; % 采样率
fpass = 100; % 通带截止频率
fstop = 150; % 阻带截止频率
apass = 1; % 通带最大衰减
astop = 60; % 阻带最小衰减
devpass = (10^(0.05*apass)-1)/(10^(0.05*apass)+1); % 通带波纹
devstop = 10^(-0.05*astop); % 阻带衰减
[n,fo,ao,w] = firpmord([fpass fstop]/(fs/2),[1 0],[devpass devstop]); % 获取设计参数
b = firpm(n,fo,ao,w); % 求解滤波器系数
% 绘制损耗函数
freqz(b,1,1024,fs);
```
在上面的代码中,我们首先指定了采样率和通带/阻带截止频率以及最大/最小衰减等设计参数。然后使用`firpmord`函数获取滤波器的阶数和通带/阻带频率响应。最后使用`firpm`函数求解滤波器系数,并使用`freqz`函数绘制滤波器的损耗函数。
运行上述代码,你将会得到一个滤波器的损耗函数图像,类似于以下示例图:
![FIR数字滤波器损耗函数图像示例](https://img-blog.csdnimg.cn/20211102094328799.png)
阅读全文