Simulink 中的分析信号模块降低了虚部的幅度

信息处理 希尔伯特变换 分析信号 模拟链接
2022-02-02 23:47:17

在 Simulink 中,我将正弦波连接到零阶保持,并将零阶保持连接到解析信号模块,如下图所示。我的目的是通过添加复数部分将真实信号转换为相应的解析信号,以便能够进行一些移相操作。零阶保持块是对信号进行离散化,因为解析信号只接受离散信号。 现在,问题是这样的:当我通过将零阶保持的采样时间设置为较小的数字(例如$0.00003$在此处输入图像描述 )来 “更精细地”离散信号时,分析信号的虚部输出显着减少,而实部保持正常,如下图所示。相反,当采样时间设置为更大数量(例如$0.0003$ )时,分析信号输出的实部和虚部的幅度相同,如预期的那样。

在此处输入图像描述

根据 Matlab 的文档解析信号块的输出是这样的:$y=u+j H \{\ u \}\ $,其中$H \{\ \}\ $表示希尔伯特变换,$j$ = $ \sqrt{-1}$因此,在上面提到的设置中,似乎当连续信号以更高的频率进行采样时,希尔伯特变换会降低幅度。

为什么希尔伯特变换会降低幅度,或者我在 Simulink 中的设置有问题?

1个回答

如果滤波器具有固定阶数,则增加采样率将使其响应随频率缩放,因此过渡宽度相对于采样频率增加。例如:如果$f_s=1\;\mathrm{kHz}$$\omega_{tw}=10\;\mathrm{Hz}$对于给定的订单,那么保持订单并将$f_s$增加十倍将使$ \omega_{tw}$增加十倍。

我没有 Matlab,但根据文档,您链接的块使用 FIR 执行希尔伯特变换(这是有道理的)。由于我也没有您的其他详细信息,因此我正在使用 Kaiser 窗口和 Kaiser 顺序公式对此进行测试,使用$A_s=-40\;\mathrm{dB}$$\omega_{tw}=1\ ;\mathrm{Hz}$$f_s=10\;\mathrm{Hz}$时,订单为$23$(长度$24$)。在输入端使用$1\;\mathrm{Hz}$信号会在输出端产生与输入端幅度相等的解析信号。这是 LTspice 中的结果(注意:输入V(x)没有延迟,因此两个信号不正交):

10

保持顺序并增加$f_s=100\;\mathrm{Hz}$导致$\omega_{tw}=10\;\mathrm{Hz}$,并且对于相同的$1\;\mathrm{Hz}$输入输出减少:

100

为了避免这种情况,需要增加订单。在这种情况下,它最终是$224$(长度$225$):

ñ

如果您比较第一张和第三张图片,您会看到延迟的相似之处,与第二张图片不同,这是有道理的,因为相位是固定的,因此如果您更改采样,结果最终需要延迟相同的数量频率。我没有发布任何频域响应,但您应该能够轻松地自己看到。