主要内容

signalFrequencyFeatureExtractor

流线信号频率特征提取

自从R2021b

    描述

    使用signalFrequencyFeatureExtractor从信号中提取频域特征。你可以使用提取的特征来训练机器学习模型或深度学习网络。

    创建

    描述

    超临界流体= signalFrequencyFeatureExtractor创建一个signalFrequencyFeatureExtractor具有默认属性值的对象。

    例子

    超临界流体= signalFrequencyFeatureExtractor (名称=值属性的非默认属性值signalFrequencyFeatureExtractor对象。例如,signalFrequencyFeatureExtractor (FrameSize = 30, FrameOverlapLength = 6)将信号划分为重叠的30个样本帧,并从每个帧中提取特征。

    属性

    全部展开

    主要特性

    一帧中的样本数,用正整数表示。该对象将信号分成指定长度的帧,并为每帧提取特征。如果您没有指定FrameSize,或者您指定FrameSize当为空时,对象为整个信号提取特征。

    数据类型:|

    帧开始之间的采样数,指定为正整数。帧速率决定样本中帧的起始点之间的距离。如果你指定帧速率,那么你还必须指定FrameSize.如果您没有指定帧速率FrameOverlapLength,然后帧速率假设等于FrameSize.你不能指定帧速率而且FrameOverlapLength同时进行。

    数据类型:|

    连续帧之间的重叠采样数,指定为正整数。FrameOverlapLength必须小于或等于帧大小。如果你指定FrameOverlapLength,那么你还必须指定FrameSize.你不能指定FrameOverlapLength而且帧速率同时进行。

    数据类型:|

    输入采样率,指定为正标量,单位为赫兹。

    数据类型:|

    生成的特性的格式,指定为“矩阵”“表”.的提取函数返回的特性如下:

    • 矩阵-矩阵,列对应特征值。

    • 表格-表,每个表变量对应一个特征值。

    数据类型:字符|字符串

    规则处理不完整的帧,指定为“下降”“zeropad”.当当前帧大小小于指定值时,应用此规则FrameSize财产。

    • 下降—删除不完整的帧,不要使用它来计算特征。

    • zeropad-零垫不完整的帧,并使用它来计算特征。

    数据类型:字符|字符串

    需要提取的特征

    选项来提取功率谱的平均频率,指定为真正的.如果你指定MeanFrequency对象提取功率谱的平均频率,并将其附加到函数返回的特征提取函数。

    数据类型:逻辑

    选项来提取功率谱的中位数频率,指定为真正的.如果你指定MedianFrequency对象提取功率谱的中值频率,并将其附加到函数返回的特征提取函数。

    数据类型:逻辑

    选项来提取平均频带功率,指定为真正的.如果你指定BandPower方法返回的特征中,对象提取波段功率并将其附加到提取函数。

    数据类型:逻辑

    选项提取99%已占用带宽,指定为真正的.如果你指定OccupiedBandwidth对象提取99%已占用的带宽,并将其附加到返回的特征提取函数。

    如果需要设置占用带宽抽取参数,请使用setExtractorParameters

    setExtractorParameters(超临界流体,“OccupiedBandwidth”名称=值)

    占用带宽提取可设置参数为:

    • 百分比—功率百分比,为之间的正整数0而且One hundred.

    数据类型:逻辑

    选项提取3db(半功率)带宽,指定为真正的.如果你指定PowerBanwidth对象提取3db带宽值,并将其附加到返回的特征提取函数。

    设置半功率带宽提取参数,使用setExtractorParameters

    setExtractorParameters(超临界流体,“PowerBandwidth”名称=值)

    半功率带宽提取可设置参数为:

    • RelativeAmplitude-相对振幅,以整数形式指定。

    数据类型:逻辑

    选项提取功率谱密度(PSD)估计,指定为真正的.如果你指定WelchPSD对象使用Welch's方法提取PSD估计,并将其附加到返回的特征提取函数。

    要设置韦尔奇PSD估计的参数,请使用setExtractorParameters

    setExtractorParameters(超临界流体,“WelchPSD”名称=值)

    韦尔奇PSD估计提取的可设置参数为:

    • FFTLength—DFT点数,以正整数形式指定。

    • FrequencyVector-估计PSD的频率,指定为至少有两个元素的向量。你可以指定FrequencyVector只有当FFTLength未指定。

    • OverlapLength—重叠样本的个数,指定为正整数。

    • 窗口-窗口,指定为标量或向量。

    数据类型:逻辑

    选项提取峰值谱振幅,指定为真正的.如果你指定PeakAmplitude为真时,对象提取计算出的Welch PSD估计的峰值振幅,并将它们附加到返回的特征提取函数。

    要设置峰值振幅提取的参数,使用setExtractorParameters

    setExtractorParameters(超临界流体,“PeakAmplitude”名称=值)

    峰值提取可设置参数为:

    • PeakType—峰值类型,指定为“最小值”“最大值”

    • MaxNumExtrema—最大峰值数,指定为正整数标量。

    • MinProminence-最小突出度,指定为正标量。该对象只返回突出度至少为指定值的峰值。

    • MinSeparation-峰值之间的最小间隔,指定为正标量。

    • FlatSelection-平面区域指示器,指定为以下其中之一:

      • “中心”-仅将平坦区域的中心元素表示为峰值。

      • “第一”-仅将平坦区域的第一个元素表示为峰值。

      • “最后一次”-仅将平坦区域的最后一个元素表示为峰值。

      • “所有”-将平坦区域的所有元素表示为峰值。

    数据类型:逻辑

    选项提取光谱峰值位置,指定为真正的.如果你指定PeakLocation对象提取计算出的Welch PSD估计的峰值位置,并将它们附加到返回的特征提取函数。

    要设置提取峰位置的参数,使用setExtractorParameters

    setExtractorParameters(超临界流体,“PeakLocation”名称=值)

    峰值位置提取可设置参数为:

    • PeakType—峰值类型,指定为“最小值”“最大值”

    • MaxNumExtrema—最大峰值数,指定为正整数标量。

    • MinProminence-最小突出度,指定为正标量。的setExtractorParameters函数只返回突出值至少为指定值的峰值。

    • MinSeparation-峰值之间的最小间隔,指定为正标量。

    • FlatSelection-平面区域指示器,指定为以下其中之一:

      • “中心”-仅将平坦区域的中心元素表示为峰值。

      • “第一”-仅将平坦区域的第一个元素表示为峰值。

      • “最后一次”-仅将平坦区域的最后一个元素表示为峰值。

      • “所有”-将平坦区域的所有元素表示为峰值。

    数据类型:逻辑

    请注意

    为了计算频率特征,signalFrequencyFeatureExtractor首先用Welch的方法估计输入时域信号的PSD。该对象使用计算得到的Welch PSD和相应的频率向量来计算指定的特征。方法配置计算出的Welch PSD估计setExtractorParameters函数。

    对象的功能

    提取 提取时域或频域特征
    generateMATLABFunction 创建MATLAB函数兼容C/ c++代码生成
    getExtractorParameters 获取特征提取器对象的当前参数值
    setExtractorParameters 为特征提取器对象设置非默认值

    例子

    全部折叠

    生成1024个采样的1024khz的啁啾。啁啾的初始频率为50 kHz,在采样结束时达到100 kHz。添加高斯白噪声,使信噪比为40 dB。绘制功率谱密度(PSD)并标注平均频率。

    nSamp = 1024;Fs = 1024e3;信噪比= 40;t = (0:nSamp-1)'/Fs;x = chirp(t,50e3,nSamp/Fs,100e3);x = x+randn(size(x))*std(x)/db2mag(SNR);meanfreq (x, Fs)

    图中包含一个轴对象。标题为Mean Frequency Estimate的axis对象:75.032 kHz, xlabel Frequency (kHz), ylabel Power/ Frequency (dB/Hz)包含2个类型为line的对象。

    Ans = 7.5032e+04

    创建一个signalFrequencyFeatureExtractor对象提取信号的平均频率、99%占用带宽和3db带宽。

    sFE = signalFrequencyFeatureExtractor(SampleRate=Fs,MeanFrequency=true,占用带宽=true,PowerBandwidth=true)
    sFE = signalFrequencyFeatureExtractor with properties: properties FrameSize: [] FrameRate: [] SampleRate: 1024000 IncompleteFrameRule: "drop" FeatureFormat: "matrix" Enabled Features MeanFrequency, OccupiedBandwidth, PowerBandwidth Disabled Features MedianFrequency, BandPower, WelchPSD, PeakAmplitude, PeakLocation

    调用提取函数提取指定的特征。

    [features,info] = extract(sFE,x)
    特点=1×3104× 7.2252 4.3783 3.7773
    信息=带字段的结构:MeanFrequency: 1 OccupiedBandwidth: 2 PowerBandwidth: 3

    要在表中查看提取的特征,请修改FeatureFormat对象的属性。

    超临界流体。FeatureFormat =“表”;特征=提取(sFE,x)
    特点=表1×5FrameStartTime FrameEndTime MeanFrequency OccupiedBandwidth PowerBandwidth  ______________ ____________ _____________ _________________ ______________ 1 1024 72252 43783 37773

    您可以使用getExtractorParameters函数查看用于计算指定特性的参数。占用带宽默认为输入信号占总功率99%的带宽。使用setExtractorParameters函数将百分比更改为95%并再次提取指定的特征。

    params = getExtractorParameters(sFE,“OccupiedBandwidth”
    params =带字段的结构:比例:[]
    参数个数。百分比= 95;setExtractorParameters(超临界流体,“OccupiedBandwidth”,params) featres2 = extract(sFE,x)
    features2 =表1×5FrameStartTime FrameEndTime MeanFrequency OccupiedBandwidth PowerBandwidth  ______________ ____________ _____________ _________________ ______________ 1 1024 72252 39840 37773

    扩展功能

    C/ c++代码生成
    使用MATLAB®Coder™生成C和c++代码。

    版本历史

    R2021b中引入

    全部展开