如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数字信号处理实验报告姓名:专业:通信与信息系统学号:日期:2015.11实验内容任务一:一连续平稳的随机信号,自相关函数,信号为加性噪声所干扰,噪声是白噪声,测量值的离散值为已知,,-3.2,-0.8,-14,-16,-17,-18,-3.3,-2.4,-18,-0.3,-0.4,-0.8,-19,-2.0,-1.2,-11,-14,-0.9,-0.8,10,0.2,0.5,-0.5,2.4,-0.5,0.5,-13,0.5,10,-12,0.5,-0.6,-15,-0.7,15,0.5,-0.7,-2.0,-19,-17,-11,-14,自编卡尔曼滤波递推程序,估计信号的波形。任务二:设计一维纳滤波器。产生三组观测数据:首先根据产生信号,将其加噪(信噪比分别为20dB,10dB,6dB),得到观测数据,,。估计,,,的AR模型参数。假设信号长度为,AR模型阶数为,分析实验结果,并讨论改变,对实验结果的影响。实验任务一卡尔曼滤波原理1.1卡尔曼滤波简介早在20世纪40年代,开始有人用状态变量模型来研究随机过程,到60年代初,由于空间技术的发展,为了解决对非平稳、多输入输出随机序列的估计问题,卡尔曼提出了递推最优估计理论。它用状态空间法描述系统,由状态方程和量测方程所组成,即知道前一个状态的估计值和最近一个观测数据,采用递推的算法估计当前的状态值。由于卡尔曼滤波采用递推法,适合于计算机处理,并且可以用来处理多维和非平稳随机信号,现已广泛应用于很多领域,并取得了很好的结果。卡尔曼滤波一经出现,就受到人们的很大重视,并在实践中不断丰富和完善,其中一个成功的应用是设计运载体的高精度组合导航系统。卡尔曼滤波具有以下的特点:算法是递推的,且状态空间法采用在时域内设计滤波器的方法,因而适用于多维随机过程的估计;离散型卡尔曼算法适用于计算机处理。用递推法计算,不需要知道全部过去的值,用状态方程描述状态变量的动态变化规律,因此信号可以是平稳的,也可以是非平稳的,即卡尔曼滤波适用于非平稳过程。卡尔曼滤波采取的误差准则仍为估计误差的均方值最小。1.2卡尔曼滤波的状态方程和测量方程假设某系统时刻的状态变量为,状态方程和量测方程(输出方程)表示为其中,是状态变量;表示输入信号是白噪声;是观测噪声;是观测数据。为了推导简单,假设状态变量的增益矩阵不随时间发生变化,,都是均值为零的正态白噪声,方差分别是和,并且初始状态与,都不相关,表示相关系数。即:其中1.3卡尔曼滤波的递推算法卡尔曼滤波采用递推算法来实现,其基本思想是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号(即观测数据)的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方值最小。因此,卡尔曼滤波器的关键是计算出加权矩阵的最佳值。当不考虑观测噪声和输入信号时,状态方程和量测方程为显然,由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用表示为了提高状态估计的质量,用输出信号的估计误差来校正状态变量其中,为增益矩阵,即加权矩阵。经过校正后的状态变量的估计误差及其均方值分别用和表示,把未经校正的状态变量的估计误差的均方值用表示卡尔曼滤波要求状态变量的估计误差的均方值为最小,因此卡尔曼滤波的关键即为通过选择合适的,使得取得最小值。首先推导状态变量的估计值和状态变量的的估计误差,然后计算的均方值,通过化简,得到一组卡尔曼滤波的递推公式:假设初始条件,,,,,,已知,其中,,那么递推流程如下:,,卡尔曼滤波递推程序编程思想题目分析由于信号为加性噪声所干扰,可知,所以又因为噪声为白噪声,所以因为,所以由此可知,,即,可得到:,因为抽样间隔,所以:。(4)因此,所以因此编程分析由上面的分析可知初始条件,,,,已知,在仿真中假设,则,,由以上参数可得卡尔曼实际递推公式将得到的公式代入前面分析的递推公式,即可进行迭代得到结果。MATLAB源代码根据以上分析,编写matlab程序如下:%%%---------------卡尔曼滤波-----------------%-----说明%X(k+1)=Ak*X(k)+W(k);%Y(k)=Ck*X(k)+V(k)%%clear;clc;%基本参数值Ak=exp(-0.02);Ck=1;Qk=1-exp(-0.04);Rk=1;%初始值设置X0=0;P0=1;%观测值y(k)Y=[-3.2-0.8-14-16-17-18-3.3-2.4-18-0.3-0.4-0.8-19-2.0-1.2...-11-14-0.90.8100.20.52.4-0.50.5-130.510-120.5-0