如何用MATLAB实现快速傅立叶变换FFT?

 时间:2026-02-14 07:42:38

1、读入时域采集信号,定义采样频率,计算信号点数量,生成采样时间点

clear;clc;close all

load('example')

Fs=2500;

T=1/Fs;

N=length(y);

t=(0:1:N-1)*T;

t=t';

2、绘制时域信号图形

figure

plot(t,y)

3、使用MATLAB自带的fft函数,对信号做傅里叶变换,注意:频谱的前半部分为有效谱图

Y=fft(y);

Y=Y(1:N/2+1);

A=abs(Y);

f=(0:1:N/2)*Fs/N;

f=f';

1、对原始频谱的幅值就行修正,才能将频域的幅值与时域信号的幅值对应上

A_adj=zeros(N/2+1,1);

A_adj(1)=A(1)/N;

A_adj(end)=A(end)/N;

A_adj(2:end-1)=2*A(2:end-1)/N;

2、绘制幅频特性图

figure

subplot(2,1,1)

plot(f,A_adj)

3、绘制相频特性图

subplot(2,1,2)

phase_angle=angle(Y);

phase_angle=rad2deg(phase_angle);

plot(f,phase_angle)

  • Mathematica基础——Eliminate的用法
  • Matlab App Designer基本使用之标签组件
  • 上海交通大学机械硕博连读为何不读博
  • MATLAB R2015b中注释汉字复制到word上出现乱码
  • matlab如何在图像中绘制放大部分的图像
  • 热门搜索
    手抄报模板 儿童节手抄报 安全在我心中手抄报 护眼手抄报 春节手抄报图片 春天的手抄报 预防传染病手抄报 清明节手抄报 安全手抄报图片 世界水日手抄报内容