ADSP仿真报告
- 格式:doc
- 大小:358.00 KB
- 文档页数:11
目录仿真一:LMS算法和RLS算法 (1)1 自适应滤波的基本原理 (1)1.1 自适应最小均方(LMS)算法 (1)1.2 递归最小二乘方(RLS)算法 (2)2 仿真实验 (4)3 结果分析 (6)仿真二:P阶Levinson-Durbin算法 (8)1 要求: (8)2 算法描述 (8)2.1 产生信号 (8)2.2 L-D算法 (9)2.3 对比信号谱功率和LD算法谱估计 (10)3 结果分析 (11)3.1 AR模型 (11)3.2 MA模型 (12)3.3 总结 (13)仿真一:LMS 算法和RLS 算法1 自适应滤波的基本原理自适应滤波器由参数可调的数字滤波器/自适应处理器和自适应算法两部分组成,如图1所示。
输入信号x(n)通过参数可调数字滤波器后产生的输出信号为y(n),将其与参考信号d(n)进行比较,得到误差信号e(n)。
误差信号e(n)经过一定的自适应算法后反馈到参数可调数字滤波器,对滤波器进行参数调整(有时还需要利用x(n)),以使得e(n)最终的均方值最小。
这是一种自动控制理论,因此,滤波器在设计时不需要事先知道输入信号和噪声的统计特性,而能够根据输入信号的统计特性变化自动跟踪这种变化,自动调整参数,使滤波器性能达到最佳。
图 1 自适应滤波器框图图1所示自适应滤波器,输入信号为:x(n)和d(n),两个输出为:y(n)和e(n)。
当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。
1.1 自适应最小均方(LMS )算法最陡下降法每次迭代都需要知道性能曲面上某点的梯度值,而梯度值只能根据观测数据进行估计。
LMS 算法是一种有用简单的估计梯度的方法,其最核心的思想是采用平方误差最小代替均方误差最小准则。
信号基本关系:()()()()()()(1)()2()()T y n W n X n e n d n y n W n W n e n X n μ==-+=+式中,W(n) 为 n 时刻自适应滤波器的权矢量,011()[(),(),....()]TN W n w n w n w n -=,下一时刻权矢量 W(n +1) 等于当前权矢量 W (n ) 加上一个修正量,该修正量是误差信号e (n )的加权值,加权系数 2μx(n) 正比于当前的输入信号 x(n)。
ADSP仿真作业专业:电磁场与微波技术学生成员:刘航(M201571827) 完成时间:2019年12月8日目录目录 (1)图目录 (2)1题目1 (3)1.1题目 (3)1.2算法模型 (3)1.2.1自适应滤波原理 (3)1.2.2LMS算法简介 (3)1.2.3LSL算法简介 (4)1.3本题模型 (5)1.4仿真过程及结果分析 (6)1.4.1仿真过程 (6)1.4.2结果分析 (8)2题目2 (9)2.1题目 (9)2.2算法模型 (9)2.2.1特征分解频率估计原理 (9)2.2.2Music算法简介 (10)2.2.3PHD算法简介 (10)2.3仿真过程及结果分析 (11)2.3.1仿真过程 (11)2.3.2结果分析 (13)3附录 (14)3.1题目1源程序 (14)3.2题目2源程序 (15)图目录图 1.1自适应滤波器框图 (3)图 1.2 题目一模型 (5)图 1.3 LSL和LMS算法估计信号模型参数的性能比较 (8)图 1.4 初始预测误差 对LSL收敛性能的影响 (9)图 2.1 MUSIC算法得到的谱峰 (13)1题目11.1 题目Implement LSL algorithm and LMS algorithm based on figure 3.30(P92) and figure 3.31(P93). Model and parameters see page 91.P91模型如下:二阶自回归随机过程x(n)=a1x(n-1)+a2x(n-2)+w(n),对应的滤波器参数a1=1.558,a2 =-0.81。
分别用LMS算法和LSL算法预测信号x(n),从而得到对信号模型的两个参数值的估计值。
1.2 算法模型1.2.1自适应滤波原理自适应滤波器由参数可调的数字滤波器和自适应算法两部分组成,其原理如下图所示:图1.1自适应滤波器框图输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与期望输出信号d(n)进行比较,形成误差信号e(n)。
ADSP仿真报告---维纳滤波器姓名:×××院系:×××学号:×××指导老师:杨灵日期:2013年11月20日ADSP 仿真报告1.数学模型(1)信号模型AR(1)信号模型:()()()1s n as n w n =-+其中=0.8a ,()w n 是均值为0,方差为0.36的高斯白噪声信号。
(2)测量模型测量模型:()()()x n cs n v n =+其中=1c ,()v n 是均值为0,方差为1的高斯白噪声信号。
图(1)()s n 测量模型与信号模型级联2.算法模型(1)因果IIR 维纳滤波器已知:0.8,1,0.36,1a c Q R ====根据课本章节2.4因果维纳滤波器的设计与计算,可知()2221cP G R c P f a cG PRa Q P R c P ⎧=⎪+⎪⎪=-⎨⎪⎪=-⎪+⎩解得0.6,0.3750.5P G f ===,故待求IIR 维纳滤波器的传输函数为:()110.375=110.5c G H z fz z--=--(2)FIR 维纳滤波器设FIR 维纳滤波器冲激响应序列的长度为M ,冲激矢量为()()()011T h h h M ⎡⎤=-⎣⎦h滤波器数据矢量 ()()()()11T n x n x n x n M ⎡⎤=--+⎣⎦x 滤波器输出()()()ˆT y n sn n ==h x 令()()()(),T E n n E n s n ⎡⎤⎡⎤==⎣⎦⎣⎦R x x P x ,则 1opt -=h R P3.仿真代码clear all ;close all ;clc;%****************** 建立信号模型 s(n)=a*s(n-1)+w(n) *************** N = 2000; %数据长度w = sqrt(0.36)*randn(1,N); %噪声w(n)均值为0,方差为0.36s(1) = w(1);for i=2:Ns(i) = 0.8*s(i-1)+w(i);end%****************** 建立测量模型 x(n)=s(n)+w(n) ******************* v = randn(1,N); %噪声v(n)均值为0,方差为1x = s + v; %接收信号序列%****************** IIR 因果维纳滤波器 **********************% 计算得到滤波器参数G=0.375,f=0.5A = [1,-0.5];y_IIR = filter(0.375,A,x); %IIR 因果维纳滤波器输出MSE_IIR = mean ((s-y_IIR).^2) %IIR 因果维纳滤波器均方误差%****************** FIR 维纳滤波器 *************************% 设FIR 滤波器阶数为M ,即冲激响应序列长度为M+1% M =30;rx = xcorr(x);rsx = xcorr(s,x);for M =1:500 %求不同阶数下的滤波输出Rxx=toeplitz(rx(N:N+M))/N; %求x(n)自相关,(M+1)*(M+1)矩阵P = (rsx(N:N+M)/N)'; %求s(n)与x(n)互相关,(M+1)*1向量h_opt = inv(Rxx)*P;y_FIR = filter(h_opt,1,x); %FIR滤波器输出MSE_FIR(M) = mean ((s-y_FIR).^2); %FIR滤波器均方误差end%******************** 滤波结果 ************************% IIR因果维纳滤波器输出结果figuren=[1:100];plot(s(1:100),'b-',v(1:100),'g:',y_IIR(1:20:2000),'r--'); legend('原始数据s(n)','噪声数据v(n)','IIR滤波输出');ylabel('振幅');xlabel('时间(n)');title('IIR因果维纳滤波器输出结果y_IIR(1:100)');% FIR维纳滤波器输出结果figuren=[1:100];plot(n,s(1:100),'b-',n,v(1:100),'g:',n,y_FIR(1:100),'r--'); legend('原始数据s(n)','噪声数据v(n)','FIR滤波输出');ylabel('振幅');xlabel('时间(n)');title('FIR维纳滤波器输出结果y_FIR(1:100)');%FIR维纳滤波效果与滤波器阶数关系figureplot(MSE_FIR);xlabel('FIR滤波器阶数');ylabel('均方误差');title('FIR维纳滤波器效果与滤波器阶数关系');4.实验结果及分析(1)滤波器输出结果由于2000个数据在一张图中显示太稠密,这里选取前100个点和最后100个点作图,结果如下:图(2)IIR因果维纳滤波器输出结果(1:100)图(3)FIR维纳滤波器输出结果(1:100)图(4)IIR因果维纳滤波器输出结果(1900:2000)图(5)FIR维纳滤波器输出结果(1900:2000)从图(2)-(5)可以看出,IIR因果维纳滤波器和FIR维纳滤波器输出都能够较好地逼近原始数据,但是单从两种情况的滤波输出信号幅度难以判断哪一种滤波器性能较好。
adsp实验报告分析实验一安装VisualDSP++一、安装主程序1.安装主程序,双击打开安装界面,如下所示:2.鼠标单击Setup,开始安装3.解压缩进行中4.解压缩完毕后界面如下5.点击“下一步”,继续安装6.点击“下一步”,继续安装7.选择如上红色框选项,点击“下一步”,继续安装8.选择修改用户名和公司名,点击“下一步”,继续安装9.如上图显示的是默认的程序安装路径,点击红色框内的按钮可以修改程序安装路径,点击“下一步”,继续安装10.点击“Install”,开始安装11.等待安装进度条完成12.安装完成,点击确定13.点击“下一步”,继续安装14. 检查更新是否选项,最后点击“完成”,完成主程序的安装。
实验二FFT变换实验一、实验目的1.了解visual DSP++集成开发环境的基本功能。
2.学习FFT变换原理3.学习DSP Run-Time Library库的FFT变换函数使用。
二、实验内容学习FFT变换的原理,掌握DSP Run-Time Library库的FFT变换函数的功能以及使用方法,将待处理样本数据进行FFT变换处理,并使用Plot调试窗口观察FFT变换处理前后数据的波形及频域信息。
三、实验设备及工具硬件:DSP实验板、仿真器软件:VisualDSP++四、实验程序设计1.DSP Run-Time Library库中FFT变换的函数void twidfftrad2_fr16(complex_fract16 twiddle_table[],intfft_size);void rfft_fr16(const fract16 input[],complex_fract16 temp[],complex_fract16 output[],const complex_fract16 twiddle_table[],int twiddle_stride,int fft_size,int block_exponent,int scale_method);fract16 cabs_fr16(fract16 a);(1)FFT的旋转因子初始化函数twidfftrad2_fr16函数的声明如下:void twidfftrad2_fr16(complex_fract16 twiddle_table[],int fft_size);twidfftrad2_fr16函数的功能是计算基-2FFT的复旋转系数,其FFT点数由fft_size 指定,返回系数在twiddle_table里。
《通信电子电路—ADS仿真》实验报告专业:班级:姓名:学号:教师:时间:实验项目实验一电路模拟基础实验二直流仿真和建立电路模型实验三交流(AC)仿真实验四 S参数仿真与优化Agilent公司推出的ADS软件以其强大的功能成为现今国内各大学和研究所使用最多的软件之一。
ADS电子设计自动化(EDA软件全称为Advanced Design System)是美国安捷伦(Agilent)公司所生产拥有的电子设计自动化软件;ADS功能十分强大,包含时域电路仿真(SPICE-like Simulation)、频域电路仿真(Harmonic Balance Linear Analysis)、三位电磁仿真(EM Simulation)、通信系统仿真(Communication System Simulation)和数字信号处理仿真软件(DSP);支持射频和系统设计工程师开发所有类型的RF设计,从简单到复杂,从离散的射频/微波模块到用于通信和航天/国防的集成MMIC,是当今国内各大学和研究所使用最多的微波/射频电路和通信系统仿真软件。
在本次实验中采用的软件版本为ADS2006。
实验一:实验名称:电路模拟基础实验目的:●建立一个新的项目和原理图设计●设置并执行S参数模拟●显示模拟数据和储存●在模拟过程中调整电路参数●使用例子文件和节点名称●执行一个谐波平衡模拟●在数据显示区写一个等式实验电路图:仿真过程:(1).建立一个项目,设计一个原理图,按照实验要求书上的规则说明寻找到所需要的集中参数原件库原件,放置好电容电感等之后用线连接起来,用ESC结束放置元件和仿真控件命令。
(2). 设置S参数模拟, 开始模拟并显示数据 , 储存数据窗口, 画出S21数据, 提高增益,再模拟,绘制出另一条曲线仿真结果:调整滤波器电路,在原理图窗口,用光标选择C1和L1,在控制对话框中调节L1和C1的结果会即时显示在数据显示窗口中线上的三角标志会自动调整到最新的曲线上。
一、实验名称:ADS系统级仿真二、实验技术指标:1、微波带通滤波器切比雪夫带通滤波器阶数:4中心频率:2140MHz3dB带宽:80MHz阻带带宽:400MHz带外衰减:25dB通带波纹:0.1dB插入损耗:1dB2、低噪声放大器增益:21dB噪声系数:2dB3、信号源〔交流功率源〕端口:1 输出阻抗:50功率方程:P=polar(dbmtow(RF_pwr),0) 变量RF_pwr 频率:变量RF_freq MHz4、混频器边带:LOWER转换增益:10dBNF:13dB5、本振本振频率与应和输入信号频率一致。
6、移相器和功分器三、报告日期:2013年12月10日四、报告页数:共8页五、报告容:1、接收机频带选择性仿真在ADS 中新建WorkSpace ,然后新建电路原理图,如下列图2-1所示。
其仿真结果如图2-2所示。
图1-1 接收机频带选择性仿真电路图1.21.41.61.82.02.22.42.62.81.03.0-120-100-80-60-40-200-14020freq, GHz d B (S (2,1))2.032.062.092.122.152.182.212.242.272.002.308.12511.25014.37517.50020.62523.75026.8755.00030.000freq, GHzd B (S (2,1))图1-2 接收机频带选择性仿真结果2、接收机信道选择性仿真图2-1接收机信道选择性仿真电路图2-2接收机信道选择性仿真结果3、接收机系统算增益仿真2.112.122.132.142.152.162.172.102.18-20020406080-40100freq, GHz d B (S (2,1))2.1352.1362.1372.1392.1402.1422.1442.1332.14595.28695.57195.85796.14396.42996.71495.00097.000freq, GHzd B (S (2,1))图3-1 预算增益仿真电路图BPF1.t2AMP1.t2PWR1.t2MIX1.t2LPF1.t2AMP2.t2PORT1.t1Term1.t1020406080-20100Component, GB u d G a i n 1[0]图3-2 预算增益仿真结果图修改变量VAR 控件中变量后:将两次仿真的结果在一个图中表示出来,可以清楚地看到接收机在VGA 增益最大和最小的情况下整机增益的分配情况。
ADS仿真实验报告电磁场与微波实验报告ADS仿真实验⽬的1.熟悉ADS软件的基本操作;2.掌握微带线的基本原理;3.掌握微带线基本元件和匹配电路的设计。
微带线⼯作原理微带线是当前⼴泛应⽤的微波传输线,其结构如图5-1所⽰,它的⼯作模式是准TEM 模。
微带线的基本参数有:●宽⾼⽐W/h =0.1~5●有效介电常数εe =(0.5~0.8)εr ●特性阻抗Z c ●微带线中的波长λg =0e =e●微带线中的相速νp =e微带电路的基本元件特性是:●微带终端短路线段的特性:Z =jZ c tan 2πλgl●微带终端开路线段的特性:Z =?jZ c tan2πλgl●微带电路接地:通常采⽤打沉铜孔的⽅式,使上层的⾦属与下层的地板相连。
微波电路中各接地点就近接地,通过⼀段线再接地和直接接地效果是不同的。
实验内容1. 计算微带线的参数2. 开路/短路微带线的元件特性仿真3. 设计匹配电路实验步骤1. 计算微带线的基本参数计算结果r图1 微带线基本参数由图知,当微带线特性阻抗⼤⼩为50Ω,电长度为1/4波长时,计算所得的微带线的线宽和线长分别为1.917410mm和13.853500mm。
2.开路线/短路线的元件仿真特性:计算f=3 GHz时,特性阻抗为75 Ω的不同长度的微带线的特性。
计算特性阻抗为75 Ω,电长度为1/4波长的微带线的线宽和线长,步骤同上,计算所得的微带线的线宽和线长分别为0.878198mm和14.3300mm。
原理电路和仿真结果图2 元件特性仿真电路图图3 开路微带线和短路微带线阻抗特性仿真结果对于开路微带线长度为14.30mm(1/4波长)、8mm(⼩于1/4波长)、20mm (⼤于1/4波长)的微带线其对应的输⼊阻抗分别Z0*0.011(约为0)、Z0*(-j1.162)、Z0*j1.169,分别等效于串联谐振(短路)、电容、电感。
对于短路微带线长度为14.30mm(1/4波长)、8mm(⼩于1/4波长)、20mm(⼤于1/4波长)的微带线其对应的输⼊阻抗分别Z0*62.788(约为∞)、Z0*(j1.814)、Z0*(-j2.098),分别等效于并联谐振(开路)、电感、电容。
实验一1. 信号模型给定一个2阶自回归随机过程,信号模型为:12()(1)(2)()x n a x n a x n n ϖ=-+-+(1-1)它是由单位方差的高斯白噪声()n ϖ激励一个线性移不变全极点系统产生的,该系统的两个极点为/610.9j z e π=和/620.9j z e π-=,对应的滤波器参数1 1.558a =和20.81a =-。
现在分别用LSL 自适应滤波器以及LMS 自适应滤波器作为预测器,预测信号()x n ,从而得到对信号模型的两个参数的估计值1ˆ()a n 和2ˆ()a n 。
2. 算法模型2.1 LMS 自适应算法LMS 算法的最核心的思想是用平方误差代替均方误差,LMS 算法的基本关系式为:ˆ(1)()()()2()()n n n n e n x n ωωμωμ+=-∇=+ (1-2)该式说明,LMS 算法实际上是在每次迭代中使用粗略的梯度估计值ˆ()n ∇来代替精确值()n ∇。
同时,有以下关系:(1-3)(1-4)其中为输出,为输入,()n ω为权系数,为误差信号。
2.2 LSL 自适应算法LSL 自适应算法的计算流程总结如下: 1) 初始化(1-5)这里,δ是前向后向预测误差剩余的初始值。
2) 迭代计算(按时间n=1,2,…)(1-6)(1-7)(1-8) 3)迭代计算(按阶m=0,1,2,…M-1)(1-9)(1-10)(1-11)(1-12)(1-13)(1-14) ∆嵌套着按时间进行迭代计算。
各阶前向和后向反射系数可以分别由以下二公式同阶的m1+计算:(1-15)(1-16)M是给定滤波器的阶数。
在本例中,可以推导出:(1-17)(1-18) 3.仿真结果与分析在Matlab中将上一节信号模型及其参数估计计算过程转化为代码,仿真得出模型参数估计和在自适应过程中的收敛轨迹。
仿真中迭代次数和滤波器阶数分别取为N=500、M=2。
图1-1:2阶自回归随机过程的取样序列图1-2:LSL 和LMS 算法估计信号模型参数的性能比较图1-2是LSL 和LMS 算法估计信号模型参数的性能比较(1 1.558a =,20.81a =-,=10δ)。
现代数字信号处理Matlab仿真报告组员:提交时间:一、算法介绍1、LMS算法:LMS算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系:式中,W(n):n 时刻自适应滤波器的权矢量,,X( n) :n 时刻自适应滤波器的输入,由最近N 个信号采样值构成,;N:自适应滤波器的阶数;d ( n) :期望的输出值;e ( n) :自适应滤波器的输出误差调节信号;μ:收敛因子。
2、RLS算法:RLS算法是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间进行迭代计算。
其基本原理如下所示:称为遗忘因子,它是小于等于1的正数。
第n次迭代的权值。
均方误差。
按照如下准则:越旧的数据对的影响越小。
对滤波器系数求偏导数,并令结果等于零知整理得到标准方程定义标准方程可以化简成形式:经求解可以得到迭代形式定义:,则可知T的迭代方程为系数的迭代方程为其中增益和误差的定义分别为由上边分析可知,RLS算法递推的步骤如下:(1)在时刻n,已经知道和也已经存储在录波器的实验部件中(2)计算,并得到滤波器的输出相应和误差即:(3)进入第次迭代二、模型分析1、AR(2)模型因a1=1.4、a2=-0.7 ,即得:w(n)可用Matlab中高斯白噪声生成函数wgn生成其中在程序中用A描述,随时间变化2、LMS算法算出y(n);;;LMS函数源代码:function [A,en]=LMS(xn,Wn,M,u,i)en = zeros(i,1);A = zeros (i,M);for j = M+1:iyn(j)= A(j-1,:)*xn(j-1:-1:j-M)';en(j-1)=xn(j)-yn(j);x=xn(j-1:-1:j-M);A(j,:)=A(j-1,:)+2*u*en(j-1)*x;end3、RLS算法对赋一个比较大的初值,程序中=100*eye(M,M);求出、;求出最新时刻T(n);;RLS函数源代码:function [A,en]=RLS(xn,Wn,M,u,i)en = zeros(i,1);A = zeros(i-1,M);Tn=100*eye(M,M);kn =zeros(M,1);for j=M:i-1en(j,1)=xn(j+1)-A(j-1,:)*xn(j:-1:j-M+1)';kn=Tn*xn(j:-1:j-M+1)'/(u+xn(j:-1:j-M+1)*Tn*xn(j:-1:j-M+1)'); Tn=(Tn-Tn*xn(j:-1:j-M+1)'*xn(j:-1:j-M+1)*Tn/(u+xn(j:-1:j-M+1)*Tn*xn(j:-1:j-M+1)'))/u;A(j,:)=A(j-1,:)+kn(:,1)'.*en(j,1);End3、仿真结果分析1、、收敛曲线u=0.0001=0.982、LMS算法与RLS算法的比较由上图可以看出RLS算法的收敛速度比LMS算法的收敛速度快,但是RLS算法在收敛处的波动比LMS算法大。
现代数字信号处理仿真报告3.16计算机模拟实验。
设x(n) = x1(n) + x2(n),x1(n)是窄带信号,定义为x1(n) = sin(0.05πn +φ),φ是在[0, 2π)区间上均匀分布的随机相位。
x2(n)是宽带信号,它由一个零均值、方差为1的白噪声信号e(n)激励一个线性滤波器而产生,其差分方程为x2(n) = e(n) + 2e(n-1) + e(n-2)。
(1)计算x1(n)和x2(n)各自的自相关函数,并画出其函数图形。
据此选择合适的延时,以实现谱线增强。
(2)产生一个x(n)序列。
选择合适的μ值。
让x(n)通过谱线增强器。
画出输出信号y(n)和误差信号e(n)的波形,并分别与x1(n)和x2(n)进行比较。
解:一.仿真思路:首先,根据题目要求生成各个信号,包括窄带信号x1(n)、白噪声e(n)、宽带噪声信号x2(n)以及输入信号x(n)。
然后,根据生成的信号,分别计算x1(n)和x2(n)的自相关函数。
其次,观察前述两个自相关数的图形,找出二者的自相关长度,并选择一个介于两自相关长度值之间的一个值,作为Δ值,将输入信号x(n)延迟Δ,即x(n-Δ)。
最后,按照课本上图3.45所示的自适应预测原理完成自适应滤波,其中,自适应滤波器采用LMS算法,算法内容见课本3.7节。
二.数学原理1.自适应的最小均方(LMS)算法LMS算法的核心思想是用平方误差代替均方误差,并用这个平方误差来近似二次性能曲面的梯度。
这样可以推导出LMS算法的权系数基本关系式w(n+1) = w(n) - μ▽(n) = w(n) + 2μe(n)x(n) 滤波器每输入一个数据x(n),按照当前权系数w(n)滤波输出数据y(n)后,再根据期望信号d(n)和输出信号y(n)计算出相应的误差e(n),接着按照权系数更新关系式更新权矢量w(n+1)。
下一时刻,再利用新的权矢量w(n+1)对数据进行滤波。
如果μ值选取的合适,那么经过一定的更新步数后,系统的权矢量w将会收敛到一个固定的w*附近,也就是,这个时候,自适应滤波器已达到了稳定滤波阶段。
仿真报告院系:电信系2010级姓名:钱思维学号: M2010715803.16 题一、系统模型若将自适应干扰抵消器中的输入信号用有用信号的时延来取代,则构成自适应预测器,其原理如下图1.当完成自适应调整后,将自适应滤波器的参数复制移植到预测滤波器上去,那么后者的输出便是对有用信号的预测,预测时间与时延时间相等。
图一本题我采用LMS自适应算法实现有用信号与噪声信号的分离,x1(n)是有用信号,x2(n)是方差为1的白噪声信号。
二、算法实现程序1、信号产生函数function [x1,x2]=GenerateSignal(Num)%%产生窄带信号x1(n)与宽带信号x2(n)%%Num为产生的信号点个数x1=zeros(1,Num);for n=1:1:Num;x1(n)=sin(n*0.05*pi+rand(1,1)*2*pi);end;noise=randn(1,Num);noise=(noise-mean(noise))/std(noise);x2=filter([1,2,1],1,noise);2、自相关函数%%自相关函数clc;clear all;Num=200;[x1,x2]=GenerateSignal(Num);C_x1=xcorr(x1);C_x2=xcorr(x2);Length=length(C_x1);x_lb=1-Num;x_ub=Length-Num;%%画出自相关函数图形figure(1)plot(x_lb:1:x_ub,C_x1,'-r');%%axis([-5 5 -50 50]);hold on;plot(x_lb:1:x_ub,C_x2,'-b');%%axis([-5 5 -50 50]);legend('输入信号x1(n)的自相关函数','输入信号x2(n)的自相关函数',2); grid on;3、LMS算法程序%%LMS自适应算法clc;clear all;Num=200; %%信号点数[x1,x2]=GenerateSignal(Num);x=x1+x2; %%待处理信号x(n)D=1; %%D为选取的延时r=[zeros(1,D),x]; %%序列x前加D个零,即延时Dx=[x zeros(1,D)]; %%序列x后加D个零N=16; %%滤波器的阶数u=0.0003; %%收敛参数Length=length(r); %%延时后向量的长度y=zeros(1,Length); %%初始化数据信号y(n)w=zeros(1,N); %%初始化权系数矩阵e=zeros(1,Length); %%初始化输出信号e(n)%%LMS自适应for n=N:Length;temp1=r(n:-1:n-N+1);y(n)=w*temp1';e(n)=x(n)-y(n);w=w+2*u.*e(n).*temp1;end%%输入信号x1(n)与输出信号y(n)的比较图t=1:1:Num; %%横坐标figure(1)plot(t,x1(1:Num),'-r');%%axis([150 200 -3 3]);hold on;plot(t,y(1:Num),'-b');%%axis([150 200 -3 3]);legend('输入信号x1(n)','输出信号y(n)',2);%%输入信号x2(n)与输出信号e(n)的比较图figure(2)plot(t,x2(1:Num),'-r');%%axis([4900 5000 -3 3]);hold on;plot(t,e(1:Num),'-b');%%axis([4900 5000 -3 3]);legend('输入信号x2(n)','输出信号e(n)',2);四、程序输出图形图2 自相关函数图3 输入信号x1(n)与输出信号y(n)图4 输入信号x2(n)与输出信号e(n)五、分析由图2可以得到,当n=1的时候,对于窄带信号来说,可以认为仍然是相关的,而对于宽带噪声信号来说,可以认为不相关,所以时间间隔我们取1,然后滤波器阶数选为16以及收敛参数选为0.0003时LMS 自适应可以得到还不错的结果。
由图3和图4我们能够看到,自适应滤波器有效地分离了有用信号与噪声信号,也就是有用信号得到了谱线增强。
4.25 题一、信号模型)())4/52.02(exp()5.02exp()(n v n j n j n x ++⨯+⨯=πππ,n=0,1,2,…,24; )(n v 是方差为1的复白噪声。
二、 算法模型1、 PHD 算法a .根据取样自相关函数1||,)()(1)(10-≤+=∑--=N m n m x n x N m R m N n xx求自相关矩阵R(x)。
b .根据特征方程求R(x)的特征值及特征向量,得到最小特征值的特征矢量。
c .根据公式2min ||1)(ˆV e e P H jw PHD =,得到正弦波的估计频率1ω和2ω 。
2、 MUSIC 算法a. 先求自相关矩阵及其特征值和特征向量。
b. 根据公式∑+==N M i i H MUSIC ve f P 12|ˆ|1)(ˆ,得到估计频率。
三、算法实现程序1、PHD算法程序a、信号产生函数function Signal=GenerateSignal(Var)%%Var为方差m=sqrt(-1); %%复数jsd=sqrt(Var); %%标准差n=0:1:24;x1=exp(m*2*pi*0.5*n)+exp(m*(2*pi*0.52*n+(pi/4))); %%方差为Var的白噪声v=randn(1,25);v=(v-mean(v))/std(v);v=sd*v;%%产生信号Signal=x1+v;b、自相关函数function Rx=Autocorrelation(xn,N)%%求自相关矩阵for k=0:1:N-1s=0;for n=1:N-k,s=s+conj(xn(n))*xn(n+k);endrxx(1,k+1)=(1/N)*s;endRx=toeplitz(rxx(1,1:N));c、PHD算法clc;clear all;m=sqrt(-1); %%复数jN=3; %%样本阶数fstep=0.01;fstart=0;fend=1;f=fstart:fstep:fend;Var=1;xn=GenerateSignal(Var); %%产生x(n)Rx=Autocorrelation(xn,N); %%求自相关矩阵[V D]=eig(Rx); %%得到特征矢量与特征值%%降序排列特征值特征矢量diag(D);[A I]=sort(diag(D),'descend');for i=1:N;V1(:,i)=V(:,I(i));end%%PHD算法的功率谱估计Pphdf=zeros(1,1/fstep+1);ei=zeros(1,N);for i=1:length(f)for j=1:Nei(j)=exp(-2*pi*(j-1)*f(i)*m);end;sum=abs(ei*V1(:,N))^2;Pphdf(1,i)=10*log10(1/sum);end%%功率谱的估计图plot(f.*2*pi,Pphdf);title('基于PHD算法的功率谱估计')ylabel('功率谱幅度(dB)')xlabel('频率(w)')grid on;2、MUSIC算法程序a、信号产生函数function Signal=GenerateSignal(Var)%%Var为方差m=sqrt(-1); %%复数jsd=sqrt(Var); %%标准差n=0:1:24;x1=exp(m*2*pi*0.5*n)+exp(m*(2*pi*0.52*n+(pi/4))); %%方差为Var的白噪声v=randn(1,25);v=(v-mean(v))/std(v);v=sd*v;%%产生信号Signal=x1+v;b、自相关函数function Rx=Autocorrelation(xn,N) %%求自相关矩阵for k=0:1:N-1s=0;for n=1:N-k,s=s+conj(xn(n))*xn(n+k);endrxx(1,k+1)=(1/N)*s;endRx=toeplitz(rxx(1,1:N));c、MUSIC算法clc;clear all;m=sqrt(-1); %%复数jN=12; %%样本阶数M=2;fstep=0.001;fstart=0;fend=1;f=fstart:fstep:fend;Var=1;xn=GenerateSignal(Var); %%产生x(n)Rx=Autocorrelation(xn,N); %%求自相关矩阵[V D]=eig(Rx); %%得到特征矢量与特征值%%降序排列特征值特征矢量diag(D);[A I]=sort(diag(D),'descend');for i=1:N;V1(:,i)=V(:,I(i));end%%MUSIC算法的功率谱估计Pmusicf=zeros(1,1/fstep+1);ei=zeros(1,N);for i=1:length(f)for j=1:Nei(j)=exp(-2*pi*(j-1)*f(i)*m);end;sum=0;for k=1:N-Msum=sum+abs(ei*V1(:,k+M))^2;endPmusicf(1,i)=10*log10(1/sum);end%%功率谱的估计图plot(f.*2*pi,Pmusicf);title('基于MUSIC算法的功率谱估计')ylabel('功率谱幅度(dB)')xlabel('频率(w)')grid on;四、程序输出图形图5 基于PHD算法的功率谱估计图6 基于MUSIC算法的功率谱估计五、分析从图形上看,MUSIC算法的估计更准确,PHD算法的估计偏差较大,这是与他们的估计特性有关。
PHD算法和MUSIC算法都是特征分解频率估计。
但是,自相关矩阵的阶数不同,PHD算法需要的阶数是M+1,也就是说PHD的估计总是使用特征值最小的对应的特征向量进行估计,而MUSIC算法需要的阶数越大越精确,而且在实际估计过程中需要选择比PHD算法更加高的分辨率,比如有几次仿真结果的出来的两个峰重合在了一起,两种算法的谱估计方法不同,各有优缺点。