首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时谱图分析

实时谱图分析
EN

Stack Overflow用户
提问于 2015-12-09 10:20:19
回答 1查看 801关注 0票数 0

我想做一个实时的声音分析。目前,我能够获得实时的频谱流,但当我试图绘制光谱图时,它引入了大约4秒的延迟,即使我试图减少计算。

我想知道是否有一种方法可以更快地绘制光谱图(例如绘制数据、更新轴而不是更新图)。

目前,我正在使用一个带有1024个示例的输入缓冲区:

代码语言:javascript
复制
Spectrogram(audio, 256, round(256/2), 256, 1800)

我试图缩小窗口大小和NFFT,但结果总是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-09 20:30:16

尝试为每次更新的光谱图设置图像CData (参见下面的示例代码)。只要你能足够快地计算你的光谱图,这就不会造成长时间的延迟。通过调用没有输出的平面图生成一个新的图像,实际上可能会导致延迟。

您可以使用

代码语言:javascript
复制
tic
S=Spectrogram(audio, 256, round(256/2), 256, 1800);
toc

要看每次计算需要多长时间,但我怀疑这将在足够的时间内计算,而瓶颈是生成整个图形,当您调用谱图时,没有输出。

代码语言:javascript
复制
figure
audio=randn(1024,1);
[S,F,T]=spectrogram(audio,256,round(256/2),256,1800);
im=image(F,T,abs(S).^2);

for i=1:100
    audio=randn(1024,1);
    S=spectrogram(audio,256,round(256/2),256,1800);
    set(im,'CData',abs(S).^2);
    pause(1/30);
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34176264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档