用MATLAB程序实现音乐信号减抽样并输出减抽样信号的波形和频谱且播放
时间: 2024-03-27 22:38:44 浏览: 54
基于MATLAB的音乐信号处理
5星 · 资源好评率100%
以下是一个MATLAB程序,用于将音频信号减小采样率、输出减抽样信号的波形和频谱,并播放:
```matlab
% Load audio file
[x, fs] = audioread('audiofile.wav');
% Set new sampling rate
newFs = 8000;
% Calculate new number of samples
newNumSamples = floor(length(x) * newFs / fs);
% Downsample audio signal
xNew = resample(x, newFs, fs);
% Trim signal to original length
xNew = xNew(1:newNumSamples);
% Plot waveform
subplot(2,1,1);
plot(xNew);
title('Resampled Audio Waveform');
% Compute and plot frequency spectrum
n = length(xNew);
f = (0:n-1)*(newFs/n);
y = fft(xNew);
power = abs(y).^2/n;
subplot(2,1,2);
plot(f/1000,10*log10(power));
title('Resampled Audio Spectrum');
xlabel('Frequency (kHz)');
ylabel('Power/Frequency (dB/Hz)');
% Play resampled audio
sound(xNew, newFs);
```
在这个示例中,我们使用了MATLAB的`audioread`函数来加载音频文件。然后,我们将采样率减小到8000 Hz,并使用`resample`函数执行抽样。接下来,我们使用`subplot`函数将波形和频谱显示在同一个图像窗口中,使用`plot`函数绘制波形和频谱。最后,我们使用`sound`函数播放结果。
阅读全文