MATLAB 一種播放音頻并實(shí)時(shí)顯示波形和頻譜的方法(付源碼)
2023-03-14 17:16 作者:Sword_0610 | 我要投稿

原理:
利用audioplayer的TimerFcn(暫且稱之為“周期回調(diào)”)實(shí)現(xiàn)。
本例中,將繪制波形和繪制頻譜(當(dāng)然包括了信號(hào)索引和fft計(jì)算)的步驟寫入函數(shù)fleshPlot中,并將fleshPlot作為周期回調(diào)。
通過設(shè)置窗長(zhǎng)計(jì)算出周期回調(diào)時(shí)間(本例中窗長(zhǎng)fs/20,0.05秒,相當(dāng)于20fps),audioplayer在播放時(shí)將周期性執(zhí)行周期回調(diào),達(dá)到播放時(shí)同步顯示波形和頻譜的功能。

效果:
如圖

可暫停繼續(xù)(命令行pause(sigPlayer);resume(sigPlayer))

缺點(diǎn):
以腳本形式運(yùn)行時(shí),CPU、內(nèi)存占用較高;
暫無(wú)法定義到某點(diǎn)開始播放。

源代碼(2021b):