MATLAB实验——音频处理

8

实验内容

选取1首歌曲《勾指起誓(伴奏)》,导入MATLAB并进行处理,处理方式包括:剪辑、改变采样位宽、波形压缩、降采样、加噪,并导出为新的音频文件。

实验过程

  1. 导入并读取歌曲 %读取音频文件,显示频谱
    file_name = 'gzqs.mp3';
    [wave, fs] = audioread(file_name);
    figure(1);
    plot(wave);
  1. 对原歌曲进行剪辑,覆盖原音频 %一、对原歌曲进行剪辑
    point1 = 22.3;
    point2 = 89.0;
    PlayTime = point2 - point1;
    wave = wave(point1fs + [1:PlayTimefs],1);
  2. 调整量化位宽,由16bit调整为4bit %二、调整量化位宽,由16bit调整为4bit
    TruncBits = 4;
    TruncWave = round(wave*2^TruncBits)/2^TruncBits;
    figure(2);
    plot(TruncWave);
    %sound(TruncBits,fs);
    wave = TruncWave;
  1. 对音频进行波形压缩 %三、对音频信号进行波形压缩
    figure(3);
    subplot(211);
    plot([1:length(wave)]/fs,wave);
    %sound(wave,fs);
    subplot(212);
    plot([1:length(wave)]/(1.2fs),wave); %sound(wave,1.2fs);
  1. 对音频信号进行降采样,降为1/4 %四、对音频信号进行降采样
    figure(4);
    subplot(211);
    plot([1:length(wave)]/fs,wave);
    %sound(wave,fs);
    subplot(212);
    plot([1:4:length(wave)]/fs,wave(1:4:end)); %降为1/4
    %sound(wave(1:4:end),0.25*fs);
  1. 在音频信号中加入高斯噪声 %五、在音频信号中加入噪声
    noise = 0.05*randn(size(wave));
    %sound(noise,fs);
    figure(1);
    hold on;
    plot(noise,'color','r');
    hold off;
    %sound(noise+wave,fs);
    wave = wave + noise;
  1. 导出音频文件 %导出音频文件
    audiowrite('gzqs2.wav',wave,0.25*fs);

实验结果