声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1457|回复: 9

[FFT] 求助:IFM的频率问题

[复制链接]
发表于 2008-12-30 16:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近在看瞬时测频方面的,其中介绍了傅里叶测频,
是这么说的,

未命名.bmp
我就不明白了,功率谱上的峰值点,就一定是信号的频率吗?
功率谱的峰值点对应信号的频率,是什么原因呢?
刚才看到也有人问到功率谱测频的测频的问题,也不是太清楚
希望大侠来解答一下!:loveliness:
回复
分享到:

使用道具 举报

发表于 2008-12-30 19:19 | 显示全部楼层
fs=1000
t=0:1/fs:0.6;
f1=100;
f2=300;
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
subplot(711)
plot(x);
title('f1(100Hz)\f2(300Hz)的正弦信号,初相0')
xlabel('序列(n)')
grid on

number=512

y=fft(x,number);
n=0:length(y)-1;
f=fs*n/length(y);
subplot(713)
plot(f,abs(y));
title('f1\f2的正弦信号的FFT(512点)')
xlabel('频率Hz')
grid on

x=x+randn(1,length(x));
subplot(715)
plot(x);
title('原f1\f2的正弦信号(含随机噪声)')
xlabel('序列(n)')
grid on

y=fft(x,number);
n=0:length(y)-1;
f=fs*n/length(y);
subplot(717)
plot(f,abs(y));
title('原f1\f2的正弦信号(含随机噪声)的FFT(512点)')
xlabel('频率Hz')
grid on
发表于 2008-12-30 19:20 | 显示全部楼层
这个原理不难解释啊
我想楼主拷贝的文章写的没有错误
发表于 2008-12-30 23:56 | 显示全部楼层
ls的强呐!!
哈,我是菜鸟,刚才看到了,运行一下,为啥还有700和900的峰值?
说明什么问题啊,菜鸟,才学,不懂的请见谅!
发表于 2008-12-31 08:40 | 显示全部楼层
f1=100; f2=300; fs=1000;
700=fs-f2
900=fs-f1
http://forum.vibunion.com/forum/viewthread.php?tid=20795&highlight=%B6%A8%C0%ED

[ 本帖最后由 ChaChing 于 2008-12-31 09:20 编辑 ]
 楼主| 发表于 2008-12-31 11:39 | 显示全部楼层
谢谢几位的解答
程序我跑了下,
ls,你的fs-f2和fs-f1也的确对
但是你引用的香农定理的网页说明什么?
香农定理是采样频率>最高频率2倍,就是fs>2f1和2f2,
1000hz满足了,还说明什么?
但是fs-f2和fs-f1在这里的,有什么物理意义吗?
发表于 2008-12-31 13:53 | 显示全部楼层
Fs = 1000;                    % Sampling frequency
T = 1/Fs;                     % Sample time
L = 1000;                     % Length of signal
t = (0:L-1)*T;                % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t));     % Sinusoids plus noise
plot(Fs*t(1:50),y(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')

NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);

% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')

matlab里的帮助文件中的源程序
直接傅立叶变换得到的是双边谱
负频率只有数学计算意义
没有物理意义
你只取一半就可以了
发表于 2009-1-1 00:42 | 显示全部楼层
我的好好学习学习
 楼主| 发表于 2009-1-1 02:11 | 显示全部楼层
其实,我是想知道
像正弦信号,
FFT频谱最大值所对应的是他的频率的估计(可能因为fft的离散谱,有fs/2N的精度误差),
是为什么?怎么来用理论说明?
很多书上,论文上都是一笔带过,我是想知道原因,谢谢呐!
新年快乐,各位!
 楼主| 发表于 2009-1-1 02:22 | 显示全部楼层

回复 5楼 ChaChing 的帖子

哦,你那个700跟900hz,是大于采样频率fs的一半了,不能算,
是不是计算频率就是找出fft后的频谱图的fs/2范围内的最大值就可以了呐?
为什么频率处产生最大值?
因为是频谱图是把时间信号化成很多频率的合成,
当信号自身的频率与频谱图的频率相等时,产生谐振,因此产生峰值的呢?
谢谢大侠说明了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 18:28 , Processed in 0.067224 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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