永发信息网

MATLAB FFT变换后幅值不对

答案:3  悬赏:40  手机版
解决时间 2021-11-21 07:13
  • 提问者网友:趣果有间
  • 2021-11-20 13:19
MATLAB FFT变换后幅值不对
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-11-20 14:25
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左右,都是离散取点不能完全描述连续信号的问题,所以误差是难免的,除了增大点数别无他法。
全部回答
  • 1楼网友:西岸风
  • 2021-11-20 17:24
第一个和你的nfft的选取有关,如果nfft>采样数据N的话,会需要补零点,导致整体的幅值下降了;第二个就是和你设定的采样频率有关,理论上采样频率设置地越大,fft之后的幅值越接近时域的真实幅值,以上都已试过,欢迎提问!
  • 2楼网友:往事隔山水
  • 2021-11-20 16:03
fft采样太小,改大些,比如fft256追问不知道 为什么 改大了还是有误差追答数字采洋不可能没有误差,取决于采样频率,采样误差和计算误差
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