Select 整数个周期
Select an integer number of periods
假设我们有频率为 100Hz 且采样频率为 1000Hz 的正弦波。这意味着我们的信号每秒有 100 个周期,我们每秒采集 1000 个样本。因此,为了 select 一个完整的时期,我将不得不采取 fs/f=10
个样本。正确的?
如果采样周期不是信号频率的倍数(如 550Hz)怎么办?我是否必须找到 f
和 fs
的最小倍数 M
,然后取 M
个样本?
我的目标是 select 整数个周期,以便能够在不更改的情况下复制它们。
你每秒有 f
个周期,每秒有 fs
个样本。
如果您采集 M
个样本,它将覆盖 M/fs
秒的一部分,或 P = f * (M/fs)
个周期。你希望这个数字是整数。
所以你需要采集 M = fs / gcd(f, fs)
个样本。
以你的例子为例P = 1000 / gcd(100, 1000) = 1000 / 100 = 10
。
如果你有 60 Hz 频率和 80 Hz 采样频率,它给出 P = 80 / gcd(60, 80) = 80 / 20 = 4
-- 4 个样本将覆盖 4 * 1/80 = 1/20
秒的一部分,这将是 3 个周期。
如果您有 113 Hz 频率和 512 Hz 采样频率,那您就不走运了,因为 gcd(113, 512) = 1
并且您需要 512 个样本,涵盖整个秒和 113 个周期。
一般来说,任意频率不会有整数个周期。不合理的频率永远不会重复。因此,除了串联一个周期的缓冲器之外,还需要一些其他方法来准确合成任意频率的周期性波形。通过分数相位偏移的插值近似是一种可能性。
假设我们有频率为 100Hz 且采样频率为 1000Hz 的正弦波。这意味着我们的信号每秒有 100 个周期,我们每秒采集 1000 个样本。因此,为了 select 一个完整的时期,我将不得不采取 fs/f=10
个样本。正确的?
如果采样周期不是信号频率的倍数(如 550Hz)怎么办?我是否必须找到 f
和 fs
的最小倍数 M
,然后取 M
个样本?
我的目标是 select 整数个周期,以便能够在不更改的情况下复制它们。
你每秒有 f
个周期,每秒有 fs
个样本。
如果您采集 M
个样本,它将覆盖 M/fs
秒的一部分,或 P = f * (M/fs)
个周期。你希望这个数字是整数。
所以你需要采集 M = fs / gcd(f, fs)
个样本。
以你的例子为例P = 1000 / gcd(100, 1000) = 1000 / 100 = 10
。
如果你有 60 Hz 频率和 80 Hz 采样频率,它给出 P = 80 / gcd(60, 80) = 80 / 20 = 4
-- 4 个样本将覆盖 4 * 1/80 = 1/20
秒的一部分,这将是 3 个周期。
如果您有 113 Hz 频率和 512 Hz 采样频率,那您就不走运了,因为 gcd(113, 512) = 1
并且您需要 512 个样本,涵盖整个秒和 113 个周期。
一般来说,任意频率不会有整数个周期。不合理的频率永远不会重复。因此,除了串联一个周期的缓冲器之外,还需要一些其他方法来准确合成任意频率的周期性波形。通过分数相位偏移的插值近似是一种可能性。