![]() |
[讨论]fft分析结果疑惑?
fft不同分析点数导致幅值差别较大
同一采样率 M=fft(Y,256); M=fft(Y,512); M=fft(Y,1024); 采用不同的点数,应该只是分辨率不同而已啊,怎么结果用1024点明显比256点,512点小呢? 还有采用不同的采用率fs时,对于不同的采样率频率点都在一个地方,所以导致采用不同的采样率有不同的频谱结果。 如,我用一个20Hz信号,fs=1000时,刚好频谱分析中,20Hz处有峰值,但是fs=500时,频谱中10Hz处有峰值,怎么解决这个问题呢? M=fft(Y,256); Py=abs(M)*2/256; f=fs*(0:128)/256; plot(handles.axes1,f,Py(1:129)); |
回复: [讨论]fft分析结果疑惑?
.......................
回去 看看理论吧 这是对的!!!!!!! 有公式的!!!!! 模拟与数字的转换 |
回复: [讨论]fft分析结果疑惑?
不会吧!同一信号采用不同的采样率,而导致结果相差几倍?
fft 应该很多人在研究啊?我的信号为一正弦信号,不同的采样率,fft后频率也不一样?比如50Hz的正弦信号,fs=1000时,50Hz处有峰值,fs=500时,25Hz有峰值,fs=2000时,100Hz处有峰值。就是出现峰值处在x轴上位置不变,但是采用不同采样率,x轴刻度在变,所以导致不同采样率,出现峰值的频率点不同。 |
回复: [讨论]fft分析结果疑惑?
f这项处理的不对。
频谱分析建议记住这些: x Sampled data m = length(x) Window length (number of samples) fs Samples/unit time dt = 1/fs Time increment per sample t = (0:m-1)/fs Time range for data y = fft(x,n) Discrete Fourier transform (DFT) abs(y) Amplitude of the DFT (abs(y).^2)/n Power of the DFT fs/n Frequency increment f = (0:n-1)*(fs/n) Frequency range fs/2 Nyquist frequency |
回复: [讨论]fft分析结果疑惑?
N=128 或256 或512 或1024
x=0:.001:1; y=sin(2*pi*50*x); M=fft(y,N); Py=abs(M)*2/N; f=fs*(0:N/2)/N; %fs采样率 plot(f,Py(1:N+1)); 请麻烦试验一下,不同的N,fft幅值结果相差较大。 不同的fs,fft后幅值处频率值也随fs差异成倍。多谢! 请帮分析一下哪里有问题呢 |
回复: [讨论]fft分析结果疑惑?
怎么没人回呢?
|
回复: [讨论]fft分析结果疑惑?
[QUOTE=kmkeke;22300]N=128 或256 或512 或1024
x=0:.001:1; y=sin(2*pi*50*x); M=fft(y,N); Py=abs(M)*2/N; f=fs*(0:N/2)/N; %fs采样率 plot(f,Py(1:N+1)); 请麻烦试验一下,不同的N,fft幅值结果相差...[/QUOTE] 你仔细看看你的x,你的x间隔是0.001,不是1/fs,导致你的f表达有问题了,实际上你是做了0.001与fs之间的抽取或者是内插了。 你把f的表达式修改一下就好了,或者把x的间隔修改为1/fs. |
回复: [讨论]fft分析结果疑惑?
我认为是,当你用fft分析的点数不同时,其频率分辨率不同,这样你要是有10Hz信号的话,再高分辨率时,可以将两个点的幅度很好得分开,就是相邻的频率点的值是明显有不同的峰的,而当你用低分辨率时,由于其分辨能力有限,哪么原来相邻的两个频率的能量就会出现叠加,因而幅度是不一样的。
|
回复: [讨论]fft分析结果疑惑?
[QUOTE=datuman;22503]你仔细看看你的x,你的x间隔是0.001,不是1/fs,导致你的f表达有问题了,实际上你是做了0.001与fs之间的抽取或者是内插了。
你把f的表达式修改一下就好了,或者把x的间隔修改为1/fs.[/QUOTE] 顶这位,建议楼主好好看看坛子里的一篇文章,fft的物理意义 [url]http://www.labfans.com/t6897/[/url] |
所有时间均为北京时间。现在的时间是 05:38。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.