🎉 信号处理趣学D1——相关函数的意义&利用自相关函数消除噪声 🎉

信号处理趣学D1——相关函数的意义&利用自相关函数消除噪声

小虎在这里介绍了相关函数的意义和工程应用,工程应用以提取受噪声干扰的周期信号为例,并用MATLAB进行仿真。

目录

什么是相关函数自相关函数互相关函数

相关函数提取周期信号原理具体例子——MATLAB仿真示例物理意义代码分析

参考文献更多

什么是相关函数

相关函数(correlation function)是用来衡量两个信号的相关程度。相关函数又分为自相关函数、互相关函数和协方差函数。这里仅介绍在测试技术中较常见的两种(前两种)。

自相关函数

自相关函数(autocorrelation function)是用来衡量统一信号在不同时刻取值的相关程度。通过这种分析,可以分析出信号中的噪声并加以去除;或者从畸变的波形中分离出基波和谐波等。可以将时移前后的信号当成两个信号分析。这是仿真理解demo。

R

x

(

τ

)

=

lim

T

1

T

0

T

x

(

t

)

x

(

t

+

τ

)

d

t

R_x(\tau)=\lim \limits_{T \to \infty } \frac{1}{T} \int_0^Tx(t)x(t+\tau)dt

Rx​(τ)=T→∞lim​T1​∫0T​x(t)x(t+τ)dt

互相关函数

互相关函数(crosscorrelation function)用来衡量两个信号之间的相关程度和取值依赖程度。对于一个理想的测试系统的输入输出信号求相关函数,测试结果完美的情况下,互相关函数取最大值时的

τ

\tau

τ时为等于系统的滞后时间,因为这说明信号并没有损失或收到噪声干扰,给输入信号加上的延时

τ

\tau

τ后与输出的信号一模一样,所以相关程度为完全相同。这是仿真理解demo。

R

x

y

(

τ

)

=

lim

T

1

T

0

T

x

(

t

)

y

(

t

+

τ

)

d

t

R_{xy}(\tau)=\lim \limits_{T \to \infty } \frac{1}{T} \int_0^Tx(t)y(t+\tau)dt

Rxy​(τ)=T→∞lim​T1​∫0T​x(t)y(t+τ)dt 另有性质之一

R

x

y

(

τ

)

=

R

y

x

(

τ

)

R_{xy}(-\tau)=R_{yx}(\tau)

Rxy​(−τ)=Ryx​(τ),所以当

y

(

t

)

y(t)

y(t)比较复杂时可以采用这种方法转换为对

x

(

t

)

x(t)

x(t)时延来计算。

相关函数提取周期信号原理

对机器进行噪声诊断时,噪声通常由随机、大量且大小近似相等影响因素叠加而成。随机噪声的自相关函数将出现规则的周期信号,幅值一般比正常噪声的幅值要大。当将变速箱各个机轴的转速化成频率与自相关函数波动频率比较,可以确定机械轴的好坏。或者利用自相关函数分析去除噪声得到周期函数的周期。

具体例子——MATLAB仿真示例

提取受到噪声干扰的周期函数

x

=

s

i

n

(

w

0

t

)

x=sin(w_0t)

x=sin(w0​t)的自相关函数,分析原周期函数的周期。

物理意义

结果如下图。为了便于计算,将

w

0

=

2

π

f

0

w_0=2\pi f_0

w0​=2πf0​计算。

可以看到,每过一个周期,原周期函数重合,相关程度最高;每过半个周期,原周期函数互为相反数,相关程度为负的最大,这里我设的函数周期正好是0.2s(即200ms),可以很好的从自相关函数-滞后时间图像中看出。横坐标0的时候,时移为零,函数图像重合,时移前后的两个函数完全相同,相关程度最大,所以出现了0时刻的正的尖峰。另外,噪声的干扰还是可以在自相关函数-滞后时间的图中看出的,可以看到曲线不是完美的曲线,而是由波动的折线拟合而成的,这是随机噪声带来的影响,但是不影响我们分析周期函数的周期。

代码分析

参数设置 取6000采样长度,1000采样频率,t为采样间隔,

w

0

=

2

π

f

0

=

10

π

w_0=2\pi f_0=10\pi

w0​=2πf0​=10π。

n=6000;

fs=1000;

t=(0:n-1)/fs;

f0=5;

函数建立 x为周期为

1

/

f

0

1/f_0

1/f0​的正弦周期函数,z为x受到随机噪声干扰后的函数。

x=sin(2*pi*f0*t);

z=x+randn(size(x));

自相关函数求解 R是求得的自相关函数;tau时延的值,截取了包括0在内的1+600x2个点。600时时延的区间,以傅里叶复指数形式表示的频谱是双边谱,傅里叶三角函数表示形式是单边谱,这里为前者,其实是后者的一分为二,这完全是数学计算的结果,没有任何实际物理意义。'coeff’归一化求得是自相关函数,‘biased’是有偏估计,'unbiased’是无偏估计。

[R,tau]=xcorr(z,600,'coeff');

作图 用两个画板画出受噪声干扰的函数和改函数的自相关函数。

subplot(2,1,1);

plot(t(1:1000),z(1:1000));

xlabel('时间/s');

ylabel('幅值');

subplot(2,1,2);

plot(tau,R);

xlabel('滞后');

ylabel('自相关函数');

完整代码

n=6000;

fs=1000;

t=(0:n-1)/fs;

f0=5;

x=sin(2*pi*f0*t);

z=x+randn(size(x));

[R,tau]=xcorr(z,600,'coeff');

subplot(2,1,1);

plot(t(1:1000),z(1:1000));

xlabel('时间/s');

ylabel('幅值');

subplot(2,1,2);

plot(tau,R);

xlabel('滞后');

ylabel('自相关函数');

参考文献

[1]张春华等,工程测试技术基础第二版

更多

信号处理趣学D0——系列专栏的说明与目录

✨ 相关推荐 ✨

SMT元件分类及认识
仿bus365

SMT元件分类及认识

🎯 09-12 👁️ 2091
word中怎么删除页眉页脚(怎样全部删除word文档的页眉页脚)
“大浪”之名:大船出海,鱼跃浪口
仿bus365

“大浪”之名:大船出海,鱼跃浪口

🎯 08-29 👁️ 3878