本文以一个简单的人声音频文件为例,演示如何使用 MATLAB 绘制加入噪声的音频信号的时域及频域图。

  1. 读取音频文件并绘制时域图

使用 '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');
  1. 绘制加入噪声后的时域图

为了在时域图中加入噪声,可以将原始音频信号与一个人声音频信号相加。这里我使用了一个高音女声的音频文件。

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');

在绘制时域图时,我将人声音频信号的振幅调整为原始音频信号的一半,以免人声音频信号过于突出。

  1. 绘制加入噪声后的频域图

使用 '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' 函数将频域信号的虚部取绝对值后再绘制。

MATLAB 音频信号噪声添加与时频域可视化

原文地址: https://www.cveoy.top/t/topic/n3SE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录