用matlab代码实现滤波后语音信号的时域和频域波形
时间: 2024-04-07 10:30:12 浏览: 121
语音信号处理 语音信号处理
当然可以!下面是一个使用MATLAB实现滤波后语音信号的时域和频域波形的示例代码:
```matlab
% 读取语音信号
[y, fs] = audioread('input.wav');
% 设计滤波器
order = 8; % 滤波器阶数
fc = 1000; % 截止频率
[b, a] = butter(order, fc/(fs/2));
% 应用滤波器
filtered_signal = filter(b, a, y);
% 绘制原始信号时域波形
t = (0:length(y)-1) / fs;
subplot(2, 1, 1);
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('Original Signal');
% 绘制滤波后信号时域波形
subplot(2, 1, 2);
plot(t, filtered_signal);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Signal');
% 计算原始信号频谱
N = length(y);
Y = abs(fft(y));
f = (0:N-1) * (fs/N);
subplot(2, 1, 1);
plot(f, Y);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Original Signal Spectrum');
% 计算滤波后信号频谱
filtered_Y = abs(fft(filtered_signal));
subplot(2, 1, 2);
plot(f, filtered_Y);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Filtered Signal Spectrum');
```
请将代码中的'input.wav'替换为你要处理的语音文件名,并确保该文件与MATLAB脚本在同一目录下。这段代码将会绘制出原始信号和滤波后信号的时域波形图和频域波形图。
阅读全文