用Matlab写一段FIR滤波器的实现代码
时间: 2024-03-20 18:44:04 浏览: 90
FIR滤波器(内含完整的MATLAB代码)
好的,下面是一个简单的FIR滤波器实现代码:
```matlab
% FIR滤波器设计
order = 50; % 滤波器阶数
fc = 0.2; % 截止频率
b = fir1(order, fc);
% 生成测试信号
fs = 1000; % 采样频率
t = 0:1/fs:1;
x = sin(2*pi*50*t) + sin(2*pi*150*t) + sin(2*pi*300*t);
% FIR滤波器实现
y = filter(b, 1, x);
% 绘制频谱图
N = length(x);
xf = fft(x, N);
yf = fft(y, N);
f = (0:N-1)/N*fs;
figure;
plot(f, abs(xf), f, abs(yf));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
legend('Input signal', 'Output signal');
```
这段代码中,我们首先使用fir1函数设计一个50阶的低通滤波器,截止频率为0.2。然后,我们生成一个包含三个正弦波的测试信号,并使用filter函数将其输入到滤波器中得到输出信号y。最后,我们绘制了输入信号和输出信号的频谱图,方便观察滤波效果。
阅读全文