统计与自适应信号处理仿真作业

  • 格式:docx
  • 大小:151.25 KB
  • 文档页数:10

统计与自适应信号处理仿真作业:

产生AR(2)过程:

𝓍 n =𝓌 n −1.5857𝓍 n−1 −0.9604𝓍 n−2 的采样序列,其中𝓌 n ∼WGN(0,1).对每一个实现采样N=256次。

(a)设计一个最佳线性预测器,并计算预测误差ℯ1 (n),用自相关、PSD和部分自相关方法检测误差序列ℯ1 (n)的白化性能。分别在一个图上做出这些结果的20次实现的曲线图。

(b)用2阶和3阶线性预测器重做上述题目。

(a) Matlab Script for P = 1:

% Generate x(n)

bh = 1; ba = [1,1.5857,0.9604];

N = 256; n = 0:N-1; w = randn(N,1);

x = filter(bh,ba,w);

% (a) Optimum 1st-order linear predictor

P = 1;

[a,e,V,FPE]=arls(x,P);

Hf_1 = figure(’units’,SCRUN,’position’,SCRPOS,...

’paperunits’,PAPUN,’paperposition’,[0,0,5,3]);

set(Hf_1,’NumberTitle’,’off’,’Name’,’Pr0904a’);

L = 10; l = 0:L-1;

K = N/2; f = [0:K]/K; k = 1:K+1;

x = e; subplot(’position’,[0.1,0.65,0.35,0.3]);

plot(n(1:100),x(1:100),’g’); axis([-1,100,-4,4]);

xlabel(’\itn’,’fontsize’,label_fontsize,’fontname’,’times’);

ylabel(’{\itx}({\itn})’,’fontsize’,label_fontsize,’fontname’,’times’);

title(’Error samples’,’Fontsize’,title_fontsize);

set(gca,’xtick’,[0:20:100],’ytick’,[-4:1:4]);

% Autocorrelation test

r = autoc(x,L+1); rho = r(1:L)/r(1);

conf_lim = 1.96/sqrt(N);

subplot(’position’,[0.6,0.65,0.35,0.3]);

plot([-1,L],[0,0],’w’); hold on;

Hr = stem(l,rho,’filled’,’g’);

set(Hr,’markersize’,3); axis([-1,L,-1.2,1.2]);

plot([-1,L],[-conf_lim,-conf_lim],’r:’);

plot([-1,L],[conf_lim,conf_lim],’r:’);

hold off; conf_lim = round(conf_lim*100)/100;

xlabel(’Lag \itl’,’fontsize’,label_fontsize);

ylabel(’\rho_{\itx}({\itl})’,’fontsize’,label_fontsize,’fontname’,’times’);

title(’Autocorrelation test’,’Fontsize’,title_fontsize);

set(gca,’xtick’,[0:5:L],’ytick’,[-1,-conf_lim,0,conf_lim,1]);

% PSD test

Rx = psd(x,N,2,boxcar(length(x)),’none’); Ix = cumsum(Rx(1:K+1)); Ix = Ix/Ix(K+1);

Ibl = -1.36/sqrt(K-1) + (k-1)/(K-1);

Ibu = 1.36/sqrt(K-1) + (k-1)/(K-1);

subplot(’position’,[0.1,0.15,0.35,0.3]);

plot(f,Ix,’g’,f,Ibl,’r:’,f,Ibu,’r:’); axis([0,1,-0.2,1.2]);

xlabel(’Frequency (cycles/samp)’,’fontsize’,label_fontsize);

ylabel(’I_{\itx}({\itf})’,’fontsize’,label_fontsize,’fontname’,’times’);

title(’PSD test’,’Fontsize’,title_fontsize);

Ibl(1) = round(Ibl(1)*100)/100;

Ibu(1) = round(Ibu(1)*100)/100;

set(gca,’xtick’,[0:0.2:1],’ytick’,[Ibl(1),0,Ibu(1),1]);

set(gca,’xticklabel’,[’ 0 ’;’0.1’;’0.2’;’0.3’;’0.4’;’0.5’]);

