开始

  1. 设置抽取倍数 M=5

  2. 对原始信号进行抽取得到 x_M:

    x_M=x(1:M:end);
    
  3. 对抽取信号进行傅里叶变换得到频域信号 X_M:

    X_M=fft(x_M);
    
  4. 计算频率轴 f_M:

    f_M=fs/M*(-round(length(x_M))/2:length(x_M)-round(length(x_M))/2-1)'/length(x_M);
    
  5. 画图:

    • 使用 subplot(121) 绘制原始信号频谱
    • 使用 subplot(122) 绘制抽取信号频谱
    figure  
    subplot(121);plot(f,fftshift(abs(X)));  
    title('原始语音信号频谱'); 
    xlabel('频率/Hz');ylabel('幅度');grid on;axis tight; 
    subplot(122);plot(f_M,fftshift(abs(X_M)));
    title('抽取语音信号频谱');
    xlabel('频率/Hz');ylabel('幅度');grid on;axis tight; 
    
  6. 播放抽取信号:

    sound(x_M,fs/M);
    
  7. 导出抽取信号(单轨):

    audiowrite('yinpin_downsampling.mp4',x_M,fs);
    

结束

MATLAB代码音频抽取流程图详解 - 频谱分析与声音播放

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

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