ÏÖ´úÊý×ÖÐźŴ¦Àí·ÂÕæ×÷Òµ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/3/29 3:12:45ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

ʵÓñê×¼Îĵµ

BT_norm=10*log10(abs(BT)/max(abs(BT))); figure(3) subplot(1,2,1) plot(kk,Spr_norm)

xlabel('w/2pi');ylabel('¹éÒ»»¯¹¦ÂÊÆ×/DB'); title('ÖÜÆÚͼ·¨') subplot(1,2,2) plot(kk,BT_norm)

xlabel('w/2pi');ylabel('¹éÒ»»¯¹¦ÂÊÆ×/DB'); title('BT·¨')

%% LDµü´úËã·¨ p=16;

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

r4=r0(p+1:2*p+1); %¼ÆËã×ÔÏà¹Øº¯Êý a(1,1)=-r4(2)/r4(1);

sigma(1)=r4(1)-(abs(r4(2))^2)/r4(1); for m=2:p %LDµü´úËã·¨

k(m)=-(r4(m+1)+sum(a(m-1,1:m-1).*r4(m:-1:2)))/sigma(m-1); a(m,m)=k(m); for i=1:m-1

a(m,i)=a(m-1,i)+k(m)*conj(a(m-1,m-i)); end

sigma(m)=sigma(m-1)*(1-abs(k(m))^2); end

Par=sigma(p)./fftshift(abs(fft([1,a(p,:)],NF)).^2); %p½×ARÄ£Ð͵ŦÂÊÆ× Par_norm=10*log10(abs(Par)/max(abs(Par))); figure(4) plot(kk,Par_norm)

xlabel('w/2pi');ylabel('¹éÒ»»¯¹¦ÂÊÆ×/DB'); title('16½×ARÄ£ÐÍ')

Îݸ´óÈ«

ʵÓñê×¼Îĵµ

2.·ÂÕæÌâ3.20

·ÂÕæ½á¹û¼°Í¼ÐΣº

µ¥´ÎRoot-MUSICËã·¨ÖÐ×î½Ó½üµ¥Î»Ô²µÄÁ½¸ö¸ùΪ£º -0.001156047541561 + 1.001503153449793i 0.587376604261220 - 0.810845628739986i ¶ÔÓ¦µÄ¹éÒ»»¯ÆµÂÊΪ£º 0.250183714447964 -0.150223406926494

ÏàͬÐźŵÄMUSICÆ×¹À¼Æ½á¹ûÈçÏÂ

ͼ 5 ¶Ô3.20ÐźŽøÐÐMUSICÆ×¹À¼ÆµÄ½á¹û

·ÂÕæ³ÌÐò£¨3_20£©:

clear all clc

%% ÐźÅÑù±¾ºÍ¸ß˹°×ÔëÉùµÄ²úÉú N=1000;

vn=(randn(1,N)+1i*randn(1,N))/sqrt(2);

signal=[exp(1i*0.5*pi*(0:N-1)+1i*2*pi*rand); %¸´ÕýÏÒÐźŠexp(-1i*0.3*pi*(0:N-1)+1i*2*pi*rand)]; un=sum(signal)+vn; %% ¼ÆËã×ÔÏà¹Ø¾ØÕó 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);

%% Root-MUSICËã·¨µÄʵÏÖ G=U(:,3:M); Gr=G*G';

co=zeros(2*M-1,1); for m=1:M

co(m:m+M-1)=co(m:m+M-1)+Gr(M:-1:1,m); end z=roots(co); ph=angle(z)/(2*pi); err=abs(abs(z)-1); %% ¼ÆËãMUSICÆ× En=U(:,2+1:M); NF=2048; for n=1:NF

Aq=exp(-1i*2*pi*(-0.5+(n-1)/(NF-1))*(0:M-1)'); Pmusic(n)=1/(Aq'*En*En'*Aq); end

kk=-0.5+(0:NF-1)*(1/(NF-1));

Pmusic_norm=10*log10(abs(Pmusic)/max(abs(Pmusic))); plot(kk,Pmusic_norm)

xlabel('w/2*pi');ylabel('¹éÒ»»¯¹¦ÂÊÆ×/dB')

Îݸ´óÈ«

ʵÓñê×¼Îĵµ

3.·ÂÕæÌâ3.21

·ÂÕæ½á¹û¼°Í¼ÐΣº

µ¥´ÎESPRITËã·¨ÖÐ×î½Ó½üµ¥Î»ÔªµÄÁ½¸öÌØÕ÷ֵΪ£º 0.001826505974929 + 1.000690248438859i 0.586994191014025 - 0.809491260856630i ¶ÔÓ¦µÄ¹éÒ»»¯ÆµÂÊΪ£º 0.249709503383161 -0.150146235268272

·ÂÕæ³ÌÐò£¨3_21£©:

clear all clc

%% ÐźÅÑù±¾ºÍ¸ß˹°×ÔëÉùµÄ²úÉú N=1000;

vn=(randn(1,N)+1i*randn(1,N))/sqrt(2);

signal=[exp(1i*0.5*pi*(0:N-1)+1i*2*pi*rand); exp(-1i*0.3*pi*(0:N-1)+1i*2*pi*rand)];un=sum(signal)+vn; %% ×ÔÏà¹Ø¾ØÕóµÄ¼ÆËã M=8; for k=1:N-M

xs(:,k)=un(k+M-1:-1:k).'; end

Rxx=xs(:,1:end-1)*xs(:,1:end-1)'/(N-M-1); Rxy=xs(:,1:end-1)*xs(:,2:end)'/(N-M-1); %% ÌØÕ÷Öµ·Ö½â [U,E]=svd(Rxx); ev=diag(E); emin=ev(end);

Z=[zeros(M-1,1),eye(M-1);0,zeros(1,M-1)]; Cxx=Rxx-emin*eye(M); Cxy=Rxy-emin*Z; %% ¹ãÒåÌØÕ÷Öµ·Ö½â [U,E]=eig(Cxx,Cxy); z=diag(E); ph=angle(z)/(2*pi); err=abs(abs(z)-1);

Îݸ´óÈ«

%¸´ÕýÏÒÐźÅ