声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1597|回复: 3

[FFT] 关于fft变换后的频率问题

[复制链接]
发表于 2010-2-3 13:57 | 显示全部楼层 |阅读模式

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

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

x
clear all
t=[0:0.01:100]
y=sin(t)
z=fft(y)
plot(abs(z))

以上是问题的完整源码.如果abs(z)是表示y=sin(t)的频谱的话,显然w=1,则f=2*pi/w=2*pi,因此最后abs(z)应该只在横坐标1对应的坐标上才有纵坐标数值才对,但实际是横坐标为17.0000的地方才有纵坐标数值,请问原因是什么

matlab上的y=sin(t)的频谱

matlab上的y=sin(t)的频谱
回复
分享到:

使用道具 举报

发表于 2010-2-3 22:17 | 显示全部楼层
w=1=2*pi*f       f=1/(2*pi)  
你的fs=1/0.01=100Hz   N=10001
频率分辨率为ff=fs/N=0.009999
那么fft之后应该在第f/ff=1/(2*pi)/ff=15.917    也就是16处
若out=abs(z),那么就应该在out(17)处,也就是17处。因为矩阵out是从1开始的。
程序:
clc;
clear all;
t=[0:0.01:100];
y=sin(t);
z=fft(y);
N=length(t);
Fs=100;
f0=1/(2*pi);
F=([1:N]-1)*Fs/N;
out=abs(z);
figure(2)
plot(F(1:N/2),out(1:N/2));
title('幅频特性');
xlabel('频率');
ylabel('幅值');
未命名.jpg

评分

1

查看全部评分

 楼主| 发表于 2010-2-3 22:24 | 显示全部楼层
很感谢!大概看明白了
plot(F(1:N/2),out(1:N/2));
-----------------
关于这个地方还有个小小疑问,就是为什么是N/2而不是N
发表于 2010-2-5 22:35 | 显示全部楼层

回复 板凳 sdf4940 的帖子

我觉得首先可以这样理解,由奈奎斯特定理可知道,信号的采样频率至少是最高频率的2倍,因此,所采样的信号也就是采样频率的二分之一,上面Fs=100,所能分辨的最高信号频率为50,
那么F取1:N/2才具有实际意义。

也有下面的解释:
傅里叶变换后的幅值-频率图是以N/2为对称轴的,横坐标实际上为0:N-1,但为了让横坐标有物理意义,一般的将其频率0:Fs-1映射到0:N-1,Fs/2对应于N/2,因此就出现了FFT变换后的频谱图是关于奈奎斯特频率Fs/2对称的。
这个网址上有一些介绍:
http://hi.baidu.com/liuzhiliangl ... 88f2829e51469d.html
应该对你有帮助的!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-22 03:43 , Processed in 0.059219 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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