首页 > 编程知识 正文

matlab傅里叶变换函数,matlab绘制时域波形和频谱图

时间:2023-05-04 09:08:24 阅读:14877 作者:1681

在matlab中计算时间序列数据的时域、频域特征的主要思想是使用滑动窗口先分割数据,逐段计算特征。

别胡说,上代码:

%对于输入的一系列片段,计算以下时域统计特征,并返回特征值function t=regular _ stati TIC _ features (a ) %计算信号的时域特征ma=max(a ) a作为行; %最大值mi=min(a; %最小值me=mean(a; %平均pk=ma-mi; %峰-峰av=mean(ABS(a ); %整流平均值r=rms(a; %有效值p=peak(a; %峰值va=var(a; %方差ST=STD(a; %标准差ku=KurtOSIS(a; %绝顶度sk=Skewness(a; %偏振度RM=rms(a; %均方根S=rm/av; %波形因子C=pk/rm; %峰值因子I=pk/av; %脉冲因子ma=大因子因子(a; 由%裕度因子%傅立叶变化产生的频谱[f,result_FFT]=Transtofft(a,20000 ); %计算频域特征f1=fc(f,result_FFt ); %重心频率f2=MSF(f,result_FFt ); %均方频率f3=VF(f,result_FFt ); %频散t=[ mamimepkavrpvastkuskrmscimaf 1f2f3]; end以下是一些特征的具体计算过程:

%重心频率functionF1=fc(f,result_FFt ) F1=sum ) f.*result_FFt )/(sum ) result_FFt ) ); end%均方频率functionF2=MSF(f,result_FFt ) f=f.^2; f2=sum(f.*result_FFT )/(sum ) result_FFT ); end%频散functionF3=VF(f,result_FFt ) f=(f-fc ) f,result_FFt ) ).^2; f3=sum(f.*result_FFT )/(sum ) result_FFT ); 求出endfunctionPK=peak(a ) %信号峰值PK=max(a )-min(a ) a; endfunction crestfactor=crest factor (a ) %信号的峰值因子crestfactor=peak(a )/rms(a ) a ); endfunctionshapefactor=shapefactor (a ) %信号的波形因子shapefactor=rms(a )/mean (ABS ) a ); endfunctionimpulsefactor=impulse factor (a ) %信号的脉冲因子impulsefactor=peak(a )/mean (ABS ) a ) ); endfunction marginfactor=margin factor (a ) %信号的容限因子marginfactor=peak(a )/mean (sqrt ) ABS (a ) ) ) ^2; end使用计算光谱的函数transToFFT,代码如下:

function [f,result_FFT]=transtofft(data,fs ) %是为了便于创建频谱图n=length (data ),为了求解数据的快速傅立叶变换结果%平均值data=data-mean(data ); %频率分辨率df=fs/(n-1 ); f=(03360n-1 ) df; y=FFT (数据)/N*2; result_FFT=ABS(y; %一半的result _ FFT=result _ FFT (1: ceil (n/2 ); f=f(1:ceil ) n/2 ); end用的情况下放在一个路径下就可以了。 此外,数据段的代码如下。

输入%长序列,按照滑动窗口的思路剪切为数据段,以行为段的矩阵function data _ segments=en frame (data、win、inc ) %win:窗口inc (移贞距离data=data ); 根据%数据是行还是列,data_segments=[]; left=1; right=win; whileright=length(data ) seg=data left : right; 数据_ segments=[数据_ segments; SEG ); left=left inc; right=right inc; endend以前写了python和matlab两篇文章,都不熟悉,也可能有点错误,所以为了能合着读,重新写了。 另外两个中有一些参考文献,大家可以理解记忆。

python代码: https://blog.csdn.net/weixin _ 44620044/article/details/107239960? spm=1001.2014.3001.5502

matlab代码: https://blog.csdn.net/weixin _ 44620044/article/details/105617749? SPM=1001.2014.3001.55023358 www.Sina.com /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。