用fir1函数的hamning设计一个采样频率是20khz,通带截止频率为4khz,过度带2khz,通带纹波小于3,阻带衰减大于40db的低通滤波器
时间: 2024-03-08 21:48:17 浏览: 156
可以使用 `fir1` 函数来设计一个基于汉明窗的低通滤波器。该函数的语法如下:
```matlab
b = fir1(N, Wn, 'low', win)
```
其中,N 是滤波器的阶数,Wn 是归一化的截止频率,'low' 表示设计低通滤波器,win 表示窗口函数。函数返回一个长度为 N+1 的行向量 b,即 FIR 滤波器的系数。
根据题目的要求,我们可以设置如下参数:
```matlab
fs = 20000; % 采样频率
fpass = 4000; % 通带截止频率
fstop = 6000; % 阻带截止频率
dpass = 3; % 通带纹波
dstop = 40; % 阻带衰减
```
根据这些参数,我们可以计算出通带和阻带的边界频率:
```matlab
fpass_norm = fpass / (fs/2); % 归一化通带截止频率
fstop_norm = fstop / (fs/2); % 归一化阻带截止频率
```
然后,我们可以使用 `fir1` 函数来设计滤波器:
```matlab
N = 100; % 滤波器阶数
Wn = fpass_norm; % 归一化通带截止频率
Win = hamming(N+1); % 窗口函数为汉明窗
b = fir1(N, Wn, 'low', Win);
```
这样,我们就得到了一个基于汉明窗的低通滤波器的系数 b。可以使用 `freqz` 函数来绘制滤波器的频率响应:
```matlab
freqz(b, 1, 1024, fs);
```
这样就可以得到滤波器的频率响应了。需要注意的是,由于 hamming 窗口在截止频率处的响应不是非常平坦,所以可能会产生一定的纹波效应。如果需要更好的滤波器性能,可以考虑使用别的窗口函数。
阅读全文