signalFrequencyFeatureExtractor
描述
使用signalFrequencyFeatureExtractor
从信号中提取频域特征。你可以使用提取的特征来训练机器学习模型或深度学习网络。
创建
描述
创建一个超临界流体
= signalFrequencyFeatureExtractorsignalFrequencyFeatureExtractor
具有默认属性值的对象。
属性的非默认属性值超临界流体
= signalFrequencyFeatureExtractor (名称=值
)signalFrequencyFeatureExtractor
对象。例如,signalFrequencyFeatureExtractor (FrameSize = 30, FrameOverlapLength = 6)
将信号划分为重叠的30个样本帧,并从每个帧中提取特征。
属性
主要特性
FrameSize
- - - - - -一帧中的样本数
正整数
一帧中的样本数,用正整数表示。该对象将信号分成指定长度的帧,并为每帧提取特征。如果您没有指定FrameSize
,或者您指定FrameSize
当为空时,对象为整个信号提取特征。
数据类型:单
|双
帧速率
- - - - - -帧开始之间的采样数
正整数
帧开始之间的采样数,指定为正整数。帧速率决定样本中帧的起始点之间的距离。如果你指定帧速率
,那么你还必须指定FrameSize
.如果您没有指定帧速率
或FrameOverlapLength
,然后帧速率
假设等于FrameSize
.你不能指定帧速率
而且FrameOverlapLength
同时进行。
数据类型:单
|双
FrameOverlapLength
- - - - - -连续帧之间的重叠采样数
正整数
连续帧之间的重叠采样数,指定为正整数。FrameOverlapLength
必须小于或等于帧大小。如果你指定FrameOverlapLength
,那么你还必须指定FrameSize
.你不能指定FrameOverlapLength
而且帧速率
同时进行。
数据类型:单
|双
SampleRate
- - - - - -采样率
[]
(默认)|积极的标量
输入采样率,指定为正标量,单位为赫兹。
数据类型:单
|双
FeatureFormat
- - - - - -生成特征的格式
“矩阵”
(默认)|“表”
IncompleteFrameRule
- - - - - -规则来处理不完整的帧
“下降”
(默认)|“zeropad”
规则处理不完整的帧,指定为“下降”
或“zeropad”
.当当前帧大小小于指定值时,应用此规则FrameSize
财产。
下降
—删除不完整的帧,不要使用它来计算特征。zeropad
-零垫不完整的帧,并使用它来计算特征。
数据类型:字符
|字符串
需要提取的特征
MeanFrequency
- - - - - -选择提取平均频率
假
(默认)|真正的
选项来提取功率谱的平均频率,指定为真正的
或假
.如果你指定MeanFrequency
对象提取功率谱的平均频率,并将其附加到函数返回的特征提取
函数。
数据类型:逻辑
MedianFrequency
- - - - - -选项提取中值频率
假
(默认)|真正的
选项来提取功率谱的中位数频率,指定为真正的
或假
.如果你指定MedianFrequency
对象提取功率谱的中值频率,并将其附加到函数返回的特征提取
函数。
数据类型:逻辑
BandPower
- - - - - -选项提取平均波段功率
假
(默认)|真正的
选项来提取平均频带功率,指定为真正的
或假
.如果你指定BandPower
方法返回的特征中,对象提取波段功率并将其附加到提取
函数。
数据类型:逻辑
OccupiedBandwidth
- - - - - -提取占用带宽的选项
假
(默认)|真正的
选项提取99%已占用带宽,指定为真正的
或假
.如果你指定OccupiedBandwidth
对象提取99%已占用的带宽,并将其附加到返回的特征提取
函数。
如果需要设置占用带宽抽取参数,请使用setExtractorParameters
.
setExtractorParameters(超临界流体,“OccupiedBandwidth”名称=值)
占用带宽提取可设置参数为:
百分比
—功率百分比,为之间的正整数0
而且One hundred.
.
数据类型:逻辑
PowerBandwidth
- - - - - -选项提取半功率带宽
假
(默认)|真正的
选项提取3db(半功率)带宽,指定为真正的
或假
.如果你指定PowerBanwidth
对象提取3db带宽值,并将其附加到返回的特征提取
函数。
设置半功率带宽提取参数,使用setExtractorParameters
.
setExtractorParameters(超临界流体,“PowerBandwidth”名称=值)
半功率带宽提取可设置参数为:
RelativeAmplitude
-相对振幅,以整数形式指定。
数据类型:逻辑
WelchPSD
- - - - - -选项提取功率谱密度估计
假
(默认)|真正的
选项提取功率谱密度(PSD)估计,指定为真正的
或假
.如果你指定WelchPSD
对象使用Welch's方法提取PSD估计,并将其附加到返回的特征提取
函数。
要设置韦尔奇PSD估计的参数,请使用setExtractorParameters
.
setExtractorParameters(超临界流体,“WelchPSD”名称=值)
韦尔奇PSD估计提取的可设置参数为:
FFTLength
—DFT点数,以正整数形式指定。FrequencyVector
-估计PSD的频率,指定为至少有两个元素的向量。你可以指定FrequencyVector
只有当FFTLength
未指定。OverlapLength
—重叠样本的个数,指定为正整数。窗口
-窗口,指定为标量或向量。
数据类型:逻辑
PeakAmplitude
- - - - - -选项提取峰值振幅
假
(默认)|真正的
选项提取峰值谱振幅,指定为真正的
或假
.如果你指定PeakAmplitude
为真时,对象提取计算出的Welch PSD估计的峰值振幅,并将它们附加到返回的特征提取
函数。
要设置峰值振幅提取的参数,使用setExtractorParameters
.
setExtractorParameters(超临界流体,“PeakAmplitude”名称=值)
峰值提取可设置参数为:
PeakType
—峰值类型,指定为“最小值”
或“最大值”
.MaxNumExtrema
—最大峰值数,指定为正整数标量。MinProminence
-最小突出度,指定为正标量。该对象只返回突出度至少为指定值的峰值。MinSeparation
-峰值之间的最小间隔,指定为正标量。FlatSelection
-平面区域指示器,指定为以下其中之一:“中心”
-仅将平坦区域的中心元素表示为峰值。“第一”
-仅将平坦区域的第一个元素表示为峰值。“最后一次”
-仅将平坦区域的最后一个元素表示为峰值。“所有”
-将平坦区域的所有元素表示为峰值。
数据类型:逻辑
PeakLocation
- - - - - -选项提取峰值位置
假
(默认)|真正的
选项提取光谱峰值位置,指定为真正的
或假
.如果你指定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)
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++代码。
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
本功能完全支持GPU阵列。金宝app有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
版本历史
R2021b中引入R2023a:使用gpuArray
输入
的signalFrequencyFeatureExtractor
对象支持金宝appgpuArray
输入。您必须拥有并行计算工具箱™才能使用此功能。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。