【问题标题】:rfft or irfft increasing wav file volume in pythonrfft 或 irfft 在 python 中增加 wav 文件的体积
【发布时间】:2016-03-11 02:29:46
【问题描述】:

我刚刚开始编写一个程序来在 python 中处理一些音频。在编写任何滤波函数之前,我想做一个测试,在输入信号经过 rfft 和 irfft 后将输入信号与输出信号进行比较。出于某种原因,与输入文件相比,输出文件的增益量惊人(50db!),我不知道为什么会这样。 代码如下:

from scipy.io.wavfile import read, write
from scipy.fftpack import rfft, irfft
import numpy as np

rate, input = read('5and10ksm.wav')
transformed = rfft(input) 
output = irfft(transformed)
write('smaller.wav', rate, output)

谢谢!

【问题讨论】:

  • 您没有考虑 FFT 中的比例因子 - 您需要除以样本数。

标签: python audio fft wav ifft


【解决方案1】:

scipy.fftpack.irfft 返回一个浮点数组。在将其写入为 wav 文件之前将其转换为输入文件的 dtype:output.astype(input.dtype)

【讨论】:

  • 这非常有效。测试时我使用的是类型,而不是 dtype,所以我什至没有注意到它正在返回浮点数。非常感谢!
  • 乐于助人。 (顺便说一句,你可以接受答案。;))
猜你喜欢
  • 2015-10-01
  • 2014-05-10
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多