连续变化在固定时刻被取样后,不同频率可能给出完全相同的样本。若只看到这些离散值,就无法总是还原原来的连续变化速度。
使用初相位为零、幅度为一的余弦。每秒取N个样本,频率f为整数,样本编号n对应余弦的角度二π乘fn除以N。先把f对N取余r,再比较r与N减r,较小者作为本例相同样本的折叠频率。
输入与计算记录
采样率为每秒32次,频率单位为每秒周期数。表中小数四舍五入到七位,仅用于阅读。
原频率 | 取余 | 折叠频率 | 前八个样本 0 | 0 | 0 | [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] 1 | 1 | 1 | [1.0, 0.9807853, 0.9238795, 0.8314696, 0.7071068, 0.5555702, 0.3826834, 0.1950903] 16 | 16 | 16 | [1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0] 17 | 17 | 15 | [1.0, -0.9807853, 0.9238795, -0.8314696, 0.7071068, -0.5555702, 0.3826834, -0.1950903] 31 | 31 | 1 | [1.0, 0.9807853, 0.9238795, 0.8314696, 0.7071068, 0.5555702, 0.3826834, 0.1950903] 33 | 1 | 1 | [1.0, 0.9807853, 0.9238795, 0.8314696, 0.7071068, 0.5555702, 0.3826834, 0.1950903] 67 | 3 | 3 | [1.0, 0.8314696, 0.3826834, -0.1950903, -0.7071068, -0.9807853, -0.9238795, -0.5555702] 95 | 31 | 1 | [1.0, 0.9807853, 0.9238795, 0.8314696, 0.7071068, 0.5555702, 0.3826834, 0.1950903]
阅读记录时先确认编号代表的是格子、对象、时间还是数组位置,再逐项对应输入与输出。中间状态提供了定位差异的依据,最后的一个合计数字不能替代全部步骤;没有对象的集合与数值零也应区别看待。
怎样检查这个结果
逐行比较前八个样本,并核对折叠频率处于零至N的一半之间。频率相差N的整数倍会在采样时刻增加完整周期;余弦的正负角度值相同,这解释了另一半频率的折叠。
本例特意固定了余弦相位,不代表任意信号都只需这一个数字描述。真实音频或动画信号还包含多种频率和相位,想避免混叠需要在采样前考虑带宽,而不是事后凭离散值猜回原信号。
可以遮住结果表先按规则复算第一步,再选择一个边界输入重复操作。若更换规则中的任一前提,应重新推导结果,不要只调整最后答案。这样既能理解本例为何成立,也能看清它在哪些情况下不再适用。
