4、 设计一个FIR带阻滤波器,针对语音信号的性质选取一种适合的窗函数设计滤波器进行滤波,带阻滤波器的设计指标为fp1=1000Hz;fs1=1050 Hz;fs2=1150 Hz;fp2=1200 Hz; Rp=1dB;As=60dB。绘制出带阻滤波器的幅频特性和相频特性曲线代码
时间: 2023-10-18 11:04:18 浏览: 127
下面是一个MATLAB代码示例,可以设计一个FIR带阻滤波器,并绘制出带阻滤波器的幅频特性和相频特性曲线:
```matlab
% 滤波器参数
fs = 8000; % 采样率
f1 = 1000; % 通带截止频率1
f2 = 1200; % 通带截止频率2
f3 = 1050; % 阻带截止频率1
f4 = 1150; % 阻带截止频率2
fp = [f1, f2]; % 通带截止频率范围
fs = [f3, f4]; % 阻带截止频率范围
Rp = 1; % 通带最大衰减量
As = 60; % 阻带最小衰减量
% 计算滤波器系数
N = fir1(100, fp/(fs/2), 'stop', kaiser(101, 5)); % 使用Kaiser窗口设计滤波器
% 绘制幅频特性曲线
[H, w] = freqz(N, 1); % 计算频率响应
H_mag = abs(H); % 幅度响应
H_phase = unwrap(angle(H)); % 相位响应
f = w / (2*pi) * fs; % 频率轴转换
figure;
subplot(2, 1, 1);
plot(f, H_mag);
title('FIR带阻滤波器幅频特性曲线');
xlabel('频率 (Hz)');
ylabel('幅值');
subplot(2, 1, 2);
plot(f, H_phase);
title('FIR带阻滤波器相频特性曲线');
xlabel('频率 (Hz)');
ylabel('相位 (rad)');
```
代码中使用fir1函数设计FIR带阻滤波器,选用Kaiser窗口作为窗函数,满足了语音信号的性质。接着使用freqz函数计算滤波器的频率响应,得到幅度响应和相位响应并绘制出来。最后使用subplot函数将幅频特性曲线和相频特性曲线绘制在同一张图中。
需要注意的是,代码中的滤波器参数和截止频率都是示例值,实际使用时需要根据具体的应用场景进行调整。
阅读全文