电子头条

干货 | 信号的相关运算及在单片机程序运用中算法分析

2023-08-29
    阅读数:

更多精彩内容 请点击上方 蓝字 关注我们吧!


相关函数是鉴别信号的有力工具,被广泛应用于雷达回波的识别,通信同步信号的识别等领域。相关是一种与卷积类似的运算。与卷积不同的是没有一个函数的反转。



互相关运算



互相关函数给出了在频域内两个信号是否相关的一个判断指标,把两测点之间信号的互谱与各自的自谱联系了起来。它能用来确定输出信号有多大程度来自输入信号,对修正测量中接入噪声源而产生的误差非常有效。

互相关是表示两个不同函数的相似性参数。可证明,R12(τ)=R21(–τ)。

相关与卷积的关系如下:

R12(t)= f1(t)* f2(–t)

R21(t) = f1(–t)* f2(t)

若f1(t)和 f2(t)均为实偶函数,则卷积与相关完全相同。

在单片机中处理的信号为数字信号,所以从离散的角度来讲就涉及到卷积和。已知定义在区间( – ∞,∞)上的两个函数f1(k)和f2(k),则定义和

为f1(k)与f2(k)的卷积和。下面借助MATLAB工具来定性感受一下。matlab中的参数都是以数组的形式存储的,标量可以看作是一维数组。

  1. x1=[1 1.5 2]; %离散数据一

  2. x2=[1 1 1];  % 离散数据二

  3. [a,b] = xcorr(x1,x2);% 两个数据求互相关

  4. a

  5. =

  6. 1.0000  2.5000  4.5000  3.5000  2.0000

  7. b

  8. =

  9. -2  -1  0  1  2

a、b的结果大家应该不会困惑吧,结果就是卷积求得的结果,在此处a、b可以看成数组,我给大家举个例子:

其他的结果大家可以依次类推。



自相关运算



自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度;若互相关函数中f1(t)= f2(t) = f(t),则得自相关函数。

显然,R(-τ)= R(τ)偶函数。

  1. %%%%%互相关运算%%%%%%

  2. >> x = [1 3 5];

  3. >> [a,b] = xcorr(x)

  4. =

  5. 5  18  35  18  5

  6. =

  7. -2  -1  0  1  2

  1. t=0:100;% 时间

  2. x=cos(t);% 信号

  3. [a,b]=xcorr(x,'unbiased');

  4. plot(b,a)

生成图像如下所示:

参数’unbiased’的作用在于基于缺省参数时的计算结果,每个组的计算再除上该组的序号组数,比如b(1)时组数为1,记为N=1,则a(1)=1*5/N=5;b(2)时就是a(2)=18/N=18/2=9;类似等等;

  1. t=0:100;% 时间

  2. x=cos(t);% 信号

  3. [a,b]=xcorr(x,'biased');

  4. plot(b,a)

参数’biased’的作用在于缺省参数的基础上除以序列x的长度,即a(1)=5/3;

  1. t=0:100;% 时间

  2. x=cos(t);% 信号

  3. [a,b]=xcorr(x,'coeff');

  4. plot(b,a)

此时用于求序列x的自相关序列,其结果是针对’biased’的情况进行归一化,使得b=0时即中间的值a(3)=1,因此a(1)=5/11.6667,所有的分组数据在’biased’基础上都通过11.6667归一运算。




不进位乘法求卷积和



实际在单片机中要处理的为2048个长度的Chirp信号,对有限长序列,卷积和的计算用:不进位乘法。不进位乘法的算法思想是这样的,对于两个序列,将两序列样值以各自k的最高值按右端对齐,然后把逐个样值对应相乘,但不进位,最后把同一列上的乘积值按对位求和。例如:



总结



众号内回复您想搜索的任意内容 ,如问题关键字、技术名词、bug代码等, 就能轻松获得与之相关的专业技术内容反馈 。快去试试吧!

如果您想经常看到我们的文章,可以进入 我们的主页,点击屏幕右上角“三个小点”,点击“设为星标”。


欢迎扫码关注


展开↓