Python
以实战为线索,理论与实践相结合,利用Python完成实战任务,在实践的过程中,不断提高Python编程能力。
流年亦梦
陌上花开,可缓缓而归矣
展开
-
随机信号处理之功率谱估计中均方误差随信噪比变化的情况
本博客是在之前一篇博客Levinson-Durbin递推算法的基础上,另外编写了一个程序,以N=256点,P=128阶为例,分析频率估计的均方误差和信噪比之间的关系。由未加噪声的信号使用自相关法求出信号功率Power,分别取噪声功率为1-10000即(标准差a为1-100),转化为信噪比关系:每种噪声标准差情况下进行500次求功率谱并寻峰进行频率估计,求出对应的频率估计的均方误差并画出与SNR的关系曲线:MATLAB程序结果:Python程序结果:实验结果与理论情况相符合,MSE 都有一个随原创 2020-07-16 17:12:16 · 5365 阅读 · 4 评论 -
OpenCV图像处理之形态学处理
原理形态学处理又称为形态学变换(Morphological Transformations),是图像处理中一种基于形状的简单变换。它的处理对象通常是二值化图像,也即只有黑白两种颜色。通常,形态学变换有两个输入:原二值图像,卷积核;一个输出:变换后的图像。膨胀与腐蚀是最基本的两种形态学变换方法,而除此之外的形态学处理的常规操作(开运算、闭运算、梯度运算、礼帽运算以及黑帽运算等)则是这两种方法的组合。膨胀和腐蚀是针对较亮的像素的两种相反的操作,即较亮的像素范围会膨胀扩大和被暗色腐蚀变小。腐蚀:卷积核的中心原创 2020-06-29 10:51:47 · 2111 阅读 · 0 评论 -
自适应滤波及其Python实现
由于原博客在word里编辑,插入了很多Mathtype公式,而CSDN不支持Mathtype,转换格式出现了很多麻烦和排版混乱,故此博客部分采用截图展示。原理程序及结果Python程序:(1)LMS算法(2)求MSE结果:分析图1.1上图是滤波器输入信号,即滤波前含噪声的接收信号x(n)波形,从图中我们可以看出,输入信号中的噪声引起波形的随机性,对于有效信号s(n)的原波形造成了不同程度的波动,要想近乎完美的得到s(n)信号,必须进行滤波,而又因为噪声的随机性原创 2020-06-29 10:08:13 · 8051 阅读 · 1 评论 -
现代法谱估计(4)Music算法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原创 2020-06-29 09:52:46 · 9723 阅读 · 19 评论 -
现代法谱估计(3)Burg算法MATLAB及Python实现
原理前面的Yule Walker方程和Levinson Durbin算法都用到了信号的自相关序列,但是这样可能会存在自相关估计不准的问题(默认为序列长度为N,N的取值以外取不到的点都默认为0)。而Burg是一种不需要自相关函数,直接由观测数据求解反射系数的方法,是一种与预测误差格型滤波器密切相关的算法。首先将预测的概念予以推广,不再局限于由过去估计现在或未来,也可以由现在估计过去。为便于区分,将前者叫做前向预测,后者叫做后向预测,将“由随机序列的一些已知值的线性组合去估计序列的未知值”称作线性预测。将p原创 2020-06-29 09:41:15 · 12599 阅读 · 10 评论 -
现代法谱估计(2)Levinson-Durbin递推算法MATLAB及Python实现
原理Levinson-Durbin递推算法是解Yule Walker方程的快速有效的算法,Yule Walker方程是p+1元线性方程组,它的一般解法是矩阵求逆或高斯消去法。通常都尽量避免使用矩阵求逆运算,因为它的运算量较大。如果利用高斯消去法直接求解线性方程组,其运算级约在p3数量级,而运用Levinson Durbin算法,可以将运算量减少到p2。Levinson-Durbin算法是从一阶开始,由p-1阶模型的递推求解p阶模型的参数。用 ap(i)表示递推过程中在阶次为p时AR模型的第i个系数,i=原创 2020-06-29 09:14:33 · 13214 阅读 · 1 评论 -
现代法谱估计(1)Yule Walker 方程法MATLAB及Python实现
原理AR模型的系统函数可以表示为:如果在白噪声 激励下模型的输出为x(n),则模型输入、输出关系的时域表达式为:此式为AR模型的差分方程。将白噪声 激励AR模型产生的输出x(n)叫做AR过程。根据相关卷积定理,若y(n)=x(n)*h(n),则有即卷积的相关等于相关的卷积。如果对上式两边求傅里叶变换,根据维纳辛钦定理和相关定理,有即输出自功率谱等于输入自功率谱与系统能量谱的乘积。根据谱分解定理,任何平稳随机信号x(n)都可以看成是由高斯白噪声激励一个因果稳定的可逆系统H(z)产生的输出原创 2020-06-28 18:02:50 · 11616 阅读 · 0 评论 -
经典法谱估计(3)窗函数法Python实现
原理我们在做FFT变换过程中只能对有限长度的时域数据进行变换,因此,需要对时域信号进行信号截断。即使是周期信号,如果截断的时间长度不是周期的整数倍(周期截断),那么,截取后的信号将会存在泄漏。为了将这个泄漏误差减少到最小程度,我们需要使用加权函数,也叫窗函数。加窗主要是为了使时域信号似乎更好地满足FFT处理的周期性要求,减少泄漏。加窗实质是用一个所谓的窗函数与原始的时域信号作乘积的过程(频域卷积)使得相乘后的信号似乎更好地满足傅立叶变换的周期性要求。例如,一个窗函数可以定义为:g(n)是窗函数,N是窗原创 2020-06-28 17:05:00 · 5987 阅读 · 1 评论 -
经典法谱估计(2)自相关法MATLAB及Python实现
原理对于确定性信号,可以用FFT做频域分析,得到其频域特性。对于平稳随机信号,因为是无限能量的信号,故其傅里叶变换不存在(在Z平面不满足绝对可和条件)。如果是截取随机序列的一段用FFT做频域分析,那么不同段求出的频谱必然是不同的,可见这种分析并无意义。而自相关序列是一个能量有限的确定性序列,故能满足傅里叶变换条件,且由维纳辛钦定理可知,其傅里叶变换就是原序列的功率谱,因此我们采用下面这种方法,也叫BT法。平稳随机信号的自相关函数的定义为:式中,x(n)和y(n)都是平稳随机信号,“*”代表取共轭。如原创 2020-06-28 16:54:10 · 7088 阅读 · 0 评论 -
经典法谱估计(1)周期图法MATLAB及Python实现
原理对于一个无限长序列x(n),其傅里叶变换DTFT(也可称作离散时间傅里叶变换)及其反变换的定义式为:但是在我们的分析处理过程中,只能分析处理离散化的信号,也即N点取样,对于一个长度为N的有限长序列x(n),其离散傅里叶变换及其反变换的定义式为:或者也可以写为式中x(n)和X(k)是一个有限长序列的离散傅里叶变换对。长度为N的有限长序列x(n),其离散傅里叶变换X(k)是一个有限长频域序列,其长度依然为N。对X(k)的表达式分析,可知其周期为N,我们现仅是截取一个周期内的频域信号进行分析。由原创 2020-06-28 16:35:34 · 16587 阅读 · 4 评论