% PARCOR test

Vx=r(1); r=r/Vx;

[a,PACS,var]=durbin(r,L); PACS = [1;PACS(1:L-1)];

conf_lim = 1.96/sqrt(N);

subplot(’position’,[0.6,0.15,0.35,0.3]);

plot([-1,L],[0,0],’w’); hold on;

Hr = stem(l(2:L),PACS(2:L),’filled’,’g’);

set(Hr,’markersize’,3); axis([-1,L,-1.2,1.2]);

plot([-1,L],[-conf_lim,-conf_lim],’r:’);

plot([-1,L],[conf_lim,conf_lim],’r:’); hold off; conf_lim = round(conf_lim*100)/100;

xlabel(’Lag {\itl}’,’fontsize’,label_fontsize);

ylabel(’PACS’,’fontsize’,label_fontsize);

title(’Partial autocorrelation test’,’Fontsize’,title_fontsize);

set(gca,’xtick’,[0:5:L],’ytick’,[-1,-conf_lim,0,conf_lim,1]);

Figure 9.4a: Plots of error samples and its whiteness tests for P = 1

(b) Matlab Script for P = 2:

% (b1) Optimum 2nd-order linear predictor

P = 2;

[a,e,V,FPE]=arls(x,P);

Hf_2 = figure(’units’,SCRUN,’position’,SCRPOS,...

’paperunits’,PAPUN,’paperposition’,[0,0,5,3]);

set(Hf_2,’NumberTitle’,’off’,’Name’,’Pr0904b’); L = 10; l = 0:L-1; K = N/2; f = [0:K]/K; k = 1:K+1;

x = e;

subplot(’position’,[0.1,0.65,0.35,0.3]);

plot(n(1:100),x(1:100),’g’); axis([-1,100,-4,4]);

xlabel(’\itn’,’fontsize’,label_fontsize,’fontname’,’times’);

ylabel(’{\itx}({\itn})’,’fontsize’,label_fontsize,’fontname’,’times’);

title(’Error samples’,’Fontsize’,title_fontsize);

set(gca,’xtick’,[0:20:100],’ytick’,[-4:1:4]);

% Autocorrelation test

r = autoc(x,L+1); rho = r(1:L)/r(1);

conf_lim = 1.96/sqrt(N);

subplot(’position’,[0.6,0.65,0.35,0.3]);

plot([-1,L],[0,0],’w’); hold on;

Hr = stem(l,rho,’filled’,’g’);

set(Hr,’markersize’,3); axis([-1,L,-1.2,1.2]);

plot([-1,L],[-conf_lim,-conf_lim],’r:’);

plot([-1,L],[conf_lim,conf_lim],’r:’);

hold off; conf_lim = round(conf_lim*100)/100;

xlabel(’Lag \itl’,’fontsize’,label_fontsize);

ylabel(’\rho_{\itx}({\itl})’,’fontsize’,label_fontsize,’fontname’,’times’);

title(’Autocorrelation test’,’Fontsize’,title_fontsize);

set(gca,’xtick’,[0:5:L],’ytick’,[-1,-conf_lim,0,conf_lim,1]); % PSD test

Rx = psd(x,N,2,boxcar(length(x)),’none’);

Ix = cumsum(Rx(1:K+1)); Ix = Ix/Ix(K+1);

Ibl = -1.36/sqrt(K-1) + (k-1)/(K-1);

Ibu = 1.36/sqrt(K-1) + (k-1)/(K-1);

subplot(’position’,[0.1,0.15,0.35,0.3]);

plot(f,Ix,’g’,f,Ibl,’r:’,f,Ibu,’r:’); axis([0,1,-0.2,1.2]);

xlabel(’Frequency (cycles/samp)’,’fontsize’,label_fontsize);

ylabel(’I_{\itx}({\itf})’,’fontsize’,label_fontsize,’fontname’,’times’);

title(’PSD test’,’Fontsize’,title_fontsize);

Ibl(1) = round(Ibl(1)*100)/100;

Ibu(1) = round(Ibu(1)*100)/100;