如何解决将正弦波形中的时间和频率转储到csv中
我只是绘制正弦波并进行频谱分析(类似于大胆的分析)。
要绘制,我有一个像这样的函数:
pxx,f,t,ax = plt.specgram(
audio_data,NFFT=size,Fs=rate,noverlap=0,cmap=plt.cm.binary,sides='onesided',window=signal.hann(size),mode='magnitude')
plt.plot(f,20 * np.log10(np.mean(pxx,axis=1)),'b')
此函数按预期绘制。但是我需要以以下格式将正弦波的频率和时间转储到文件中。
Time(secs) Freq
0.5 100
1 200
是否有一种方法可以使用规范中返回的值来完成此操作。
请注意,音频分析是一个非常新的知识,只是在学习我的行业。任何帮助将不胜感激。
解决方法
Matplotlib specgram
辅助程序会自动分割信号并对其执行FFT,因此最终得到图像。这对于输出文本数据没有太大帮助。
此外,在任何给定的时间点,信号中都会存在多个频率(是的,由于FFT不精确,甚至是单声道正弦波),因此您不能在任何给定的时间使用单个“频率”值。但是,您可以找出一个时间窗口的峰值频率。
如果您想适应the source for specgram
here,可以找到look at SciPy's FFT functions,但最好使用this tutorial(或https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/retrieving-data-using-a-datareader),以便从一开始就获取数字数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。