Matlab对于已设计好的高通fir滤波器进行仿真验证
时间: 2023-08-18 17:15:09 浏览: 93
利用MATLAB仿真软件系统结合频率取样法设计一个数字高通FIR滤波器
4星 · 用户满意度95%
在Matlab中,可以使用`fir1`函数设计高通FIR滤波器,然后利用`filter`函数对输入信号进行滤波,最后观察输出信号的频谱和时域波形来验证滤波器的性能。
以下是一个简单的示例代码:
```matlab
% 设计高通FIR滤波器
Fs = 1000; % 采样率
Fpass = 50; % 通带截止频率
Fstop = 30; % 阻带截止频率
Rp = 1; % 通带最大衰减
Rs = 60; % 阻带最小衰减
Wn = 2*Fpass/Fs; % 归一化通带截止频率
b = fir1(100, Wn, 'high', kaiser(101, 4));
% 生成测试信号
t = 0:1/Fs:1-1/Fs; % 时间序列
x = sin(2*pi*100*t) + sin(2*pi*200*t); % 100Hz和200Hz的正弦信号
% 对测试信号进行滤波
y = filter(b, 1, x);
% 绘制频谱和时域波形
figure;
subplot(211);
plot(t, x);
hold on;
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
legend('Original signal', 'Filtered signal');
subplot(212);
freqz(b, 1);
```
在上述代码中,我们首先使用`fir1`函数设计了一个100阶、通带截止频率为50Hz、阻带截止频率为30Hz的高通FIR滤波器,并使用`kaiser`窗口对其进行加权。然后,我们生成了一个包含100Hz和200Hz正弦信号的测试信号,并使用`filter`函数对其进行滤波,最后绘制了滤波前后的时域波形和滤波器的频谱。
你可以根据自己的需要修改代码中的参数,进行不同的验证实验。
阅读全文