给定一组值估计采样频率

信息处理 matlab 采样 估计
2022-01-25 18:30:53

给定一个大小为 2000 的数组 x,有没有办法使用 Matlab 计算(或估计)采样频率?这些值是我拥有的关于信号的唯一信息。我知道信号是用 Fs = 360 Hz 采样的,但我想知道是否有任何方法可以从这些图中提取此信息。

这是信号图,它是心电图:

在此处输入图像描述

这是 FFT:

在此处输入图像描述

2个回答

给定一个大小为 2000 的数组 x,有没有办法计算(或估计)采样频率 [...]?这些值是我拥有的关于信号的唯一信息。

不。

我知道信号是用 Fs = 360 Hz 采样的,但我想知道是否有任何方法可以从这些图中提取此信息。

不。

采样频率是离散采样信号的固有特性。对采样信号的任何操作都隐式或显式使用 Fs。推断采样频率的唯一方法是在正确采样的信号上注入或检测导频音。

例如,离散傅里叶变换没有明确参考采样频率。DFT 只是将信号分解为可以由它所呈现但是,当你想从“波数”或“bin”回到它所代表的物理频率时,你必须知道 Fs。N

如果您不使用“正确的”Fs,那么您可能会遇到混叠的情况,您基本上无法相信您正在查看的数字,因为它们是信号频谱及其本身的不受控制的重叠。这就是为什么在模数转换之前,抗混叠滤波器是信号模拟路径中的关键组件。抗混叠滤波器将确保非常接近或高于的频率不会通过系统。Fs2

如果我们去掉这个滤波器,数字处理部分的输出就会变得不可靠。

话虽如此,正如@Fat32 所指出的那样,如果您绝对确定采样的信号符合此限制并且它是在没有混叠的情况下采样的,那么您可以推断出 Fs。但是,这不能通过随机心电图来完成。或者更确切地说,这实际上取决于您所追求的准确性。

标准心电图波形的谐波可以扩展到 100Hz

现在的问题是,您手中的这个特定心电图的实际带宽是多少?那个,可能确实是用标准蒙太奇获得的,但它包含噪音和基线漂移。此外,根据患者的行为,信号会有所不同,其带宽也会有所不同。

因此,哪个 DFT bin 对应于 100Hz 是不确定的。

如果您对棒球场图感兴趣,您可以查看信号 DFT 中其功率降至平均背景噪声以下的点,并将该点作为您的 100Hz 标称值,然后返回使用的 Fs。但这肯定不准确,尤其是在使用“奇怪”的 Fs 时(如 128.5 Hz)。

因此,在一般情况下,不可能从离散信号的值中“二次猜测”采样频率。

唯一的例外是确保不会出现混叠(即采样足够高)并使用导频音也就是说,您确切知道或可以完全控制其频谱的音调或其他信号。

如果信号中有单个导频,那么您可以说,我知道导频为 1kHz,它在 DFT 输出上显示为 bin k 上的高输出,然后我可以向后工作以估计对应关系分箱到物理频率。

您的信号中会出现这样的导频吗?

是的,您的信号很可能包含电源线干扰这将在 DFT 中显示为一组一致的尖峰,因为您不仅会看到 50Hz 的正弦曲线,而且还会得到一些谐波。

电源线的频率并不完全是 50Hz(至少在欧洲),但它必须遵守严格的标准,因此对于 ECG 的相对较短的持续时间,它可以用作假定值为 50Hz 的导频音。

当然,ECG 不一定包含电源线噪声。它可能在采集点被过滤器或其他屏蔽抑制。在这种情况下,您将回到“无法完成”的响应中。

希望这可以帮助。

如果您确切知道模拟信号的带宽,并且确保在采样过程中没有混叠,那么您可以通过分析获得的样本的DFT(FFT)频谱来判断采样频率。

下面的关系表明其中是模拟信号的截止频率,是采样频率,是信号 DFT(FFT) 在其中频谱截止发生,的 DFT(FFT) 点数

fcfs=kcN
fcfskcNkc<N/2

如果您不确定信号的截止频率,那么您将有一个高音。