首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算DFT中每个垃圾箱的能量?

如何计算DFT中每个垃圾箱的能量?
EN

Stack Overflow用户
提问于 2019-03-30 09:38:02
回答 1查看 689关注 0票数 3

我正在测试我关于离散傅里叶变换的知识。

我现在测试的是如何用DFT计算波的中心频率。

为此,我使用以下代码创建一个正弦数据:

代码语言:javascript
复制
// create a 100 Hz wave with a sampling rate of 512 samples per second
var data : [Double] = []
for i in 0...511 {
  let t = Double(i) * 100/256
  let f = 10 * sin(2 * Double.pi * t)
  data.append(f)
}

然后我在data上做了一个离散小波变换,得到了两个向量,一个包含实部,一个包含虚部。

据我所知,每个向量的内部都会有:

  1. 数据有512个样本
  2. 因此,从0到256的项目将是正频率。
  3. 和项目从257到511,负频率
  4. 我可以丢弃负频率,保持正频率,从bin 0到255。
  5. 宾0是DC。我可以抛弃它。
  6. Bin 255将是256 the,因为它是采样率的一半。

为了看我是否正确,我检查了256个垃圾箱,并寻找最高的震级。在下面的公式中,幅度最大的是K,我可以找到信号频率:

代码语言:javascript
复制
freq = (K + 1) * fps / N

K+1,因为我的第一个索引是0,我已经从数组中丢弃了DC,其中N是样本数。

最大的问题是:我如何计算每个垃圾箱的能量?

代码语言:javascript
复制
E[i] = sqrt(realPart[i] * realPart[i] + imaginaryPart[i] * imaginaryPart[i])

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-30 12:09:33

你上面的轮廓看上去就像.计算给定垃圾箱的震级

代码语言:javascript
复制
mag = 2.0 * math.Sqrt(real*real+imag*imag) / number_of_samples

其中number_of_samples是输入fft调用的数组的长度.做fft的好处在于,你可以在这组( freq,幅值,相移)上应用逆傅里叶变换来返回你的源时域信号.这样做是一个很好的方法来验证你的过程是正确的

傅里叶变换的幻象与逆傅里叶变换--以为例

你从一个浮点数组开始,它代表像音频、股票市场指数或任何时间序列之类的东西.这是时间域表示,因为它是曲线上的一组点,时间是从左到右的X轴,上下Y轴是曲线的高度。然后将这个数组输入一个fft api调用,该调用将返回其频域表示中的相同信息.同样的信息只是在不同的表象中..。在freq域中,将有一个数组,其中元素0的频率始终为每秒0周期(DC偏移),然后当您在数组中迭代时,使用公式增加freq。

代码语言:javascript
复制
incr_freq := sample_rate / number_of_samples

因此,在fft调用生成的复数组中,每个元素都是给定频率的数据,其中每个元素只是一个复数.简单地说,这个freq域表示只是一组频率,每个频率由一个复数(A + Bi)组成,可以用来计算freq的幅值和相移。

有趣的是..。如果您将这个freq域数组发送到逆傅里叶变换中,您将获得原始数据,即时域表示。

myAudio_TD (时域)-发送到fft --> myAudio_FD ( freq域)

然后,您可以自由地进行反向操作,如

myAudio_FD ( freq域)->发送到逆fft --> myAudio_TD (时域)

注意,在这个过程中,您从一个数组myAudio_TD开始,该数组被发送到fft调用中,然后转到逆fft调用中,该调用神奇地返回给您原来的myAudio_TD。

要查看从fft调用返回的复杂数组的完整解析(包括Nyquist限制的概念),请参阅Get frequency with highest amplitude from FFT

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55430065

复制
相关文章

相似问题

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