fft波形与实际频率的关系
来源:互联网 发布:2017年户外广告数据 编辑:程序博客网 时间:2024/05/16 17:08
之前就知道在matlab里用fft就能看到输入信号的频谱,比如下图
但是波峰值具体表示的频率是多少不是很直观,今天研究了一下他们的对应关系。上面的图形的matlab代码如下
clear
f=10.1;
fs=100;
tao=1/fs;
N=1;
n=0:tao:N;
x=sin(2*pi*f*n);
%for i=500:1000; %模拟加零
% x(i)=0;
%end
subplot(2,1,1)
plot(n,x) (1)
subplot(2,1,2)
plot(n*fs/N,fft(x)) (2)
从程序可以看出原始波形是频率为10.1Hz的正弦波,以100Hz的频率对其在0~1之间采样,如果直接以n为横坐标去画fft的波形,横坐标的刻度与实际频率的关系就很难看的出来,而如果对n乘以fs再除以N,就会跟实际频率对应起来了,如下图
这时第一个波峰的横坐标显示为10,与实际频率的10.1近似相等,如何精确相等后面会详细说明。
为什么要对n这么进行处理呢,首先看一下fft波形的物理意义。在fft或者dft中,时域采样多少个点,频域就得到多少个点的频谱,而每一个点都代表固定的频率。从程序可以看出采样频率是100Hz,故fft得出的最后一个点代表的频率就是100Hz。又知道做的是100点的dft,故可知第n个点就代表n*1Hz的频点。就是说在100Hz的范围内采了100个点,故每个点代表1Hz,这就是为什么要乘以fs。除以N是因为这次是N=1,除不除没什么变化,如果我的n是在0~8之间取值,就需要把范围归一化到0~1范围内。
以上是如何把fft波形与实际频率对应起来的方法。下面说说怎么才能测到精确的10.1Hz。
单纯的增加采样频率只能增加频谱波形细节,不能增加频谱测量的精度,故即使把采样频率增加到20KHz,如下图,也无法得到精确的10.1Hz。
故只能通过增加采样序列的长度,即可以把N增加到10,如下图,则可得到精确的10.1Hz
当然,通过下图可以看出增加0点也不是个好办法
- fft波形与实际频率的关系
- N个点FFT变换中的频率分辨率以及与实际频率的关系
- 有关FFT频率与实际物理频率的分析
- FFT频率和实际物理频率的分析
- MATLAB FFT变换中,数字频率与模拟频率的转换关系
- CPU频率与内存频率的关系
- 采样率与频率的关系
- 波长与频率的关系
- FFT与采样点数的关系原理
- FFT与DFT的关系及应用
- FFT的物理意义 配波形图
- 模拟域频率与数字域频率的关系
- 信号处理中数字频率与模拟频率的关系
- 频率与听感的对应关系
- 采样率与频率之间的关系
- 一幅图弄清DFT与DTFT,FFT的关系
- 声音的时域、频域(FFT)波形实时可视化绘制
- 声音的时域、频域(FFT)波形实时可视化绘制
- 八款开源 Android 游戏引擎 (巨好的资源)
- 深入体验JavaWeb开发内幕——Request相关知识及应用总结
- SSH中Spring Quartz定时器的用法(ZT)
- [转载]学习C++的50条忠告
- socket=IP+端口+协议(传输层)
- fft波形与实际频率的关系
- 转 div+css 背景图片的定位取图问题详解
- Android中Context详解
- solaris磁盘管理
- 初学Android,网络应用之使用多线程Socket(八十五)
- GetMessage和PeekMessage的区别
- [转】C++标准
- mysql Access denied for user 'root'@'localhost' (using password: YES)
- 关于Silverlight安装中遇到的问题