主要内容

取信号的导数

您希望在不增加噪声功率的情况下区分信号。MATLAB®的函数差异放大噪声,导致更高导数的不准确度恶化。若要解决此问题,请使用微分器滤波器。

分析地震时建筑物地板的位移。求速度和加速度作为时间的函数。

加载文件地震.该文件包含以下变量:

  • 漂流:地板位移,以厘米为单位

  • T:时间,以秒为单位

  • 财政司司长:采样率,等于1 kHz

装载(“地震,垫子”)

使用普韦奇显示信号功率谱的估计值。注意大部分信号能量是如何包含在100 Hz以下的频率中的。

pwelch(漂移 ,[],[],[], Fs)

图中包含axes对象。标题为Welch功率谱密度估计的axes对象包含line类型的对象。

使用设计过滤器设计50阶FIR微分器。为了包含大部分信号能量,指定通带频率为100 Hz,阻带频率为120 Hz。使用fvtool

Nf=50;Fpass=100;Fstop=120;d=designfilt(“differentiatorfir”,“过滤器订单”Nf,...“PassbandFrequency”成就,“阻带频率”,Fstop,...“采样器”Fs);fvtool (d,“震级显示”,“零相位”,“Fs”,财政司司长)

图过滤器可视化工具-零相位响应包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“零相位响应”的轴对象包含两个类型为line的对象。

微分漂移以求速度。将导数除以dt,连续采样之间的时间间隔,以设置正确的单位。

dt = t - t (1) (2);vdrift =过滤器(d,漂移)/ dt;

滤波后的信号被延迟。使用grpdelay确定延迟为过滤器顺序的一半。通过丢弃样本进行补偿。

延迟=意味着(grpdelay (d))
延迟= 25
tt=t(1:结束延迟);vd=vdrift;vd(1:延迟)=[];

输出还包括一个长度等于滤波器阶数或两倍群延迟的瞬态。延迟上述样品被丢弃。丢弃延迟更多的是为了消除瞬态。

tt(1:延迟)=[];vd(1:延迟)=[];

绘制漂移和漂移速度。使用findpeaks验证漂移的最大值和最小值对应于其导数的过零点。

[pkp,lcp]=FindPeak(漂移);zcp=零(大小(lcp));[pkm,lcm]=FindPeak(-漂移);zcm=零(大小(lcm));子批次(2,1,1)绘图(t,漂移,t([lcp lcm]),[pkp-pkm],“或者”)包含(“时间(s)”) ylabel (‘位移(厘米)’)网格子地块(2,1,2)图(tt、vd、t([lcp lcm]),[zcp zcm],“或者”)包含(“时间(s)”) ylabel (‘速度(厘米/秒)’)网格

图中包含2个轴对象。轴对象1包含3个线型对象。轴对象2包含3个线型对象。

区分漂移速度以找到加速度。滞后时间是两倍。丢弃两倍的样本以补偿延迟,丢弃相同的样本以消除瞬态。绘制速度和加速度。

漂移=滤波器(d,vdrift)/dt;at=t(1:end-2*延迟);ad=漂移;ad(1:2*延迟)=[];at(1:2*延迟)=[];ad(1:2*延迟)=[];子批次(2,1,1)绘图(tt,vd)xlabel(“时间(s)”) ylabel (‘速度(厘米/秒)’)网格子地块(2,1,2)图(at,ad)ax=gca;ax.YLim=2000*[-1];xlabel(“时间(s)”) ylabel ('加速度(厘米/秒^2)')网格

图中包含2个轴对象。axis对象1包含一个类型为line的对象。axis对象2包含一个类型为line的对象。

使用差异。添加零以补偿阵列大小的变化。将结果与使用滤波器获得的结果进行比较。注意高频噪声的数量。

vdiff = diff / dt([漂移;0]);adiff = diff / dt ([vdiff; 0]);Subplot (2,1,1) plot(at,ad) ax = gca;斧子。YLim = 2000*[-1 1];包含(“时间(s)”) ylabel ('加速度(厘米/秒^2)')网格图例(“过滤器”)标题(“带微分滤波器的加速”)子地块(2,1,2)图(t,adiff)ax=gca;ax.YLim=2000*[-11];xlabel(“时间(s)”) ylabel ('加速度(厘米/秒^2)')网格图例(“差别”)

图中包含2个轴对象。带有标题加速和差异过滤器的轴对象1包含类型为line的对象。此对象表示过滤器。轴对象2包含类型为line的对象。此对象表示差异。

另见

||||

相关的话题