日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DOA——ESPRIT算法

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DOA——ESPRIT算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相位phei = 2*pi*f*d*sind(theta),因此理論上來講測向的算法都可以用來測頻。

ESPRIT:Estimating signal parameters viarotational invariance techniques,中文為旋轉因子不變法。

?

ESPRIT用于測頻:

%Example_esprit clear all;clc;close all; N=200; %signal length m = N/2; L=N-m; s_amp=[1.31*exp(1i*pi/4),2.07*exp(1i*pi/3),1.88*exp(1i*pi/5)]; s_omega=[0.12*pi,0.37*pi,0.72*pi]; eps_sigma=0; sigma=0.5; x=zeros(1,N);%initialize w = sqrt(sigma)*randn(1,N); n = [1:N]; for slen=1:length(s_omega)x = x+s_amp(slen)*exp(1j*s_omega(slen)*n) ; end x=x+w; for n = 1:LX(:,n) = x(n:(n+m-1)); end for n = 1:LY(:,n) = x((n+1):(n+m)); end %Rxx\Rxy Rxx = 0; for i = 1:LRxx = Rxx+X(:,i)*X(:,i)'; end Rxx = Rxx/L; Rxy = 0; for i = 1:LRxy = Rxy+X(:,i)*Y(:,i)'; end Rxy = Rxy/L; [A,B] = eig(Rxx); var = min(diag(B)); I = eye(m); Z = diag(ones(1,m-1),-1); Cxx = Rxx - I*var; Cxy = Rxy - Z*var; [~,B] = eig(Cxx,Cxy); f=angle(diag(B)); [~,fpos]=sort(abs(abs(diag(B))-1)); f=f(fpos); fval=f(f>0); omega_est=sort(fval(1:length(s_amp))); disp('結果對比:') [omega_est,s_omega']

  

ESPRIT用于測向:

clear all clf set(0,'defaultaxesfontsize',22); M=12; Nb=32; P=3; %angles=[25 80 135]*(pi/180); angdeg=[80 90 115]; angles=angdeg*(pi/180); dlambda=0.5; %generate random bits of information poles=zeros(1,P); X=zeros(M,Nb); Rideal=zeros(M,M); for k=1:P, mu=pi*cos(angles(1,k)); poles(1,k)=exp(j*mu); a=exp(j*mu*(0:M-1)).'; Rideal=Rideal+a*a'; br=ones(1,Nb); temp=rand(1,Nb); br(find(temp<.5))=-1; bi=ones(1,Nb); temp=rand(1,Nb); bi(find(temp<.5))=-1; b=br+j*bi; X=X+a*b; end %add some noise X=X+0.6*(randn(M,Nb)+j*randn(M,Nb)); Rxx=X*X'/Nb; [E,D,V]=svd(Rxx); %ESPRIT algorithm: Es=E(:,1:P); Es1=Es(1:M-1,:); Es2=Es(2:M,:); Psi=Es1\Es2; [T,Phi]=eig(Psi); Phivec=diag(Phi); %plot eigenvalues from ESPRIT and compare with true frequencies polar(0,1,'.') hold on plot(real(poles),imag(poles),'kx','MarkerSize',12,'Linewidth',2); plot(real(Phivec),imag(Phivec),'ro','MarkerSize',12,'Linewidth',2); hold off legend('True "poles"','ESPRIT eigenvalues')

  

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的DOA——ESPRIT算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。