主要内容

orderwaveform

从振动信号中提取时域有序波形

描述

例子

xrec= orderwaveform (xfsrpmorderlist返回与输入信号中给定的一组顺序相对应的时域波形,xx是在一个集合上测量的rpm以每分钟转数表示的转速。fs为测量采样率,单位为Hz。向量orderlist指定所需的顺序,其波形将在的相应列中返回xrec.该函数使用Vold-Kalman滤波器进行计算。

xrec= orderwaveform (xfsrpmorderlistrpmrefidx返回具有多个参考RPM信号的时域波形,这些波形存储在的列中rpmrpmrefidx向量是否与每一阶有关orderlist转到RPM信号。

例子

xrec= orderwaveform (xfsrpmorderlistrpmrefidx名称,值指定使用Vold-Kalman程序的进一步选项名称,值对。

例子

全部折叠

创建一个采样频率为600hz的模拟信号,持续5秒。在观察期间,正在测试的系统将转速从每秒10转增加到40转(或等效地从每分钟600转增加到2400转)。

生成转速表读数。

Fs = 600;T1 = 5;T = 0:1/fs:t1;F0 = 10;F1 = 40;RPM = 60*linspace(f0,f1,长度(t));

该信号由四个谐波相关的啁啾组成,阶为1,1 /2,√2和2。啁啾的振幅分别为1、1/2、√2和2。为了产生啁啾,用梯形法则将相位表示为转速的积分。

Ord =[1 0.5根号(2)2];Amp =[1 0.5根号(2)2];Ph = 2*pi*cumtrapz(rpm/60)/fs;X (1,:) = amp(1)*cos(ord(1)*ph);X (2,:) = amp(2)*cos(ord(2)*ph);X (3,:) = amp(3)*cos(ord(3)*ph);X (4,:) = amp(4)*cos(ord(4)*ph);Xsum = sum(x);

重构构成信号的时域波形。

Xrec =顺序波形(xsum,fs,rpm,ord);

可视化结果。放大瞬态衰减后发生的时间间隔。

kj = 1:4次要情节(2,2,kj)情节(t) x (kj,:), t, xrec (:, kj))标题(['Order = 'Num2str (ord(kj))]) xlim([2 3])结束

图包含4个轴。标题Order = 1的坐标轴1包含2个类型为line的对象。标题Order = 0.5的坐标轴2包含2个类型为line的对象。标题Order = 1.4142的轴3包含2个类型为line的对象。标题Order = 2的轴4包含2个类型为line的对象。

创建一个模拟振动信号,由两个交叉顺序组成,对应于两个不同的电机。信号以300hz采样3秒。在测量过程中,第一个电机将其转速从每秒10转增加到100转(或等效地从600转增加到6000转)。第二个电机在同一时期内将转速从每秒50转增加到70转(或3000转到4200转)。

Fs = 300;Nsamp = 3*fs;Rpm1 = linspace(10,100,nsamp)'*60;Rpm2 = linspace(50,70,nsamp)'*60;

所测信号相对于第一个电机的阶数为1.2,振幅为2√2。对于第二个电机,信号为0.8阶,振幅为4√2。

4 x = [2] * sqrt(2)。* cos(2 *π* cumtrapz ([1.2 * 0.8 rpm1 * rpm2] / 60) / fs);

使第一个电机在频率范围的中间激发一个共振。

y = (1 + 1. / (1 + linspace(-10、10、nsamp)。^ 4)“/ 2 (nsamp 1)]。* x;X = sum(y,2);

可视化使用的顺序rpmfreqmap

rpmfreqmap (x, fs, rpm1)

图频率图包含uimenu, uitoolbar, uiflowcontainer类型的对象。

重构构成信号的时域波形。使用Vold-Kalman算法对交叉阶进行解耦。

Xrec = order波形(x,fs,[rpm1 rpm2],[1.2 0.8],[1 2],,“脱钩”,真正的);

绘制原始波形和重建波形。

Kj = 1:2图(Kj) subplot(2,1,1) plot((0:nsamp-1)/fs,y(:, Kj))传说(“原始”)标题(“汽车”int2str (kj)])次要情节(2,1,2)情节((0:nsamp-1) / fs, xrec (:, kj))传说(“重建”结束

图包含2个轴。标题为Motor 2的轴1包含一个类型为line的对象。该对象表示Original。axis2包含一个line类型的对象。该对象表示“重构”。

输入参数

全部折叠

输入信号,指定为行或列向量。

例子:因为(π/ 4 * (0:159))+ randn (1160)指定嵌入高斯白噪声中的正弦波。

采样率,用正标量表示,单位为Hz。

转速,以每分钟转数为单位的正矢量表示。rpm长度必须和x

  • 如果你有一个转速计脉冲信号,使用tachorpm提取rpm直接。

  • 如果您没有转速计脉冲信号,请使用rpmtrack提取rpm从振动信号。

例子:100:10:3000指定系统最初以每分钟100转的速度旋转,并以每分钟10转的增量运行到每分钟3000转。

顺序列表,指定为向量。orderlist不能有大于的值fs/(2 × max(rpm/ 60))。

数据类型:|

RPM列索引,指定为大小相同的向量orderlist

数据类型:|

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“脱钩”,的确,FilterOrder, 2同时提取指定阶波形,并使用二阶Vold-Kalman滤波器。

vord - kalman滤波器顺序,指定为逗号分隔的对,由“FilterOrder”,要么12

数据类型:|

近似半功率带宽,指定为由逗号分隔的对组成“带宽”或者是一个实标量,或者是一个元素数相同的实向量orderlist.较小的值“带宽”产生平滑的窄带输出。然而,这个输出可能不能准确地反映阶幅的快速变化。

数据类型:|

模式解耦选项,指定为由逗号分隔的对组成“脱钩”和一个逻辑值。如果此选项设置为真正的,然后orderwaveform同时提取顺序波形,使其能够分离紧密间隔或交叉的顺序。

数据类型:逻辑

重叠段的长度,指定为由逗号分隔的对组成“SegmentLength”一个整数。如果指定段长度,则orderwaveform将输入信号分成若干段。然后计算每个段的重建波形,并结合结果产生输出。如果段太短,函数可能无法正确捕获局部事件,例如交叉顺序。

数据类型:|

输出参数

全部折叠

重构的时域顺序波形,以矩阵形式返回,每列一个波形。

参考文献

[1]菲尔鲍尔,克里斯蒂安,罗伯特Höldrich。沃尔德-卡尔曼跟踪滤波器的实现-最小二乘问题COST G-6数字音频效果会议记录(DAFX-00).2000年12月7日至9日,意大利维罗纳。

[2] Vold, Håvard,还有Jan Leuridan。“使用卡尔曼跟踪滤波器在极端回转速率下的高分辨率顺序跟踪。”冲击与振动.第2卷,1995年,第507-515页。

扩展功能

在R2016b中引入