英语法语西班牙语

Ad


OnWorks 网站图标

harminv - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行harminv

这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行的命令harminv

程序:

您的姓名


harminv - 从时间序列数据中提取模式频率

概要


伤害 [OPTION]……[最小频率-最大频率] ...

商品描述


伤害 是一个旨在解决“谐波反转”问题的程序:给定时间
由一系列正弦曲线(“模式”)组成的系列,提取它们的频率和
幅度。 它还可以处理指数衰减正弦曲线的情况,其中
如果它也提取它们的衰减率。

伤害 通常能够实现比傅立叶 - 更高的准确性和鲁棒性
转换方法,主要是因为它为输入假定了特定的形式。

它使用低存储“过滤器对角化方法”(FDM),如 VA 中所述
Mandelshtam 和 HS Taylor,“时间信号的谐波反转”, J. 化学。 物理 107,
6756 (1997)。 另见勘误, 同上 109,4128(1998)。

INPUT


伤害 从标准中读取以空格分隔的实数或复数序列
输入,以及指示一个或多个频率范围的命令行参数
搜索,并输出它从数据中提取的模式。 (它优先发现
您指定的频率范围内的模式,但有时可能会在外部找到其他模式
在那个范围内。)数据应该对应于等距的时间间隔,但有
对点数没有限制。

输入中的复数应以格式表示 RE+IM我(没有空格)。
否则,空白将被忽略。 此外,注释以“#”开头并扩展到
行尾被忽略。

典型的调用类似于

伤害 -t 0.02 1-5 < input.dat

它读取以 0.02 个时间间隔(以毫秒为单位,例如,
对应于 50 kHz),并在 1-5 kHz 的频率范围内搜索模式。 (看
下面是单位。)

OUTPUT


伤害 将六个逗号分隔的列写入标准输出,每种模式一行:
频率、衰减常数、Q、幅度、相位和误差。 每个模式对应一个
表格的功能:

振幅 * exp[-i (2 圆周率 频率 t - ) - 衰变 t]

这里,i 是 sqrt(-1),t 是时间(单位见下文),其他参数在
输出列是:

频率
模式的频率。 如果你从上面的表达式中没有认识到这一点,
你应该记得欧拉公式:exp(ix) = cos(x) + i sin(x)。 请注意,对于
复杂的数据,正负频率是有区别的。

衰变 常数
指数衰减常数,表示为 衰变 在上面的公式中。 这
与此相反的通常称为模式的“生命周期”。 “半条命”是
ln(2)/衰变.

Q 衰减寿命的常规无量纲表达式:Q = pi |频率|
/ 衰变. Q,代表“品质因数”,是周期数
模式中的“能量”(平方振幅)衰减 exp(-2 pi)。 同样,
如果您查看功率谱(|傅立叶变换|^2),则 1/Q 是分数
半峰宽。

振幅
正弦波的(实数,正)幅度。 幅度(和相位)
信息通常似乎不如频率和衰减准确
不变。

正弦曲线的相移(以弧度为单位),如上式所示。

错误 (复杂)频率的相对误差的粗略估计。 这不是
然而,它确实是一个误差条,因此您应该更多地将其视为品质因数
(越小越好)对于每种模式。

虚假的 模式


通常,除所需的解之外,harminv 还会找到许多伪解。
解决方案,尤其是在您的数据嘈杂的情况下。 这种解决方案的特点是大
误差、小幅度和/或小 Q(大衰减率/宽线宽)。 你可以
通过下面定义的误差/Q/幅度筛选选项从输出中省略这些。

默认情况下,错误 > 0.1 和 Q < 10 的模式会自动省略,但很可能
您将需要设置更严格的限制。

单位


输入和输出的频率(和衰减)值以 1/时间为单位指定,
其中时间单位由采样间隔决定 dt (之间的时间
连续输入)。 dt 默认情况下为 1,除非您使用 -t dt 选项。

换句话说,选择一些单位(例如上例中的 ms)并使用它们来表示
时间步长。 然后,保持一致并使用这些单位的倒数(例如 kHz = 1/ms)
频率。

请注意,频率是通常的 1/周期定义; 它不是角频率。

配置


-h 显示有关命令行选项和用法的帮助。

-V 打印版本号和版权信息 伤害.

-v 启用详细输出,作为注释行打印到标准输出(以
“#“ 特点)。 此外,输入中的任何“#”注释都会回显到输出中。

-T 在命令行上指定周期范围而不是频率范围(以单位为单位)
时间对应于指定的那些 -t)。 输出仍然是频率和
不是期间,但是。

-w 指定角频率而不是频率,并输出角频率
而不是频率。 (角频率是频率乘以 2 pi)。

-n 翻转harminv 中使用的频率(和相位)约定的符号。 (标志
仅当您有复数值输入数据时,频率才重要,其中
如果正负频率幅度可能不同。)

-t dt 指定采样间隔 dt; 这决定了整个过程中使用的时间单位
输入和输出。 默认为 1.0。

-d d 指定光谱“密度” d 搜索模式,其中密度为 1
表示通常的傅立叶分辨率。 也就是说,基函数的数量
(设置模式数量的上限)由下式给出 d 次(最大频率 -
最小频率) 次 dt 乘以数据集中的样本数。 最多 300
然而,用于防止矩阵变得太大(您可以强制
更大的数字 -f,如下)。

请注意,输出的频率分辨率为 不能 受光谱限制
密度,并且通常可以远大于傅立叶分辨率。 这
密度决定了最多搜索多少个模式,在某种意义上是
带宽最初“搜索”模式的密度。

默认密度为 0.0,表示基函数的个数为
由 -f 决定(默认为 100)。 这通常对应一个更大的
密度高于通常的傅立叶分辨率,但由此产生的奇点
系统矩阵会被harminv 自动删除。

-f nf 指定下限 nf 关于谱基函数的数量(默认为
100),设置要搜索的模式数量的下限。 这个选项是
通常是一种比指定基函数数量更方便的方法 -d
选项,上面,这就是为什么它是默认值。

-f 还允许您使用 300 多个基函数,但要注意:
计算时间尺度为 O(N nf) + O(nf^3),其中 N 是样本数,并且
非常大的矩阵也会降低精度。

-s 分类
指定输出的排序方式,其中 分类 是其中一个
频率/误差/Q/衰减/幅度。 (只有第一个字符 分类 很重要。)
所有的排序都是按升序排列的。 默认是按频率排序。

-e 犯错 忽略错误(见上文)大于的任何模式 犯错 乘以最大误差
在计算模式之间。 默认为无限制。

-E 犯错 忽略错误(见上文)大于的任何模式 犯错. 默认为 0.1。

-F 忽略任何频率超出指定范围的模式。 (这种模式不是
然而,必然是虚假的。)

-a amp 省略幅度(见上文)小于的任何模式 amp 倍最大振幅
在计算模式之间。 默认为无限制。

-A amp 省略幅度(见上文)小于的任何模式 amp. 默认为无限制。

-Q q 用 |Q| 省略任何模式(见上文)小于 q. 默认为 10。

使用 onworks.net 服务在线使用harminv


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad