现代法谱估计(4)Burg算法MATLAB及Python实现

原理

原博客是用word编辑成的,插入了很多Mathtype公式,而CSDN不支持此格式,转换格式后出现了很多麻烦和错误,故此博客直接放了截图,请见谅。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序和结果

MATLAB
程序:
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述
Python
程序:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

分析

由上图可见,我给程序输入的N为256,信号中f1=0.1,f2=0.13,为了看得明显,我把f1幅值调大了,在图中我们可以看到对应的位置出现了峰值,寻峰得到频率估计均为0.1和0.3左右。程序中我取的 的范围是0到π弧度,所以也只是画出了0.1到0.5的频率范围。利用寻峰函数findpeaks来得出峰值对应的横坐标(Python中是自己写了一个寻峰估计频率的方法),程序中将所有的峰值及其索引分别放入到两个数组中,且根据峰值大小降序排列,确定最大的两个峰值和其索引位置,然后由索引位置除以2N (我写出的程序中取的 的范围是0到π弧度,也即单位圆上半部分,频率范围对应为0-0.5,而对应的序列长度为N,因此根据比例关系可知,索引值/N=频率值/0.5也即,频率值=索引值/2N,和上面的使用freqz函数的结果相同)。

猜你喜欢

转载自blog.csdn.net/qq_44628230/article/details/107013924