前段时间有人问,时域波形如何变换到频谱图,其实对于工科生来说,这个应该是比较基础的,但是也不能保证每个人都学过,所以今天整理了一下,贴出来:
clc;clear all;close all;
A=load('C:\Users\Administrator\Desktop\signal.txt');
plot(A(:,1)*10e8,A(:,2));
xlabel('t/ns');ylabel('Ez/(V/m)');
title('时域波形');
N=length(A);n=0:N-1;
dt=A(2,1)-A(1,1);fs=1/dt;
f=n*fs/N;
A_fft=fft(A(:,2),N);
A_fft_mag=abs(A_fft);
figure(2);
plot(f,A_fft_mag);
xlabel('f/Hz');ylabel('幅值')
figure(3);
plot(f(1:N/2),A_fft_mag(1:N/2));
xlabel('f/Hz');ylabel('幅值')
figure(4);
plot(f(1:N/100),A_fft_mag(1:N/100));
xlabel('f/Hz');ylabel('幅值')
N是采样点数,dt是时间间隔,fs是采样频率
图1是时域波形图:

图2是频谱图

由于图2的得到的结果是对称的,我们只需要取其中一半就可以,得到图3:

那这个就是我们得到的频谱图了,从图中可以看到频率范围最大达到了80GHz,但是实际频率范围一般不会到这么大,所以将频率范围缩小,得图4:

上面写的都比较简略一点,大致的过程就是这样,有需要的同学可以再深入理解