matlab 生成音频通过低通滤波器显示滤波前后的频谱
时间: 2023-11-03 12:30:23 浏览: 90
基于MATLAB实现低通滤波算法
5星 · 资源好评率100%
好的,可以参考以下代码实现:
```matlab
% 生成音频信号
fs = 44100; % 采样率
t = 0:1/fs:5; % 时间轴
f1 = 100; % 信号频率
f2 = 2000;
y = 0.5*sin(2*pi*f1*t) + 0.5*sin(2*pi*f2*t); % 生成信号
% 显示原始信号的频谱
Y = fft(y); % 傅里叶变换
f = linspace(0, fs, length(Y)); % 频率轴
figure;
subplot(2,1,1);
plot(f, abs(Y));
title('原始信号频谱');
% 设计低通滤波器
fc = 800; % 截止频率
[b, a] = butter(4, fc/(fs/2)); % 4阶巴特沃斯滤波器
y_filtered = filter(b, a, y); % 滤波
% 显示滤波后信号的频谱
Y_filtered = fft(y_filtered);
subplot(2,1,2);
plot(f, abs(Y_filtered));
title('滤波后信号频谱');
```
注意,这里使用了 4 阶的巴特沃斯滤波器,截止频率为 800Hz,可以根据实际需求进行修改。运行代码后,会显示出原始信号和滤波后信号的频谱图像。
阅读全文