函数或变量 'fir1win' 无法识别。
时间: 2023-09-20 17:12:12 浏览: 208
Windows.zip_FIR1_windows 窗函数
抱歉,我在之前的回答中有误,`fir1win` 是一个Octave中的函数,而在MATLAB中并不存在该函数。在MATLAB中,可以使用 `hamming`、`hanning`、`blackman` 和 `kaiser` 等函数生成窗函数。
下面是修改后的MATLAB代码,其中使用 `hamming` 函数作为窗函数:
```matlab
%参数设置
fs = 2e6; %采样频率
N = 133; %采样点数
fc = [15e3, 45e3, 75e3, 105e3, 135e3]; %中心频率
fp = [14.5e3, 44.5e3, 74.5e3, 104.5e3, 134.5e3]; %通带截止频率
fs1 = [15.5e3, 45.5e3, 75.5e3, 105.5e3, 135.5e3]; %阻带截止频率
A = 60; %通带衰减
dev = [(10^(0.1*A)-1)/(10^(0.1*A)+1), 1/(10^(0.1*A)+1)]; %通带和阻带最大衰减量
%设计滤波器
h1 = fir1(N, [fp(1)/fs1(1), fs(1)/fs1(1)], 'bandpass', hamming(N+1)); %滤波器A
h2 = fir1(N, [fp(2)/fs1(2), fs(2)/fs1(2)], 'bandpass', hamming(N+1)); %滤波器B
h3 = fir1(N, [fp(3)/fs1(3), fs(3)/fs1(3)], 'bandpass', hamming(N+1)); %滤波器C
h4 = fir1(N, [fp(4)/fs1(4), fs(4)/fs1(4)], 'bandpass', hamming(N+1)); %滤波器D
h5 = fir1(N, [fp(5)/fs1(5), fs(5)/fs1(5)], 'bandpass', hamming(N+1)); %滤波器E
%绘制滤波器幅频特性曲线
freqz(h1);
freqz(h2);
freqz(h3);
freqz(h4);
freqz(h5);
```
其他部分不变。希望这次回答能够帮到您。
阅读全文