DiscreteHilbertTransform[list]
求实数列表 list 的离散希尔伯特变换.
DiscreteHilbertTransform
DiscreteHilbertTransform[list]
求实数列表 list 的离散希尔伯特变换.
更多信息
- 离散希尔伯特变换在信号处理、通信、声学、数据压缩、地震环境数据、引力波等领域均有应用.
- 该变换对原始序列中的正频率施加一个
的相位偏移,对负频率施加一个
的相位偏移. - 对于列表
,DiscreteHilbertTransform 先计算其快速傅立叶变换(FFT),然后消除负频率分量,再对结果进行逆傅立叶变换,所得结果的虚部即为
. » - 在信号处理中,复数序列
被称为“解析信号”,其幅值为包络(envelope):
的长度可为任意正整数. - 若
的元素为精确数值,则 DiscreteHilbertTransform 会先对其应用 N 函数.
也可以是 SparseArray 对象,生成的
也同样是 SparseArray 对象.
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (9)
x = {1, 0, 0, 1, 0, 0, 1};DiscreteHilbertTransform[x]DiscreteHilbertTransform[N[x, 24]]DiscreteHilbertTransform[RandomReal[{2, 4}, {3, 6}]]x = ConstantArray[0, {2, 3, 4}];x[[1, 1, 1]] = 1;x[[2, 2, 2]] = 1;DiscreteHilbertTransform[x]x 是实值的 SparseArray:
x = SparseArray[{{1, 2} -> -1, {2, 2} -> 2π, {3, 3} -> 1.3, {2, 3} -> 7}];计算离散希尔伯特变换,并以 SparseArray 形式返回结果:
DiscreteHilbertTransform[x]x = SparseArray[Table[3 ^ i -> 1, {i, 10}]];计算离散希尔伯特变换,并以 SparseArray 形式返回结果:
DiscreteHilbertTransform[x]discreteCosine = Table[Cos[t], {t, -π, π, π / 25}];DiscreteHilbertTransform 施加一个弧度为
的相位偏移:
discreteHCosine = DiscreteHilbertTransform[discreteCosine];ListPlot[{discreteCosine, discreteHCosine}, ...]Tabular[(Transpose[{N[discreteCosine], discreteHCosine}])[[ ;; 10]] , {...}]x = RandomReal[1, 200];dhtx = DiscreteHilbertTransform[x];ListLinePlot[{x, dhtx}, ...]x = Sin[17 * 2π * Range[0, 1, 0.001]] + RandomVariate[NormalDistribution[0, 0.05], 1001];dhtx = DiscreteHilbertTransform[x];ListLinePlot[{x, dhtx}, ...]带有噪声的 Sinc 函数数据:
n = 100;
x = Table[Sinc[x - 10], {x, n}] + RandomReal[{-.05, .05}, {n}];ListPlot[x, PlotRange -> All]p = Fourier[x, FourierParameters -> {1, 1}];
ListPlot[Abs[p] ^ 2]dHx = DiscreteHilbertTransform[x];a = x + I * dHx;s = Fourier[a, FourierParameters -> {1, 1}];
ListPlot[Abs[s] ^ 2]ListLinePlot[{x, dHx, Abs /@ a}, ...]应用 (4)
通讯 (1)
m = Table[Sin[2Pi 5t] + 2Sin[2Pi 7t] + 1 / 2Sin[2Pi 9t], {t, -π / 2, π / 2, π / 100}];
ListLinePlot[m, DataRange -> {-π / 2, π / 2}, ...]以
作为消息载波,获取上边带抑制载波 (USB-SC) 和下边带抑制载波 (LSB-SC):
c = Table[Cos[2Pi 55t], {t, -π / 2, π / 2, π / 100}];
s = Table[Sin[2Pi 55t], {t, -π / 2, π / 2, π / 100}];
USB = m * c - DiscreteHilbertTransform[m] * s;
LSB = m * c + DiscreteHilbertTransform[m] * s;
ListLinePlot[{USB, LSB}, ...]心电图频率分析 (1)
心电图(ECG)的时频分析能够揭示重要的生理信息。以某患者的心电图数据为例,该数据记录了心脏电活动随时间变化的电压曲线:
ECGData = {...};
ListLinePlot[ECGData, ...]使用 KaiserWindow 对数据进行滤波处理:
filteredECG = BandpassFilter[ECGData, {(4π/25), (2π/5)}, Length[ECGData], KaiserWindow];differentialECG = Differences[filteredECG] / (2 * .01);dhDifferentialECG = DiscreteHilbertTransform[differentialECG];{Max[dhDifferentialECG] * .18, RootMeanSquare[dhDifferentialECG]}这将设定最大值的 39% 作为一个阈值;基于此信息,您可以通过一阶差分的希尔伯特变换定位 R 峰的位置:
RpeaksLocation = First /@ FindPeaks[dhDifferentialECG, Automatic, Automatic, Max[dhDifferentialECG] * .39];RPeaks = Transpose@{RpeaksLocation, ECGData[[RpeaksLocation]]};
ListPlot[{ECGData, RPeaks}, ...]风速预测 (1)
speedDateData = QuantityMagnitude[WeatherForecastData[...]];
directionDateData = (π/180)QuantityMagnitude[WeatherForecastData[...]];
DateListPlot[{speedDateData, directionDateData}, ...]预测风速由公式
给出,其中
是风速数据的最大值,
和
分别是序列
和风向数据的平均值.
和
分别为这两个序列去除均值后的离散希尔伯特变换:
{...};
DateListPlot[{...}, ...]地震数据分析 (1)
考虑以下地震波形,它展示了由地震波引起的地面运动随时间被检测和记录的过程:
trace = {...};
ListLinePlot[trace]dhTrace = DiscreteHilbertTransform[trace];complexTrace = trace + I * dhTrace;env = Abs[complexTrace];ListLinePlot[{trace, dhTrace, env, -env}, ...]phase = ArcTan[trace, dhTrace];
ListLinePlot[phase, PlotLabel -> "Instantaneous phase for the complex trace"]属性和关系 (2)
Subscript[f, k] = {1.1, -1.2, 5.5, -4.5};fFourier = Fourier[Subscript[f, k], FourierParameters -> {1, -1}]anhilation = {1, 2, 1, 0} * fFourierInverseFourier[anhilation, FourierParameters -> {1, -1}]最后,将虚部与 DiscreteHilbertTransform 的结果进行比较:
Im[%] == DiscreteHilbertTransform[Subscript[f, k]]{-2.3, -3.14, 1.62, E, Pi} + I DiscreteHilbertTransform[{-2.3, -3.14, 1.62, E, Pi}]Fourier[%, FourierParameters -> {1, -1}]//Chop文本
Wolfram Research (2026),DiscreteHilbertTransform,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.html.
CMS
Wolfram 语言. 2026. "DiscreteHilbertTransform." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.html.
APA
Wolfram 语言. (2026). DiscreteHilbertTransform. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.html 年
BibTeX
@misc{reference.wolfram_2026_discretehilberttransform, author="Wolfram Research", title="{DiscreteHilbertTransform}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.html}", note=[Accessed: 07-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_discretehilberttransform, organization={Wolfram Research}, title={DiscreteHilbertTransform}, year={2026}, url={https://reference.wolfram.com/language/ref/DiscreteHilbertTransform.html}, note=[Accessed: 07-September-2026]}