对数变换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对数变换相关的知识,希望对你有一定的参考价值。
参考技术A 关于对数的一些小知识:这一篇是关于对数变换的
在对数据进行处理,或者进行可视化的时候,经常要对数据进行转换,有时候就会用到对数变换。
在网上整理了一些资料,如下。
对数变换(log transformation),是特殊的一种数据变换方式,它可以将一类我们理论上未解决的问题转换为已经解决的问题。
数据变换的目的,是能够让它符合我们的假设,是我们能够在已有理论上对其进行分析。
在上一篇中 对数坐标轴 ,其实又说到,类似的情况
数据变换,是为了更便捷的发现数据之间的关系(更好的数据可视化)
比如,对两个指标做散点图:
会发现,横坐标的数据差异较大,且集中在较小值的一端,我们就可以对横坐标取个对数
数据就很分散了
这也是我一开始很困惑的地方,现在其实也没有很好地理解,只是知道可以这样做
找到的资料中,有对数据进行验证的
很多都提到了异方差,数据分布等等,经济学上的很多模型也都是这样处理的
有资料说,数据变换,是特征工程的一种技巧,用来减轻数据分布倾斜的影响,使原本密集的区间的值,尽可能的分散。
对数变换,主要作用在于帮助稳定方差,始终保持分布接近于正态分布
有偏数据,经过对数变换:
参考了几篇知乎的回答:
是否有使用频率对数除法的 FFT?
【中文标题】是否有使用频率对数除法的 FFT?【英文标题】:Is there an FFT that uses a logarithmic division of frequency? 【发布时间】:2010-11-10 08:42:40 【问题描述】:***的Wavelet article 包含以下文字:
离散小波变换的计算复杂度也较低,与 fast Fourier transform 的 O(N log N) 相比,花费 O(N) 时间。这种计算优势不是变换固有的,而是反映了对数分频的选择,与 FFT 的等间隔分频相比。
这是否意味着还有一种类似 FFT 的算法使用频率的对数除法而不是线性?它也是O(N)吗?对于很多应用程序来说,这显然是更可取的。
【问题讨论】:
这是一个有趣的想法。我不确定它有多大用处:具有对数频率的波形会形成一个完整的基础吗?如果不是,它们有什么用? (不是说没用,我是真的不确定。) 我假设它类似于 FFT,但结果中的 bin 是对数间隔的。例如,音频频谱分析仪将受益于此,因为它在低频下具有更高的分辨率,而在高频下具有更低的分辨率 (www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.0/userguide-9.0/…),并且更高的计算速度将允许它以更快的速度刷新或提供更高的整体分辨率。 现在我理解得更好了,至少对于频谱分析仪来说,复杂的 Morlet 小波变换可能会达到我的想象。 @endolith: 或 constant-Q transform dsp.stackexchange.com/q/6266/29 非常有趣,谢谢。我还发现关于常量 Q 变换的***页面很有用:en.wikipedia.org/wiki/Constant_Q_transform 【参考方案1】:是的。是的。没有。
它被称为对数傅里叶变换。它有 O(n) 时间。然而,它对于随着域/横坐标的增加而缓慢衰减的函数很有用。
参考***文章:
主要区别在于小波 在时间和本地化 频率,而标准傅立叶 转换仅本地化 频率。
因此,如果您只能在时间(或空间,选择您对横坐标的解释)上进行定位,那么小波(或离散余弦变换)是一种合理的方法。但是,如果您需要继续进行下去,那么您需要傅立叶变换。
在http://homepages.dias.ie/~ajones/publications/28.pdf了解更多关于 LFT 的信息
这是摘要:
我们为已对数采样的函数的傅里叶变换提供了一个精确的解析表达式。该过程在计算上比用于转换函数或测量响应的快速傅里叶变换 (FFT) 的计算效率显着提高,后者随着横坐标值的增加而缓慢衰减。我们用一个来自电磁地球物理学的例子来说明所提出的方法,其中缩放通常使得我们应该应用我们的对数傅里叶变换 (LFT)。对于所选择的示例,我们能够在 1.0e2 更短的时间内获得与 FFT 一致的结果,误差在 0.5% 以内。我们的 LFT 在地球物理学中的潜在应用包括将宽带电磁频率响应转换为瞬态响应、冰川加载和卸载、 含水层补给问题,地震学中的正态模式和地球潮研究,以及脉冲冲击波建模。
【讨论】:
哦,所以时域信号也需要对数采样? (意味着样本的时间间隔不相等?)【参考方案2】:编辑:在阅读完这篇文章后,我认为这个算法对这个问题并不是很有用,无论如何我都会给其他读者一个描述。
还有Filon's algorithm一种基于Filon's qudrature的方法,可以在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 章
【讨论】:
【参考方案3】:要做你想做的事,你需要测量不同的时间窗口,这意味着较低频率的更新频率最低(与 2 的幂成反比)。
在此处查看 FPPO: https://www.rationalacoustics.com/files/FFT_Fundamentals.pdf
这意味着更高的频率会更频繁地更新,但你总是平均(移动平均是好的),但也可以让它移动得更快。当然,如果计划使用逆 FFT,您不需要任何这些。此外,为了在较低频率下获得更好的精度(更小的带宽),这意味着这些更新需要更慢,例如 16k Windows (1/3 m/s)。
是的,低频信号自然传播缓慢,因此当然需要大量时间来检测它们。这不是数学可以解决的问题。这是一个自然的交易,你不能拥有较低频率和快速响应的高精度。
我认为我提供的链接将阐明您的一些选择...不幸的是,在您提出问题 7 年后。
【讨论】:
以上是关于对数变换的主要内容,如果未能解决你的问题,请参考以下文章
对数变换(一些基本的灰度变换函数)基本原理及Python实现
R语定义函数对宽分布(wide distribution )有偏分布(skew distribution)的数据进行对数变换(符号对数变换函数signed log transformation)