#数值分析:FFT,加窗FFT,小波换记录


记录一下matlab中时历曲线分析的相关函数

FFT

function out = myFFT(time,data)
% 功能:FFT
% 输入:time:时间
%       data:数据
% 输出:out.Fre:频率
%       out.Ampti:幅值
%       out.Phase:相位
    N=length(data);
    fft_Data=fft(data);
    Ampti = abs(fft_Data) / (N)*2;
    Phase = atan2(imag(fft_Data),real(fft_Data));
    dt=time(2)-time(1);
    Fre=(0:1:(length(time)-1))/(N*dt)*2*pi;
    out.Fre=Fre;
    out.Ampti=Ampti;
    out.Phase=Phase;
end

加窗FFT

function [omega,res] = getWelch(data,dt,N)
    % 功能:FFT加窗处理
    % 输入:data 数据段
    %       dt 时间间隔
    %       N 每段处理数据长度N
    fs=1/dt;
    % 每段数据之间的重叠区域宽度为:N*1/2
    [p,f] = pwelch(data,hamming(N),N/2,N,fs);
    omega = f*2*pi;
    res = p/2/pi;
%     res = sqrt(res); %转化为幅值
end

小波变换

% data时历
% fs采样频率(Hz)
% wt:为f[Hz]与时间t[s]相关(二维矩阵)
[wt,f]=cwt(data,fs);

测试案例

待添加。。。

相关