python统计每个整数出现频率,统计字符频次python

  python统计每个整数出现频率,统计字符频次python

  我试着用Python来得到。wav文件。目前,我有一个代码,可以绘制振幅与时间和频率与功率(dB)的关系。我尝试用频率和功率图的代码来代替绘制频率和时间图,但没有成功。我知道频率数据是对称的,这意味着我与时间数据相比有1/2的数据点。我可以通过保存重复的频率数据来绘制它们,但我怀疑这是否能真正准确地表示频率和时间的关系。在

  我认为这种方法需要对数据段进行短时傅里叶变换,然后得出结果。也就是说,我发现了一些类似的代码,但我很难理解这些代码发生了什么,并做出任何有意义的调整来帮助我实现目标。在

  总之,我希望有人能有一些样本代码或方法来创建频率对时间的图表。Python中的wav文件。非常感谢!请让我知道,如果我能张贴代码,我一直在使用它至今。At #导入所需的函数

  从scipy.io.wavfile导入读取

  从scipy.fftpack导入fft,fftfreq,fftshift

  从scipy.signal导入get_window

  从数学导入单元

  从pylab导入图,imshow,clf,gray,xlabel,ylabel

  #读入一个wav文件

  #返回采样速率(每秒采样数)和数据

  rate,data=read(waveTest.wav )

  数据=数据[:0]

  #定义样本间距和窗口大小。

  dT=1.0/速率

  T_window=50e-3

  N_window=int(T_window *速率)

  N_data=len(data)

  # 1.获取窗口配置文件

  window=get_window(hamming ,N_window)

  # 2.建立FFT

  结果=[]

  开始=0

  while (start N_data - N_window):

  end=开始N_window

  result . append(FFT shift(FFT(window * data[start:end]))

  开始=结束

  result . append(FFT shift(FFT(window * data[-N _ window:]))

  结果=数组(结果,结果[0])。数据类型)

  #显示结果

  freq scale=FFT shift(fftfreq(N _ window,dT))[150:-150]/1e3

  图(1)

  clf()

  s.imshow(abs(result[:150:-150]),extent=(5,-5,(N_data*dT-T_window/2.0),T_window/2.0)) #19.04,-19.04,6.41,0.025

  s.xlabel(频率(kHz))

  s.ylabel(时间(秒。))

  显示()

  按照要求,以上是我正在努力的代码。其实我觉得挺好用的,但是我有几个疑问。在

  1)什么是abs(结果[:150:-150])?我意识到他是在取傅里叶变换的绝对值(为了去掉复杂成分?)。这是频率吗?在

  2)如何交换数据,使X轴上的时间与Y轴上的频率相同?在

  3)图像如何知道哪个频率对应哪个时间?如果我理解正确的话,扩展数据块需要最后两个参数,即文件的长度和文件应该执行的步骤?在

  4)是否可以在图中而不是图像上绘制数据?在

  希望这些问题不要太多,也不要太具体。再次感谢您的帮助!在

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: