1.创建函数文件:plot_fft.m
文件内的代码如下
%CK.2022.05.23
%函数名:plot_fft
%函数功能:画信号的频域图
%函数输入:X:信号序列;fs:信号频率
%函数输出:X_FS:函数频率向量;X_FR:幅值序列
function[X_FS,X_FR]=plot_fft(X,fs)
X_N=length(X); %信号长度
X_f=fft(X); %对信号进行FFT变换
X_FS=fs*(0:X_N/2)/X_N; %频率向量
X_f1=abs(X_f/X_N);
X_FR=X_f1(1:X_N/2+1);
X_FR(2:end-1)=2* X_FR(2:end-1); %真实幅度
end
2.调用
创建测试文件:XX.m,此文件需要和plot_fft.m在同一文件夹。 XX.m内的代码如下
%CK.2022.05.23
%测试plot_fft函数
clc; clear; close all;
%%
%创建正弦信号序列
A=2; %信号幅值
f=100; %信号频率
fs=20*f; %采样频率
T=3; %信号总时间
t=0:1/fs:T; %信号时间向量
signal=sin(2*pi*f*t); %正弦信号
%创建完成
%%
%调用plot_fft函数画频域图
figure(1);
[F_fs,F_R]=plot_fft(signal,fs);
plot(F_fs,F_R);
title('正弦信号的频域图');
xlabel('f(hz)'); ylabel('F_R');
figure(2);%时域图
plot(t(1:100),signal(1:100)); %前100个数据的时域图
title('正弦信号的时域图');
xlabel('t(s)'); ylabel('signal');
3.结果