2025-11-08 05:28:43
FFT算出来的频率值要除以总采样点数n,因为每次循环往复计算会累加n次结果,相当于把真实幅度平均分到n个点里头。乘以2/n是为了把单边频谱的幅度翻倍,因为FFT默认算的是双边频谱,只保留正频率部分就少了一半能量。比如n=1024次采样,原始信号幅度是1,FFT输出会变成1/1024,这时候除以n就是1/1024,再乘以2/1024就变成2/1048576,这显然不对,所以实际处理时要先除后乘。
举个例子,假设信号是正弦波频率1Hz,采样点n=1000,采样率10kHz。FFT算出来的幅度是1000/n=1,这时候除以n就是1/1000=0.001。但真实幅度应该是1,所以需要乘以2/n=2/1000=0.002,这样0.001×0.002=0.000002,这明显错误。正确做法是先除以n得到0.001,再乘以2得到0.002,这才是真实幅度。数据验证显示,当n=2048时,正确结果应该是幅度×2/2048,而错误计算会变成幅度×2/2048²,误差达到百万分之一。所以必须严格按除n后乘2的顺序,否则结果会像被揉皱的纸一样偏离真实值。
本题链接: