matlab 音频输入显示频谱,然后通过低通滤波器,显示滤波后的频谱
时间: 2024-03-23 21:39:26 浏览: 18
好的,针对你的问题,我可以给出以下 Matlab 代码实现:
```matlab
% 输入音频文件
[y, Fs] = audioread('audio.wav');
% 显示音频频谱
spectrogram(y, 256, [], [], Fs, 'yaxis');
% 设计低通滤波器
fc = 2000; % 截止频率
fs = Fs; % 采样率
[b, a] = butter(6, fc/(fs/2), 'low');
% 应用低通滤波器
y_filtered = filter(b, a, y);
% 显示滤波后音频的频谱
figure;
spectrogram(y_filtered, 256, [], [], Fs, 'yaxis');
```
这段代码首先读入音频文件,然后使用 `spectrogram` 函数显示其频谱。接着,定义了一个低通滤波器,并使用 `filter` 函数将其应用到输入音频上,得到滤波后的音频信号。最后,再次使用 `spectrogram` 函数显示滤波后音频的频谱。
相关问题
matlab 生成音频通过低通滤波器显示滤波前后的频谱
好的,可以参考以下代码实现:
```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,可以根据实际需求进行修改。运行代码后,会显示出原始信号和滤波后信号的频谱图像。
matlab 音频输入画出频谱,然后通过低通滤波器,画出滤波后的频谱
好的,下面是相应的 Matlab 代码实现:
```matlab
% 读入音频文件,获取采样率 Fs 和音频数据 y
[y, Fs] = audioread('audio.wav');
% 计算音频信号的长度和时间向量
len = length(y);
t = (0:len-1) / Fs;
% 计算音频信号的频谱
Y = fft(y);
f = Fs*(0:(len/2))/len;
P = abs(Y/len).^2;
P1 = P(1:len/2+1);
% 画出音频信号的频谱
figure;
plot(f,10*log10(P1));
title('原始音频的频谱');
xlabel('频率 (Hz)');
ylabel('功率谱密度 (dB/Hz)');
% 设计低通滤波器
Fc = 2000; % 截止频率
Wn = Fc/(Fs/2);
[b, a] = butter(6, Wn, 'low');
% 应用低通滤波器并得到滤波后的音频信号
y_filtered = filter(b, a, y);
% 计算滤波后音频信号的频谱
Y_filtered = fft(y_filtered);
P_filtered = abs(Y_filtered/len).^2;
P1_filtered = P_filtered(1:len/2+1);
% 画出滤波后音频信号的频谱
figure;
plot(f,10*log10(P1_filtered));
title('滤波后音频的频谱');
xlabel('频率 (Hz)');
ylabel('功率谱密度 (dB/Hz)');
```
这段代码首先读入音频文件,然后使用 `fft` 函数计算其频谱,并使用 `plot` 函数画出原始音频的频谱。接着,定义了一个低通滤波器,并使用 `filter` 函数将其应用到输入音频上,得到滤波后的音频信号。最后,再次使用 `fft` 函数计算滤波后音频的频谱,并使用 `plot` 函数画出滤波后音频的频谱。
相关推荐
![vi](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)