重采样非均匀采样信号

这个例子展示了如何重新采样非均匀信号到一个新的均匀速率。它展示了如何在不规则采样的数据上应用自定义过滤器来减少混叠。它还展示了如何使用失谐消除瞬态在开始和结束的信号。

重采样非均匀采样信号,以期望速率

重新取样函数允许您将非均匀采样信号转换为新的均匀速率。

创建在约48kHz的不规则采样500Hz的正弦波。我们可以通过将随机值均匀矢量模拟不规则。

rng默认nominalFs = 48000;F = 500;TX = 0:1 / nominalFs:0.01;irregTx =排序(TX + 1E-4 *兰特(大小器(Tx)));x =罪(2 *π* f * irregTx);图(irregTx,X,''

要重新取样非均匀采样信号,你可以调用重新取样与时间向量的输入。

下一个示例将原始信号转换为统一的44.1 kHz速率。

desiredFs = 44100;[y, Ty] = resample(x,irregTx,desiredFs);图(irregTx,X,'.-'泰y“邻”)图例('原版的'重新取样的)ylim ([-1.2 - 1.2])

您可以看到,我们重新采样的信号与原始信号的形状和大小相同。

选择插值方法

转换算法重新取样当输入样本尽可能地接近规则间隔时效果最好,因此观察采样数据中缺失输入样本的一部分时可能发生的情况是很有意义的。

在下一个例子中的凹口从输入正弦波的第二波峰和应用重采样。

irregTx (105:130) = [];x =罪(2 *π* f * irregTx);[y, Ty] = resample(x,irregTx,desiredFs);图(irregTx,X,”。”)举行情节(泰,y,'.-')举行传奇('原版的'重新取样的)ylim ([-1.2 - 1.2])

缺失的部分通过线性插值来连接。的默认方法是线性插值重新取样功能重新取样非均匀采样的数据。

在某些情况下,你在你的输入数据缺失或间隙过大,则可以通过选择不同的插值方法恢复一些丢失的数据。

对于低噪声、低带宽的信号,样条可以非常有效地用于重建原始信号。若要在重采样时使用三次样条,请提供“样条”插值方法:

[Y,泰 - ] =重采样(X,irregTx,desiredFs,样条的);图(irregTx,X,”。”)举行情节(泰,y,'.-')举行传奇('原版的'”重新取样使用样条”)ylim ([-1.2 - 1.2])

控制插入电网

默认情况下,重新取样构造一个中间网格,它是期望的采样率和信号的平均采样率之间的比值的一个近似的近似值。

如果输入样本的一部分包含高频分量,可以通过选择整数系数来控制中间网格的间距,pq,来选择这个合理的比率。

检查一个underdampened二阶滤波器的阶跃响应,在约3 Hz的频率进行振荡:

W = 2 * PI * 3;d = 0.1002;Z = SIN(d);一个= COS(d);T = [0:0.05:2 3:8];X = 1  -  EXP(-z * W * T)* COS(W * A * T-d)/ A;图(T,X,'.-'

在其被摆动以高速率和低速率,其中它不是步骤响应取样。

现在重新采样信号在100赫兹只使用默认设置:

Fs = 100;[y, Ty] = resample(x,t,Fs);图(T,X,”。”)举行图(泰,Y)保持传奇('原版的'“重采样(默认设置)”

在波形开始振荡的包络衰减和振荡比原始信号更慢。

重新取样在默认情况下,插值到与输入信号的平均采样率相对应的规则间隔间隔的网格中。

avgFs = (numel(t)-1) /(t(end)-t(1))
avgFs = 5.7500

网格的采样率应大于两倍要测量的最大频率更高。网格的采样率,每秒5.75的样品,是奈奎斯特采样率,6 Hz时,振铃频率的下方。

为了使电网具有更高的采样率,可以提供整数参数,pq重新取样调整网格以Q * FS / P,的采样率内插的信号,然后应用它的内部采样率转换器(用P上采样和由Q下采样),以回收所需的采样速率,FS。利用选择pq

由于振荡的振铃为3hz,指定采样率为7hz的栅极,该栅极的采样率略高于奈奎斯特速率。由于衰减的指数包络线,1hz的净空占了额外的频率内容。

Fgrid = 7;[P,Q] =大鼠(FS / Fgrid)
p = 100
Q = 7
[y, Ty] = resample(x,t,Fs,p,q);图(T,X,'')举行图(泰,Y)保持传奇('原版的'“重采样(自定义P和Q)”

指定抗混叠滤波器

在下一个示例中,您可以查看一个数字转换器的输出,该转换器测量飞机引擎上的油门设置。节流阀设置是不均匀采样约100赫兹的公称率。我们将尝试以均匀的10赫兹频率重新采样这个信号。

这是我们的原始信号的样本。

加载engineRPM图(T,X,'')包含(“时间(s)”)ylabel ('RPM'

我们的信号被量化。现在放大到在所述时间间隔从20秒至23秒上升区域:

图(T,X,'')XLIM([20 23])

信号在这个区域内缓慢地变化。这允许你去除一些量化噪声使用反锯齿过滤器在重采样器。

desiredFs = 10;[Y,TY] =重采样(X,T,desiredFs);图(T,X,'')举行图(TY,Y,'.-')举行包含('时间')ylabel ('RPM')图例('原版的'重新取样的)XLIM([20 23])

这种方法相当有效。然而,重新采样的信号可以通过提供进一步平滑重新取样低截止频率的滤波器。

首先,将网格间距设置为我们的标称100hz采样率。

nominalFs = 100;

其次,确定一个合理的pq以获得期望的速度。由于名义利率为100Hz和我们所期望的速度是10赫兹,你需要消灭10。这等同于设定p1,并且设置q10。

P = 1;Q = 10;

您可以提供重新取样用自己的过滤器。有适当的时间对准中,滤波器应该是奇数长度。滤波器长度应大于几次pq(取较大值)。设定的截止频率为1 /q所需截止,然后乘以所得的通过系数p

%确保奇数长度的过滤n = 10 * q + 1;%使用。25的尼奎斯特范围的期望采样率cutoffRatio = 0.25;%构建体的低通滤波器lpFilt = P * FIR1(N,cutoffRatio * 1 / Q);%重采样和情节响应[y,泰]=重新取样(x, t, desiredFs, p, q, lpFilt);图(T,X,'')举行情节(泰,y)包含('时间')ylabel ('RPM')图例('原版的'“重新取样(自定义过滤器)'位置''最好')XLIM([20 23])

删除端点影响

现在缩小查看我们的原始信号。请注意,有显著在端点处偏移。

图(T,X,'',TY,Y)xlabel('时间')ylabel ('RPM')图例(“原始”“重新采样(自定义过滤器)”'位置''最好'

这些文物的产生是因为重新取样假设信号在信号边界外为零。为了减少这些不连续性的影响,需要在信号的端点之间减去一条线,然后重新采样,然后将这条线添加到原始函数中。可以通过计算第一个样本和最后一个样本之间直线的斜率和偏移量,然后使用polyval构造要相减的直线。

%计算斜率和偏移(Y = A1 X + a2)中一(1)=(X(结束)-x(1))/(T(端)-t(1));A(2)= X(1);信号消失xdetrend = X  -  polyval(A,T);情节(T,xdetrend)

去趋势的信号,现在既有了接近零的端点,从而降低引入了瞬变。呼叫重新取样然后加回的趋势。

[ydetrend,TY] =重采样(xdetrend,T,desiredFs,P,Q,lpFilt);Y = ydetrend + polyval(一,TY);图(T,X,'',TY,Y)xlabel('时间')ylabel ('RPM')图例('原版的'“重采样(非重复采样,自定义过滤器)”'位置''最好'

摘要

这个例子展示了如何使用重新取样均匀且非均匀采样信号转换为固定速率。

进一步的阅读

有关使用自定义的样条曲线重构非均匀间隔样本的更多信息,可以咨询曲线拟合工具箱™文档。