信号处理基础 何子述版 第三章仿真题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-0.5
-0.4-0.3-0.2-0.1
00.10.20.30.40.5
-45-40-35-30-25-20-15-10-5
016阶AR 模型的功率谱估计
w/2π
归一化功率谱/d B
图4 16阶AR 模型的功率谱估计
16阶AR 模型的系数如下:
a
)
16(1
,
a
)16(2
,...,
a
)
16(16
为:
-0.4113 - 0.9298i -0.0425 + 0.0537i -0.0282 - 0.0590i 0.0507 - 0.0576i 0.0429 + 0.0284i -0.0303 + 0.0354i -0.0636 - 0.0168i 0.0349 - 0.0179i 0.0226 - 0.0052i 0.0026 + 0.0597i -0.0223 + 0.0002i 0.0071 - 0.0387i 0.0185 - 0.0062i
0.0055 + 0.0212i
-0.0146 + 0.0256i
-0.0506 - 0.0719i
216
=60.1647
3.18 clear N=1000;
noise=(randn(1,N)+j*randn(1,N))/sqrt(2); signal1=exp(j*0.5*pi*(0:N-1)+j*2*pi*rand); signal2=exp(-j*0.3*pi*(0:N-1)+j*2*pi*rand); un=signal1+signal2+noise; M=8;
for k=1:N-M
xs(:,k)=un(k+M-1:-1:k).'; end
R=xs*xs'/(N-M);
NF=2048; for n=1:NF
Aq=exp(-j*2*pi*(n-1)/NF*(0:M-1)'); Pmvdr(n)=1/(Aq'*inv(R)*Aq); end
Pmvdr=10*log10(Pmvdr /max(Pmvdr)); dw=2*pi/length(Pmvdr); df=dw/(2*pi); figure;
plot(-pi/(2*pi):df:pi/(2*pi)-df,Pmvdr); title('MVDR 谱估计'); xlabel('w/2π');
ylabel('归一化功率谱/dB');
-0.5
-0.4-0.3-0.2-0.1
00.10.20.30.40.5
-12-10
-8
-6
-4
-2
MVDR 谱估计
w/2π
归一化功率谱/d B
3.19 clear N=1000;
noise=(randn(1,N)+j*randn(1,N))/sqrt(2); signal1=exp(j*0.5*pi*(0:N-1)+j*2*pi*rand); signal2=exp(-j*0.3*pi*(0:N-1)+j*2*pi*rand); un=signal1+signal2+noise; M=8;
for k=1:N-M
xs(:,k)=un(k+M-1:-1:k).';
R=xs*xs'/(N-M);
[U,E]=svd(R);
ev=diag(E);
>> for k=1:M
dec=prod(ev(k:M).^(1/(M-k+1)));
nec=mean(ev(k:M));
lnv=(dec/nec)^((M-k+1)*N);
AIC(k)=-2*log(lnv)+2*(k-1)*(2*M-k+1);
end
>> [Amin,K]=min(AIC);
>> N1=K-1;
根据AIC准则进行单次信号源估计,程序运行结果N1=2。
clear
N=1000;
noise=(randn(1,N)+j*randn(1,N))/sqrt(2);
signal1=exp(j*0.5*pi*(0:N-1)+j*2*pi*rand);
signal2=exp(-j*0.3*pi*(0:N-1)+j*2*pi*rand);
un=signal1+signal2+noise;
M=8;
for k=1:N-M
xs(:,k)=un(k+M-1:-1:k).';
end
R=xs*xs'/(N-M);
[U,E]=svd(R);
ev=diag(E);
for k=1:M
dec=prod(ev(k:M).^(1/(M-k+1)));
nec=mean(ev(k:M));
lnv=(dec/nec)^((M-k+1)*N);
MDL(k)=-log(lnv)+(k-1)/2*(2*M-k+1)*log(N);
end
[Amin,K]=min(MDL);
N2=K-1
根据MDL准则进行单次信号源估计,程序运行结果N2=2。
clear
N=1000;
noise=(randn(1,N)+j*randn(1,N))/sqrt(2);
signal1=exp(j*0.5*pi*(0:N-1)+j*2*pi*rand);
signal2=exp(-j*0.3*pi*(0:N-1)+j*2*pi*rand);
un=signal1+signal2+noise;