楼主: jiangxiao

[已答复] Matlab中FFT求正玹序列的振幅

[复制链接]

新手

5 麦片

财富积分


050


0

主题

16

帖子

0

最佳答案
发表于 2012-4-28 16:27:44 | 显示全部楼层
这个帖子 太好了。。受益匪浅

新手

5 麦片

财富积分


050


0

主题

1

帖子

0

最佳答案
发表于 2012-12-3 15:23:07 | 显示全部楼层
幅值校正的部分看起来很难的样子  实际中应该怎么做呢?

新手

5 麦片

财富积分


050


0

主题

2

帖子

0

最佳答案
发表于 2012-12-3 20:56:21 | 显示全部楼层
mark一下,以后学习

新手

10 麦片

财富积分


050


0

主题

3

帖子

0

最佳答案
发表于 2013-11-4 22:25:40 | 显示全部楼层
弱弱地问一下,Xn(513)=Xn(513)/2;是什么意思?我把采样点数改为1024*2时,把那句去掉是一样的,就是零点幅值为20。

新手

10 麦片

财富积分


050


6

主题

87

帖子

0

最佳答案
发表于 2015-12-6 17:55:52 | 显示全部楼层
songzy41 发表于 2009-9-18 19:27
如果想经FFT后直接能求出正弦信号的幅值,正如LZ在1层所说的:“正弦信号的频率一定要与FFT后的某条谱线相 ...

宋老师,您好     既然信号幅值不完全依赖于采样频率和采样点数,那通常说的采样数据越长,结果越精确是指什么?仅仅针对峰值频率吗? 另外这个是不是针对周期信号都是这样的呢?
  1. %% 如果想经FFT后直接求出正弦信号的幅值,正弦信号的频率一定要与FFT后的某条谱线相对应,否则需对幅值进行校正
  2. clc;clear;
  3. Fs=1000;    % 采样频率,Hz
  4. N=4076;     % 采样点数
  5. t=(0:N-1)/Fs;   % 采样时间序列,s
  6. x=10+15*sin(10*2*pi*t)+randn(size(t));  % 生成离散信号
  7. subplot(211);
  8. plot(t,x);xlabel('t');

  9. x_fft=fft(x,N);   % FFT 变换
  10. mag=abs(x_fft)/(N/2);   % 将幅值换算到实际幅值
  11. mag(1)=mag(1)/2;  % 直流分量
  12. f=(0:N-1)*Fs/N;   % 频率序列
  13. subplot(212);
  14. plot(f(1:N/2+1),mag(1:N/2+1));xlabel('f');  % 根据FFT对称性,只需画出一半
  15. title('Fs=1000,N=4076');
复制代码



1000.jpg
4076.jpg

论坛优秀回答者

17

主题

5038

帖子

1112

最佳答案
  • 关注者: 588
发表于 2015-12-6 21:00:19 | 显示全部楼层
hustshiyi 发表于 2015-12-6 17:55
宋老师,您好     既然信号幅值不完全依赖于采样频率和采样点数,那通常说的采样数据越长,结果越精确是 ...

“那通常说的采样数据越长,结果越精确”这种说法没有理论根据的。在FFT变换中往往正弦信号的频率与谱线不想重合,所以有人希望增加采样频率,使谱线尽量接近正弦波的真实频率。但用校正法后,可以通过正弦波真实频率附近的谱线,求出正弦波的幅值、频率和初始相角;而不需要提高采样频率或加长采样数据。
该程序已指出了“想经FFT后直接求出正弦信号的幅值,正弦信号的频率一定要与FFT后的某条谱线相对应,否则需对幅值进行校正”。LZ给出两张图,给出了正弦信号的谱线,幅值不相同,想说明什么?

新手

10 麦片

财富积分


050


6

主题

87

帖子

0

最佳答案
发表于 2015-12-6 22:39:32 | 显示全部楼层
songzy41 发表于 2009-9-18 19:27
如果想经FFT后直接能求出正弦信号的幅值,正如LZ在1层所说的:“正弦信号的频率一定要与FFT后的某条谱线相 ...

宋老师,您好     这个意思是不是说明   
1、对于实际采集的未知信号(一般不是简单正弦),进行FFT分析,只能分析得出峰值频率(频率分辨率Fs/N很小时,峰值频率较精确),而峰值频率对应的幅值(abs(fft(x))/N*2)一般并不可信(幅值可能有较大误差)?也是不是意味着通过FFT一般只能获得较精确的峰值频率,但并不能获得较精确的幅值?

论坛优秀回答者

17

主题

5038

帖子

1112

最佳答案
  • 关注者: 588
发表于 2015-12-7 11:38:51 | 显示全部楼层
如果不是正弦信号,例如语音信号,对于频率的精度是否要求很高?幅值abs(fft(x))/N*2的关系式是针对正弦信号而来的,对非正弦信号不一定适用。

新手

10 麦片

财富积分


050


6

主题

87

帖子

0

最佳答案
发表于 2015-12-7 23:19:27 | 显示全部楼层
songzy41 发表于 2015-12-6 21:00
“那通常说的采样数据越长,结果越精确”这种说法没有理论根据的。在FFT变换中往往正弦信号的频率与谱线 ...

1、貌似即使增大采样频率,谱线会尽可能接近真实频率,但只要谱线与真实频率不相重合,幅值误差仍然较大,并不会随采样点增多而改善。
2、两张图是为了说明,如果谱线与真实频率重合,即使采样点很少幅值也较精确;而如果谱线与真实频率不重合,即使采样点很多,幅值误差也较大。
3、对于一未知信号(一般不是正弦),是否采样点越多,FFT分析得到的峰值频率一定越精确?
4、对周期信号采样后的数据进行FFT分析,如何才能获得较好结果(包括峰值频率与幅值)?

新手

10 麦片

财富积分


050


6

主题

87

帖子

0

最佳答案
发表于 2015-12-7 23:25:46 | 显示全部楼层
songzy41 发表于 2015-12-7 11:38
如果不是正弦信号,例如语音信号,对于频率的精度是否要求很高?幅值abs(fft(x))/N*2的关系式是针对正弦信 ...

1、想分析一振动信号的频率成分及相应幅值,希望能获得较高精度的频率及幅值,该如何实现呢?
2、幅值公式 abs(fft(x))/N*2 仅适用于单频正弦信号? 对于周期信号或一般信号,如何获得较准确的幅值?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表