是否有使用频率对数除法的 FFT?

发布于 2024-07-27 13:25:05 字数 476 浏览 4 评论 0原文

维基百科的 小波文章包含以下文本:

离散小波变换的计算复杂度也较低,与 快速傅里叶变换。 这种计算优势并不是变换所固有的,而是反映了对数频率划分的选择,与 FFT 的等间隔频率划分不同。

这是否意味着还有一种类似 FFT 的算法,使用频率的对数除法而不是线性? 也是O(N)吗? 对于许多应用程序来说,这显然是更可取的。

Wikipedia's Wavelet article contains this text:

The discrete wavelet transform is also less computationally complex, taking O(N) time as compared to O(N log N) for the fast Fourier transform. This computational advantage is not inherent to the transform, but reflects the choice of a logarithmic division of frequency, in contrast to the equally spaced frequency divisions of the FFT.

Does this imply that there's also an FFT-like algorithm that uses a logarithmic division of frequency instead of linear? Is it also O(N)? This would obviously be preferable for a lot of applications.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

春风十里 2024-08-03 13:25:05

是的。 是的。 不,

它被称为对数傅立叶变换。 它有 O(n) 时间。 然而,它对于随着域/横坐标的增加而缓慢衰减的函数很有用。

回顾一下维基百科的文章:

主要区别在于小波
在时间和
频率,而标准傅里叶
变换仅本地化于
频率。

因此,如果您只能在时间(或空间,选择您对横坐标的解释)上进行本地化,那么小波(或离散余弦变换)是一种合理的方法。 但如果你需要继续下去,那么你就需要傅里叶变换。

了解有关 LFT 的更多信息,请访问 http://homepages.dias.ie/~ajones/publications /28.pdf

这是摘要:

我们提出了对数采样函数的傅立叶变换的精确解析表达式。 对于随着横坐标值的增加而缓慢衰减的函数或测量响应,该过程在计算上比快速傅立叶变换 (FFT) 更有效。 我们用电磁地球物理学的一个例子来说明所提出的方法,其中缩放通常需要应用我们的对数傅里叶变换(LFT)。 对于所选示例,我们能够在缩短 1.0e2 倍的时间内获得与 FFT 一致的结果,误差范围在 0.5% 以内。 我们的 LFT 在地球物理学中的潜在应用包括将宽带电磁频率响应转换为瞬态响应、冰川加载和卸载、
含水层补给问题、地震学中的正则模态和地球潮研究以及脉冲冲击波建模。

Yes. Yes. No.

It is called the Logarithmic Fourier Transform. It has O(n) time. However it is useful for functions which decay slowly with increasing domain/abscissa.

Referring back the wikipedia article:

The main difference is that wavelets
are localized in both time and
frequency whereas the standard Fourier
transform is only localized in
frequency.

So if you can be localized only in time (or space, pick your interpretation of the abscissa) then Wavelets (or discrete cosine transform) are a reasonable approach. But if you need to go on and on and on, then you need the fourier transform.

Read more about LFT at http://homepages.dias.ie/~ajones/publications/28.pdf

Here is the abstract:

We present an exact and analytical expression for the Fourier transform of a function that has been sampled logarithmically. The procedure is significantly more efficient computationally than the fast Fourier transformation (FFT) for transforming functions or measured responses which decay slowly with increasing abscissa value. We illustrate the proposed method with an example from electromagnetic geophysics, where the scaling is often such that our logarithmic Fourier transform (LFT) should be applied. For the example chosen, we are able to obtain results that agree with those from an FFT to within 0.5 per cent in a time that is a factor of 1.0e2 shorter. Potential applications of our LFT in geophysics include conversion of wide-band electromagnetic frequency responses to transient responses, glacial loading and unloading,
aquifer recharge problems, normal mode and earth tide studies in seismology, and impulsive shock wave modelling.

快乐很简单 2024-08-03 13:25:05

编辑:读完这篇文章后,我认为这个算法对于这个问题并不是真正有用,无论如何我都会为其他读者提供描述。

还有菲隆算法是一种基于菲隆求积的方法,可以在Numerical Recipes这篇[博士论文][1]中找到。
时间尺度是对数间隔的,结果频率尺度也是如此。

