211130-Python谱图(Spectogram)分析Demo

211130-Python谱图(Spectogram)分析Demo,第1张

211130-Python谱图(Spectogram)分析Demo STFT 算法
  • 对信号分段进行FFT处理, 每次处理的结果都是谱图中的一列;
  • 每段芯好的长度越短,时间轴上的精度越高,频率轴上的精度越低
  • 时间轴和频率轴的分辨率是一堆不可调和的矛盾
  • 根据傅立叶变换的不确定原理,我们不能同时获得频率和时间的高分辨率
specgram() 函数
  • 第一个参数:信号的组数
  • 第二个参数:FFT的长度
  • 第三个参数:信号的采样频率
  • overlap: 连续两块数据之间的重叠部分的长度, 该参数越接近FFT的长度,FFT运算的次数越多,时间轴上的精度越大
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as signal


sampling_rate = 8000.0
fft_size = 1024
step = fft_size/16
time = 2
t = np.arange(0, time, 1/sampling_rate)
sweep = signal.chirp(t, f0=100, t1=time, f1=0.8*sampling_rate/2, method='logarithmic')

plt.specgram(sweep, fft_size, sampling_rate, noverlap=1024-step)
plt.xlabel('Time (s)')
plt.ylabel('Freq. (Hz)')


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5650844.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存