通过 matlab 绘制加入嗓声图像的时域及频域图
由于题目没有具体说明要加入的嗓声是什么,我这里以一个简单的人声音频文件为例进行演示。
- 读取音频文件并绘制时域图
使用 audioread 函数读取音频文件,并使用 plot 函数绘制时域图。
[x, Fs] = audioread('sample.wav');
t = (0:length(x)-1)/Fs;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time Domain Signal with Voice');
- 绘制加入嗓声后的时域图
为了在时域图中加入嗓声,可以将原始音频信号与一个人声音频信号相加。这里我使用了一个高音女声的音频文件。
voice = audioread('voice.wav');
y = x + 0.5 * voice(1:length(x));
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time Domain Signal with Voice');
在绘制时域图时,我将人声音频信号的振幅调整为原始音频信号的一半,以免人声音频信号过于突出。
- 绘制加入嗓声后的频域图
使用 fft 函数将加入嗓声后的音频信号转换为频域信号,并使用 plot 函数绘制频域图。
Y = fft(y);
f = (0:length(Y)-1)*Fs/length(Y);
plot(f, abs(Y));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency Domain Signal with Voice');
这里需要注意的是,频域信号是对称的,因此只需要绘制前一半即可。另外,使用 abs 函数将频域信号的虚部取绝对值后再绘制
原文地址: https://www.cveoy.top/t/topic/fa9n 著作权归作者所有。请勿转载和采集!