zl程序教程

您现在的位置是:首页 >  其它

当前栏目

基于小波变换的参数估计仿真

仿真 变换
2023-09-11 14:15:36 时间

   代码总体说明,本代码采用了三种算法进行仿真说明

>通过最原始的求分形维度D,然后通过r=5-2*D求解分形信号的功率谱密度函数的r指数。

>通过论文提供的小波方法进行求解。

(以上两个部分理论不做介绍了)

>基于短时的功率谱密度分析方法。(介绍一下理论)

 

1.原始的算法的程序说明

这里是代码的前部分:

选择select,1:执行第一个算法;2:执行第二个算法;3:执行第三个算法。

这个是加载您提供的数据:仿真如下所示:

 

这个是执行第一个算法,求分形的纬度,通常求分析的纬度都是采用的维度盒子算法,这个算法已经比较古老了,资料也是巨多,这里就不多做介绍了,当然这个算法的计算结果误差也是极大的,放在这里,只是为了展示求分形信号r指数方法的历史。

其运行结果如下所示:

显然,这个结果和理论值相差比较大。

 

下面介绍论文中提供的算法的仿真。

按论文中的要求,我们首先计算信号的功率谱密度函数。这里我们是通过自相关然后FFT得到的。

这个就是求信号的自相关,其仿真效果如下所示:

 

然后计算其功率谱密度:

其仿真如下所示:

最后,通过线性拟合,计算出斜率从而得到r

其仿真效果如下所示:

其三个信号的对应的r值如下所示:

这个值和我们的理论值比较接近了。

 

下面是论文中的小波方法。

其中func_wavelet_calculate是自定义的函数,主要是求解信号的多尺度小波系数,然后对系数求方差,对于噪声比较大的情况,我们去多尺度小波系数中的几个小尺度的系数,从而减少噪声对结果的影响。其仿真效果如下所示:

上面三个图是拟合后的效果,然后计算红色直线的斜率即可,下面的三个是小波系数方差和多尺度的关系图。

当没有噪声的时候,其基本曾线性关系,当有噪声的时候,在尺度较大的情况下,会出现非线性的情况。

其计算结果如下所示:

这个结果比之前的结果更好了。

 

2.改进后的算法理论说明和相应代码说明

    通过上面的计算,我们发现其计算结果仍存在一定的误差,考虑到分形信号的自相似性,我们考虑使用短时的分析手段进行分析,具体算法流程如下所示:

假设输入的信号为:

其数值为:XXXXXXYYYYYYZZZZZZAAAAAAQQQQQVVVVVVFFFFFFBBBBBB

下面我们对输入的数据进行帧化处理:

处理的结果为:

XXXXXXY

       YYYYYYZZ

ZZZZZZAA

AAAAAAQQ

                                QQQQQVV

                                       VVVVVVFF                                               FFFFFFBB

                                                       BBBB0000

这里我们将其信号分为每帧长度为8个符号的帧,且前后两帧有两个符号重复,这种分帧方法,当然,这里每组长度和前后两帧的重叠个数是可变的。

 

其对应的matlab如下所示:

Enframe就是自定义的分帧函数。

 

然后对每帧数据求r,最后结果计算平均。

 

运行后得到的结果如下所示:

 

这个结果基本和理论结果相似,其中当没有噪声的时候,几乎和1.82相似。