现代数字信号处理仿真作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代数字信号处理仿真作业

第三章仿真作业3.17

(1)代码

clear;

N=32;

m=[-N+1:N-1];

noise=(randn(1,N)+j*randn(1,N))/sqrt(2); f1=0.15;

f2=0.17;

f3=0.26;

SNR1=30;

SNR2=30;

SNR3=27;

A1=10^(SNR1/20);

A2=10^(SNR2/20);

A3=10^(SNR3/20);

signal1=A1*exp(j*2*pi*f1*(0:N-1));

signal2=A2*exp(j*2*pi*f2*(0:N-1));

signal3=A3*exp(j*2*pi*f3*(0:N-1));

un=signal1+signal2+signal3+noise;

uk=fft(un,2*N);

sk=(1/N) *abs(uk).^2;

r0=ifft(sk);

r1=[r0(N+2:2*N),r0(1:N)];

r=xcorr(un,N-1,'biased');

figure

subplot(2,2,1)

stem(m,real(r1));

xlabel('m');

ylabel('FFT估计r1实部');

subplot(2,2,2)

stem(m,imag(r1));

xlabel('m');

ylabel('FFT估计r1虚部');

subplot(2,2,3)

stem(m,real(r));

xlabel('m');

ylabel('平均估计r实部');

subplot(2,2,4)

stem(m,imag(r));

xlabel('m');

ylabel('平均估计r虚部');

仿真结果

(2)代码 clear; N=256;

noise=(randn(1,N)+j*randn(1,N))/sqrt(2); f1=0.15; f2=0.17; f3=0.26; SNR1=30; SNR2=30; SNR3=27;

A1=10^(SNR1/20); A2=10^(SNR2/20); A3=10^(SNR3/20);

signal1=A1*exp(j*2*pi*f1*(0:N-1)); signal2=A2*exp(j*2*pi*f2*(0:N-1)); signal3=A3*exp(j*2*pi*f3*(0:N-1)); un=signal1+signal2+signal3+noise;

-40

-20

02040-2000

2000

4000

m

F F T 估计r 1实部

-40

-20

02040

-2000

-100001000

2000m

F F T 估计r 1虚部

-40

-20

02040-2000

2000

4000

m

平均估计r 实部

-40

-20

02040

-2000

-1000010002000m

平均估计r 虚部

spr=fftshift((1/NF)*abs(fft(un,NF)).^2);

f1=(0:length(spr)-1)*(1/(length(spr)-1))-0.5;

M=64;

r=xcorr(un,M,'biased');

bt=fftshift(abs(fft(r,NF)));

f2=(0:length(bt)-1)*(1/(length(bt)-1))-0.5;

figure

subplot(1,2,1)

plot(f1,10*log10(spr/max(spr)));

xlabel('w/2pi');

仿真结果

w/2pi w/2pi

(3)

代码

clear;

N=1000;

fai1=rand(1,1)*2*pi;

fai2=rand(1,1)*2*pi;

noise=(randn(1,N)+j*randn(1,N))/sqrt(2);

un=exp(j*0.5*pi*(0:N-1)+j*fai1)+exp(-j*0.3*pi*(0:N-1)+j*fai2)+noise; p=8;

cx=xcorr(un,p,'biased');

rxx=cx(p+1:2*p)';

R=toeplitz(rxx);

[u,s]=eig(R);

ww=[-128:128]/128*pi;

e=exp(-j*ww'*[0:p-1])%k行m列

ev=e*u(:,1:p-2);

pw=1./real(diag(ev*ev'));

plot(ww/(2*pi),10*log10(pw)/max(pw));

仿真结果

-4

-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5

3.20

(1)代码

clear;

N=1000;

fai1=rand(1,1)*2*pi;

fai2=rand(1,1)*2*pi;

noise=(randn(1,N)+j*randn(1,N))/sqrt(2);

un=exp(j*0.5*pi*(0:N-1)+j*fai1)+exp(-j*0.3*pi*(0:N-1)+j*fai2)+noise; p=8;

cx=xcorr(un,p,'biased');

rxx=cx(p+1:2*p)';

R=toeplitz(rxx);

[u,s]=eig(R);

nw=128;

相关文档
最新文档