MATLAB之傅里叶变换,快速傅里叶变换FFT

傅里叶变换及傅里叶逆变换定义

能从时域的非周期连续信号转化到频域非周期连续信号。
在这里插入图片描述

窗函数/矩形脉冲信号的傅里叶变换

在这里插入图片描述
在这里插入图片描述
结论:

  1. 随着脉冲宽度τ的减小,主叶变得更宽,而且更多的能量被移到更高的频率。则反之。
  2. 当信号脉冲在时间上扩展时,它的变换在频率上压缩。则反之。

基于MATLAB的快速傅里叶变换FFT

通过蝶形算法衍生的FFT暂不推导,下面直接给出代码。

% 功能:简易的快速傅里叶变换FFT
% 注意:整周期采样的问题,非整周期采样会引起频谱泄露
%       当NFFT/Fs*f1是整数时,称整周期采样

% 编辑者:lily
% 日期:2019,4,15

clear;
clc;
close all;
% ======================= input signal ==========================
f1 = 30;
fai1 = pi/3;
Fs = 2^9;
T =1;      % T = N/Fs 
t = 0:1/Fs:T-1/Fs;
N = length(t);
NFFT = 2^nextpow2(N);%nextpow2(N),靠的最近的2的指数
x = sin(2*pi*f1*t);
% ======================= fft ==================================
deltaF = 1/T;   %  deltaF = dFs/(N-1);%如果是表格或mat文件,推荐用这一种
vecf = (0:N-1)*deltaF;

% vecf  = linspace(0,Fs,N); 
% linspace(x1,x2,n) % 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)% 如果数据x是奇数,f=vecf

tic;
xk = 2*fft(x,NFFT)/N;        
toc;

Ampli = abs(xk);
phase = unwrap(angle(xk));
% =========================== figure ====================================
figure;
subplot(3,1,1);plot(t,x);title('信号')
subplot(3,1,2);plot(vecf,Ampli);title('FFT双边谱')
subplot(3,1,3);plot(vecf(1:Fs/2+1),Ampli(1:Fs/2+1));title('FFT单边谱')


  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值