主要内容

非均匀采样信号的重采样与滤波

一个人在2012年闰年记录了自己的体重。这个人并没有记录他们每天的体重,所以数据是不统一的。使用信号分析仪应用程序对记录的重量进行预处理和研究。该应用程序可以通过将信号插值到统一网格中来填补缺失的数据点。(如果信号只有很小的间隙,这个过程会得到最好的结果。)

加载数据并将测量值转换为千克。数据文件将缺失的读数设置为.数据缺失了27个点,其中大部分是在8月份的两周内。

wt = datetime(2012、1、1:366)”;负载weight2012.dat重量= weight2012 (:, 2) / 2.20462;validpoints = ~ isnan(重量);失踪= wt (~ validpoints);失踪(15:26)
ans =12 x1 datetime2012年9月- 8月- 10月-2012年11月- 8月-2012年12月- 8月-2012年15月- 8月-2012年16月-2012年8月- 17月-2012年8月- 18日-2012年8月- 19日-2012年8月- 22日-2012年8月- 23日

将数据存储在MATLAB®时间表中。删除遗漏的点。删除直流值以集中于波动。将时间信息转换为a持续时间数组减去第一个时间点。有关更多细节,请参见信号分析器支持的数据类型

重量=重量(validpoints);WGT = WGT -平均值(WGT);wt = wt (validpoints);Wt = Wt - Wt (1);wg =时间表(wt、重量);

开放信号分析仪并将时间表拖到显示中。在显示选项卡上,单击光谱打开频谱视图。在时间选项卡上,选择显示标记.通过设置缩放到缺失的拉伸时间限制200而且250天。

右键单击signal表中的信号并选择重复的.将副本重命名为预处理右键单击信号表中的信号并选择重命名.在“信号”表中选择预处理信号,并在分析仪选项卡上,单击进行预处理.在功能画廊,选择重新取样.在函数参数面板,指定这些参数:

  • 重采样方法- - - - - -采样率

  • 频率的单位- - - - - -周期/天

  • 采样率- - - - - -1

  • 插值法- - - - - -形状保持立方方法

点击应用然后点击接受所有命令,保存结果并退出预处理模式。通过选择其名称旁边的复选框,将重新采样的信号覆盖在显示器上。

缩小显示全年的数据。在光谱选项卡,将泄漏设置为最大值。在大多数频率下,原始信号和重采样信号的光谱一致。频谱显示两个明显的峰值,一个在0.14周期/天左右,另一个在非常低的频率。为了更好地定位山峰,在显示选项卡上,单击数据游标并选择两个.将游标放在峰值上。将鼠标悬停在每个游标的频率场上以获得其位置的更精确值。

  • 中频峰值为0.143 = 1/7 cycles/day,相当于一周的周期。

  • 低频峰值为0.005个周期/天,相当于210天的周期。

通过单击删除游标数据游标.从显示屏上移除原始信号。过滤预处理信号来消除循环的影响。在信号表中选择预处理信号,在分析仪选项卡上,单击进行预处理.在预处理模式内:

  1. 为了去除低频循环,对信号进行高通滤波。选择高通滤波功能画廊。在函数参数面板,输入的通频带频率0.05周期/天.其他参数保持默认值。点击应用

  2. 为了消除周周期,带阻滤波信号。选择Bandstop功能画廊。在函数参数面板中,输入较低的通频带频率0.135周期/天和更高的通频带频率0.15周期/天.其他参数保持默认值。点击应用

检查结果并单击接受所有.在显示器上画出两个信号。

预处理后的信号比原始信号波动小。信号的形状表明,人的体重在夏季的变化要小于冬季,但这可能是重采样的人为因素。上的图标信息的Signal表项中的列预处理信号,以查看对其执行的预处理步骤。

signalAnalyzer_weights5_22a.png

若要查看预处理步骤的完整摘要,包括所选的所有设置,请单击生成函数分析仪选项卡。生成的函数出现在MATLAB®编辑器中。

函数(y, ty) =预处理(x, tx)预处理输入x这个函数需要一个输入向量x和一个时间值向量% txx . tx是以秒为单位的数字向量。遵循时间表文档(在中键入'doc时间表')%命令行)学习如何索引到表变量及其时间%的值,以便您可以将它们传递到此函数。%由MATLAB(R) 9.13和信号处理工具箱9.0生成。%生成于:03-Jan-2022 15:47:27targetSampleRate = 1.1574074074074073 e-05;(y, ty) =重新取样(x, tx targetSampleRate,“pchip”);Fs = 1 /意味着(diff (ty));平均抽样率%y =高通滤波(y, 5.787 e-07, Fs,“Steepnes”, 0.85,“StopbandAttenuation”、60);y = bandstop(y,[1.5625e-06 1.73611111111111e-06],Fs,陡峭的, 0.85,“StopbandAttenuation”、60);结束

另请参阅

应用程序

功能

相关的例子

更多关于

Baidu
map