在 Matlab 中绘制 PCM 输出(MP3 解码器)

Plot PCM output in Matlab (MP3 decoder)

我正在做一个 mp3 解码器项目,我已经构建了一个函数来解码 mp3 格式的歌曲:

function [PCM_output,frequency] = decode(mp3song)

在代码的末尾,我添加了几行来绘制 PCM 波形:

t=0:0.01:120; 
plot(t,PCM_output);
title('PCM waveform');

但是显示错误:

Vectors must be the same lengths.

如何解决错误?另外,能否将解码后的歌曲输出为PCM格式?

附加问题: 我想比较 mp3 和 PCM 输出,如下图所示: MP3 - Amplitude vs Time

PCM - Amplitude vs Time

为什么PCM有两个输出叠加在一起?是不是输出的时候左右声道的原因?

如果您尝试绘制声波,您只需要 t 向量的长度与 PCM_output 相同。因此,您需要

而不是 t=0:0.01:120
t=linspace(0,120,length(PCM_output(1,:)));