该算法用于在观察到的时间间隔内衰减到 0 的数据/函数(这可能不是你的情况),一个典型的简单例子是指数衰减。

如果您的数据由点 (x_0,y_0),(x_1,y_1)...(x_i,y_i) 表示,并且您想要计算频谱 A(f),其中 f 是频率,可以说 f_min=1/x_max至 f_max=1/x_min
对数间隔。
然后计算每个频率 f 的实部:

A(f) = i=0...i-1 的总和 { (y_i+1 - y_i)/(x_i+1 - x_i) * [ cos(2* pi*f * t_i+1) - cos(2*pi*f*t_i) ]/((2*pi*f)^2) }

虚部为:

A(f) = y_0/(2*pi* f) + i=0...i-1 的总和 { (y_i+1 - y_i)/(x_i+1 - x_i) * [ sin(2*pi*f * t_i+1) - sin(2*pi *f*t_i) ]/((2*pi*f)^2) }

[1] Blochowicz, Thomas:纯和二元分子玻璃成型体中的宽带介电光谱。拜罗伊特大学,2003 年,第3.2.3章

EDIT: After reading up on this I think this algorithm is not really useful for this question, I will give a description anyway for other readers.

There is also the Filon's algorithm a method based on Filon's qudrature which can be found in Numerical Recipes this [PhD thesis][1].
The timescale is log spaced as is the resulting frequeny scale.

This algorithm is used for data/functions which decayed to 0 in the observed time interval (which is probably not your case), a typical simple example would be an exponential decay.

If your data is noted by points (x_0,y_0),(x_1,y_1)...(x_i,y_i) and you want to calculate the spectrum A(f) where f is the frequency from lets say f_min=1/x_max to f_max=1/x_min
log spaced.
The real part for each frequency f is then calculated by:

A(f) = sum from i=0...i-1 { (y_i+1 - y_i)/(x_i+1 - x_i) * [ cos(2*pi*f * t_i+1) - cos(2*pi*f*t_i) ]/((2*pi*f)^2) }

The imaginary part is:

A(f) = y_0/(2*pi*f) + sum from i=0...i-1 { (y_i+1 - y_i)/(x_i+1 - x_i) * [ sin(2*pi*f * t_i+1) - sin(2*pi*f*t_i) ]/((2*pi*f)^2) }

[1] Blochowicz, Thomas: Broadband Dielectric Spectroscopy in Neat and Binary Molecular Glass Formers. University of Bayreuth, 2003, Chapter 3.2.3

风和你 2024-08-03 13:25:05

为了做你想做的事,你需要测量不同的时间窗口,这意味着较低的频率更新最少(与 2 的幂成反比)。

在这里查看 FPPO:
https://www.rationalacoustics.com/files/FFT_Fundamentals.pdf

这意味着更高频率会更频繁地更新,但你总是平均(移动平均线很好),而且还可以让它移动得更快。 当然,如果计划使用逆 FFT,您就不需要这些。 此外,为了在较低频率下获得更好的精度(更小的带宽),意味着这些需要更慢地更新,例如 16k Windows (1/3 m/s)。

是的,低频信号自然传播得很慢,因此当然需要很多时间来检测它们。 这不是数学可以解决的问题。 这是一种自然的交换,你无法获得高精度、较低的频率和快速的响应。

我认为我提供的链接将澄清您的一些选择......不幸的是,在您提出问题 7 年后。

To do what you want, you need to measure different time Windows, which means lower frequencies get update least often (inversely proportional to powers of 2).

Check FPPO here:
https://www.rationalacoustics.com/files/FFT_Fundamentals.pdf

This means that higher frequencies will update more often, but you always average (moving average is good), but can also let it move faster. Of course, if plan on using the inverse FFT, you don't want any of this. Also, to have better accuracy (smaller bandwidth) at lower frequencies, means these need to update much more slowly, like 16k Windows (1/3 m/s).

Yeah, a low frequency signal naturally travels slowly, and thus of course, you need a lot of time to detect them. This is not a problem that math can fix. It's a natural trade of, and you can't have high accuracy a lower frequency and fast response.

I think the link I provide will clarify some of your options...7 years after you asked the question, unfortunately.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文