1、 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:x_ub,C_x1,-r
2、);%axis(-5 5 -50 50); hold on;x_ub,C_x2,-blegend(输入信号x1(n)的自相关函数,输入信号x2(n)的自相关函数,2);grid on;3、LMS算法程序%LMS自适应算法 %信号点数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
3、); %初始化权系数矩阵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: %横坐标plot(t,x1(1:Num),%axis(150 200 -3 3);plot(t,y(1:输入信号x1(n)输出信号y(n)%输入信号x2(n)与输出信号e(n)的比较图figure(2)plot(t,x2(1:%axis(4900 5000 -3
4、 3);plot(t,e(1:输入信号x2(n)输出信号e(n)四、程序输出图形图2 自相关函数图3 输入信号x1(n)与输出信号y(n)图4 输入信号x2(n)与输出信号e(n)五、分析 由图2可以得到,当n=1的时候,对于窄带信号来说,可以认为仍然是相关的,而对于宽带噪声信号来说,可以认为不相关,所以时间间隔我们取1,然后滤波器阶数选为16以及收敛参数选为0.0003时LMS自适应可以得到还不错的结果。由图3和图4我们能够看到,自适应滤波器有效地分离了有用信号与噪声信号,也就是有用信号得到了谱线增强。4.25 题一、信号模型,n=0,1,2,24;是方差为1的复白噪声。二、 算法模型1、
5、PHD算法a 根据取样自相关函数求自相关矩阵R(x)。b .根据特征方程求R(x)的特征值及特征向量,得到最小特征值的特征矢量。c .根据公式,得到正弦波的估计频率和。2、 MUSIC算法a. 先求自相关矩阵及其特征值和特征向量。b. 根据公式,得到估计频率。三、 算法实现程序1、 PHD算法程序a、 信号产生函数function Signal=GenerateSignal(Var)%Var为方差m=sqrt(-1); %复数jsd=sqrt(Var); %标准差n=0:24;x1=exp(m*2*pi*0.5*n)+exp(m*(2*pi*0.52*n+(pi/4);%方差为Var的白噪声v
6、=randn(1,25);v=(v-mean(v)/std(v);v=sd*v;%产生信号Signal=x1+v;b、 自相关函数function Rx=Autocorrelation(xn,N)%求自相关矩阵for k=0:N-1 s=0; for n=1:N-k, s=s+conj(xn(n)*xn(n+k); end rxx(1,k+1)=(1/N)*s;Rx=toeplitz(rxx(1,1:N);c、 PHD算法N=3; %样本阶数fstep=0.01;fstart=0;fend=1;f=fstart:fstep:fend;Var=1;xn=GenerateSignal(Var);
7、%产生x(n)Rx=Autocorrelation(xn,N); %求自相关矩阵V D=eig(Rx); %得到特征矢量与特征值%降序排列特征值特征矢量diag(D);A I=sort(diag(D),descendfor i=1:N; V1(:,i)=V(:,I(i);%PHD算法的功率谱估计Pphdf=zeros(1,1/fstep+1);ei=zeros(1,N);length(f) for j=1:N ei(j)=exp(-2*pi*(j-1)*f(i)*m); end; sum=abs(ei*V1(:,N)2; Pphdf(1,i)=10*log10(1/sum);%功率谱的估计图p
8、lot(f.*2*pi,Pphdf);title(基于PHD算法的功率谱估计)ylabel(功率谱幅度(dB)xlabel(频率(w)2、 MUSIC算法程序c、 MUSIC算法N=12;M=2;fstep=0.001;%MUSIC算法的功率谱估计Pmusicf=zeros(1,1/fstep+1); sum=0; for k=1:N-M sum=sum+abs(ei*V1(:,k+M)2; Pmusicf(1,i)=10*log10(1/sum);plot(f.*2*pi,Pmusicf);基于MUSIC算法的功率谱估计四、 程序输出图形图5 基于PHD算法的功率谱估计图6 基于MUSIC算法的功率谱估计从图形上看,MUSIC算法的估计更准确,PHD算法的估计偏差较大,这是与他们的估计特性有关。PHD算法和MUSIC算法都是特征分解频率估计。但是,自相关矩阵的阶数不同,PHD算法需要的阶数是M+1,也就是说PHD的估计总是使用特征值最小的对应的特征向量进行估计,而MUSIC算法需要的阶数越大越精确,而且在实际估计过程中需要选择比PHD算法更加高的分辨率,比如有几次仿真结果的出来的两个峰重合在了一起,两种算法的谱估计方法不同,各有优缺点。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2