MATLAB FFT变换后幅值不对

学习 时间:2026-03-30 17:37:00 阅读:2039
MATLAB FFT变换后幅值不对想询问一个matlab 频率谱分析的问题就是我用matlab对一个直流信号加正弦信号的混合信号进行FFT但是后面频率对应是正确的,幅值会有一定的偏差,比如正弦幅值是3,但FFT后是2.8,这是因为什么呢?

最佳回答

神勇的蛋挞

如意的书本

2026-03-30 17:37:00

fft后的频域幅值不是信号在时域的幅值,俩相等才是不正常的。 再问: 我知道不是的 是跟采样点数有个比例关系 但是这个比例关系也有误差啊 再答: 假设原始信号的峰值为A,采样点数N,那么fft后的每个点(除了第一个点直流分量之外)的模值(幅值)就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。幅值的偏差要么是你点数与峰值相除小数点后边的精度问题,要么就是你的采样频率不够大,即采样的点数不够多,造成的精度问题,这问题很常见,通常都是加大采样频率,采样的点数越多越精确,千万别相信采样定理,只将采样频率增大一倍,实际中这样根本没法满足需求的精度,搞个5、6倍还差不多,越多越好,不过计算的时间可就增大了,所以你可以试试,满足你精度要求的采样频率到底多少合适。 我用3sin(300*pi*t);采样t=0:0。001:1;%设定信号时间为0到1秒,频率为1000HZ来计算,发现仍有许多t点的值,在峰值仍然达不到幅值3,所以这么多幅值累计的误差很可观,通过N/2倍计算幅值也是2。8左右,都是离散取点不能完全描述连续信号的问题,所以误差是难免的,除了增大点数别无他法。

最新回答共有2条回答

  • 认真的小懒虫
    回复
    2026-03-30 17:37:00

    fft后的频域幅值不是信号在时域的幅值,俩相等才是不正常的。 再问: 我知道不是的 是跟采样点数有个比例关系 但是这个比例关系也有误差啊 再答: 假设原始信号的峰值为A,采样点数N,那么fft后的每个点(除了第一个点直流分量之外)的模值(幅值)就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。幅值的偏差要么是你点数与峰值相除小数点后边的精度问题,要么就是你的采样频率不够大,即采样的点数不够多,造成的精度问题,这问题很常见,通常都是加大采样频率,采样的点数越多越精确,千万别相信采样定理,只将采样频率增大一倍,实际中这样根本没法满足需求的精度,搞个5、6倍还差不多,越多越好,不过计算的时间可就增大了,所以你可以试试,满足你精度要求的采样频率到底多少合适。 我用3sin(300*pi*t);采样t=0:0。001:1;%设定信号时间为0到1秒,频率为1000HZ来计算,发现仍有许多t点的值,在峰值仍然达不到幅值3,所以这么多幅值累计的误差很可观,通过N/2倍计算幅值也是2。8左右,都是离散取点不能完全描述连续信号的问题,所以误差是难免的,除了增大点数别无他法。

上一篇 电音怎么唱出来的

下一篇 将0.1MOL/ L NH3.H20与0.1MOL/ L HCL 等体积混合,再滴入石蕊试剂,溶液显红色,说明氨水是弱碱