fft变换之后的实际意义

fft真是自以为很熟悉很了解,matlab张手就是fft(xn)
但变换之后到底得到的是啥?画图时每个点的横纵坐标又代表了啥?
以一段fft变换的代码为例:

t_s = 0.01; %采样周期
t_start = 0.5; %起始时间
t_end = 5;     %结束时间
t = t_start : t_s : t_end;
y = 1.5*sin(2*pi*5*t)+3*sin(2*pi*20*t)+randn(1,length(t));  %生成信号

y_f = fft(y); %傅里叶变换
subplot(5,1,1);plot(t,y);title('original signal');   %绘制原始信号图
Druation = t_end -t_start;  %计算采样时间
Sampling_points = Druation/t_s +1;  %采样点数,fft后的点数就是这个数
f_s = 1/t_s; %采样频率
f_x = 0:f_s/(Sampling_points -1):f_s; 
subplot(5,1,2);plot(f_x,abs(y_f));title('fft transform');

得到这样的结果
在这里插入图片描述
以上代码,很顺手噢,但是
fft变换之后的横坐标为什么要那样设置?
频率分辨率是什么?

首先,原始信号y是一组离散的数据点没问题吧,这些数据点,横轴为时间信息,纵轴为信号的幅值。
那fft做了什么?
一言以蔽之:把原来的一组点变成另外一组点。
变换之后的点肯定能反映出什么东西才会这样操作。
那变换之后的点反应出了什么了?
首先,变换之后点的横坐标为[0,fs),假设一共采N个点,那么变换之后的一组点(也是N个)的横坐标为:0,fs1/N,fs2/N,fs3/N,fs4/N······fs*(N-1)/N
也就是说,变换之后每个点的横坐标都是以采样率/采样点数(fs/N)为间隔变化的,也即频率分辨率为fs/N
说完了横坐标,那纵坐标是啥?反应了啥?
每个横坐标fsk/N对应的纵坐标是一个复数,这个复数的模反应了原始信号频率为fsk/N的子信号的幅值A的N/2倍(频率为0处的幅值为直流量的N倍),复数的相位就反应了原始信号频率为fs*k/N的子信号的相位。

现在,对fft有直观认识了吗?
参考文章

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值