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

时间:2016-01-29 03:51:12

标签: matlab mp3 pcm decoder

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

function [PCM_output,frequency] = decode(mp3song)

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

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

但它显示错误:

  

矢量必须长度相同。

如何解决错误?此外,是否可以以PCM格式输出解码的歌曲?

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

PCM - Amplitude vs Time

为什么PCM有两个输出叠加在一起?是因为输出端的左右声道吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试绘制声波,则只需要将t向量与PCM_output的长度相同。所以,而不是t=0:0.01:120,你需要

t=linspace(0,120,length(PCM_output(1,:)));