统计与自适应信号处理仿真作业
- 格式: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;