Mathematica绘制波形图的两种方法的区别

2025-10-19 00:59:08

1、先把音频转化为数据。

b = AudioData[a]

Mathematica绘制波形图的两种方法的区别

2、再用ListPlot画波形图:

ListPlot[b]

Mathematica绘制波形图的两种方法的区别

3、但是这个简单的代码,却极度耗电耗时:

ListPlot[AudioData[a], PlotStyle -> Blue] // AbsoluteTiming

用时长达十几秒,而且内存占到90%。

Mathematica绘制波形图的两种方法的区别

1、直接用AudioPlot把音频转化为波形图:

AudioPlot[a]

Mathematica绘制波形图的两种方法的区别

Mathematica绘制波形图的两种方法的区别

2、这个非常节省时间,只需0.5秒左右。

Mathematica绘制波形图的两种方法的区别

1、上面的音频是双声道音频,所以AudioPlot能够画出两个波形图。

但是ListPlot却把两组数据画到一起了。

因此,这里需要单独画某一个声道的波形图:

ListPlot[AudioData[a][[1]], PlotStyle -> Blue, 

  AspectRatio -> 2/3] // AbsoluteTiming

用时5秒左右。

Mathematica绘制波形图的两种方法的区别

2、如果要用AudioPlot画波形图,需要把单声道的数据转化为音频,然后画图:

AudioPlot[AudioData[a][[1]] // Audio, PlotStyle -> Blue, 

  AspectRatio -> 2/3] // AbsoluteTiming

用时0.3秒左右。

Mathematica绘制波形图的两种方法的区别

3、或者还可以这样:

AudioPlot[AudioChannelSeparate[a][[1]], PlotStyle -> Blue, 

  AspectRatio -> 2/3] // AbsoluteTiming

Mathematica绘制波形图的两种方法的区别

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