導航:首頁 > 源碼編譯 > music演算法matlab程序

music演算法matlab程序

發布時間:2022-12-30 11:29:36

⑴ matlab編程問題:ARMA和MUSIC

主要問題包括:

1、變數x未定義。

2、函數MUSIC裡面:

S=[S(257:512)S(1:256)];

應為

S=[S(257:512)S(1:256)];

另外,clearR未定義,不知道干什麼用的,可以直接刪掉。

3、函數ARMA裡面,調用的Burg未定義。

⑵ 幫我這個Matlab的MUSIC演算法程序怎麼改才能運行

clear
m=sqrt(-1);
delta=0.101043;
a1=-0.850848;
sample=32; %number of sample spot
p=10; %number of sample spot in coef method;
f1=0.05; f2=0.40; f3=0.42;
fstep=0.01;
fstart=-0.5;
fend=0.5;
f=fstart:fstep:fend;
nfft=(fend-fstart)/fstep+1;
%un=urn+juin
urn= normrnd(0,delta/2,1,sample);
uin= normrnd(0,delta/2,1,sample);
un=urn+m*uin;
%計算 zn
for n=1:sample-1
zn(1)=un(1);
zn(n+1)=-a1*zn(n)+un(n+1);
end

%計算 xn
for n=1:sample
xn(n)=2*cos(2*pi*f1*(n-1))+2*cos(2*pi*f2*(n-1))+2*cos(2*pi*f3*(n-1))+sqrt(2)*real(zn(n));
end

x=xn';
for k=0:1:sample-1
s=0;
for n=1:sample-k,
s=s+conj(x(1,n))*x(1,n+k); %calculate the value of rxx
end
rxx(1,k+1)=(1/sample)*s;
end
Rx=zeros(sample,sample);
Rx=toeplitz(rxx(1,1:32));
[U,S,V]=svd(Rx);
Pmusicf=zeros(1,1/fstep+1);
ei=zeros(1,sample);
for i=1:length(f)
for j=1:sample
ei(1,j)=exp(-2*pi*(j-1)*f(i)*m);
end;
sum=0;
for k=7:sample
sum=sum+abs(ei*V(:,k))^2;
end
Pmusicf(1,i)=10*log10(1/sum);
end
figure
plot(f,Pmusicf);
title('人工計算music演算法');

pp=6;
x=xn';
M=length(x);
rxx=xcorr(x,'biased');
rxx=[rxx(M:end),0];
R=toeplitz(rxx,rxx);
Rxx=R(1:M,1:M);
Rxy=R(1:M,2:end);
[U,S,V]=svd(Rxx);
U1=U(:,1:pp);
S1=S(1:pp,1:pp);
V1=V';
V1=V1(1:pp,:);
A=U1.'*Rxy*V1.';
d=eig(S1,A);
y=angle(d)/2/pi;
figure
stem(y,ones(1,length(y)));
title('人工計算esprit演算法');

f=-0.5:0.001:0.5;
j=sqrt(-1);
for n=1:1001
ff(n)=0;
for k=1:length(xn)
ff(n)=xn(k)*exp(-j*2*pi*n*k/1001)+ ff(n);
end
ff(n)=abs( ff(n)).^2/(length(xn));
end
ff=10*log10(ff);
figure
plot(f,ff)

⑶ music演算法的詳細內容

MUSIC演算法是空間譜估計測向理論的重要基石。演算法原理 如下:
(1) 不管測向天線陣列形狀如何,也不管入射來波入射角的維數如何,假定陣列由M個陣元組成,則陣列輸出模型的矩陣形式都可以表示為:Y(t)=AX(t)+N(t)
其中,Y是觀測到的陣列輸出數據復向量;X是未知的空間信號復向量;N是陣列輸出向量中的加性雜訊;A是陣列的方向矩陣;此處,A矩陣表達式由圖冊表示。
MUSIC演算法的處理任務就是設法估計出入射到陣列的空間信號的個數D以及空間信號源的強度及其來波方向。
(2) 在實際處理中,Y得到的數據是有限時間段內的有限次數的樣本(也稱快拍或快攝),在這段時間內,假定來波方向不發生變化,且雜訊為與信號不相關的白雜訊,則定義陣列輸出信號的二階矩:Ry。
(3) MUSIC演算法的核心就是對Ry進行特徵值分解,利用特徵向量構建兩個正交的子空間,即信號子空間和雜訊子空間。對Ry進行特徵分解,即是使得圖冊中的公式成立。
(4) U是非負定的厄米特矩陣,所以特徵分解得到的特徵值均為非負實數,有D個大的特徵值和M-D個小的特徵值,大特徵值對應的特徵向量組成的空間Us為信號子空間,小特徵值對應的特徵向量組成的空間Un為雜訊子空間。
(5) 將雜訊特徵向量作為列向量,組成雜訊特徵矩陣 ,並張成M-D維的雜訊子空間Un,雜訊子空間與信號子空間正交。而Us的列空間向量恰與信號子空間重合,所以Us的列向量與雜訊子空間也是正交的,由此,可以構造空間譜函數。

(6) 在空間譜域求取譜函數最大值,其譜峰對應的角度即是來波方向角的估計值。

⑷ 空間譜分析的MUSIC演算法的MATLAB程序

這么專業的問題還是去專業的論壇看看吧.

⑸ matlab 循環程序的問題

改了點東西,你看你是不是這個意思?
clear all;
clc;
%初始數據
sensor_number=5; %陣元數
N_x=1024; %快拍數
f=8*10^9; %信號頻率
l=3*10^8/f; %波長
d=0.5*l; %陣元間距
snr=20;
snr1=10.^(snr/20); %信噪比
theta=[0 20 40]; %信號角度
rtheta=theta*pi/180;
ll=length(theta);

%生成信號
for m=1:sensor_number;
for n=1:ll;
A(m,n)=exp(-1i*2*pi*(m-1)*d*sin(rtheta(n))/l);
end
end

%解析信號虛部是實部的希爾伯特變換,採用復信號的表示方法,模擬入射信號
for m=1:ll;
for n=1:N_x;
p1=rand(1,1);
p2=rand(1,1);
sr(m,n)=sqrt(-2*snr1*snr1*log(p1))*cos(2*pi*p2);
si(m,n)=sqrt(-2*snr1*snr1*log(p1))*sin(2*pi*p2);
s(m,n)=sr(m,n)+1i*si(m,n);
end
end
%高斯白雜訊
for m=1:sensor_number;
for n=1:N_x;
p3=rand(1,1);
p4=rand(1,1);
wr(m,n)=sqrt(-2*log(p3))*cos(2*pi*p4);
wi(m,n)=sqrt(-2*log(p3))*sin(2*pi*p4);
w(m,n)=wr(m,n)+1i*wi(m,n);
end
end
x=A*s+w;
%構造協方差矩陣,特徵分解
C2=x*x'/N_x;
M=m;
C33=zeros(M,M);
%for j=1:M
%for i=1:M-j+1
%C33(i,i+j-1)=C2(1,j);
% end
%end
%for j=2:M
%for i=1:M-j+1
%C33(i+j-1,i)=conj(C2(1,j));
%end
%end

C3=zeros(M,M);
for i=1:M
C3(i,i)=C2(1,1);
end
for i=1:M-1
C3(i,i+1)=C2(1,2);
end
for i=1:M-1
C3(i+1,i)=conj(C2(1,2));
end
for i=1:M-2
C3(i,i+2)=C2(1,3);
end
for i=1:M-2
C3(i+2,i)=conj(C2(1,3));
end
for i=1:M-3
C3(i,i+3)=C2(1,4);
end
for i=1:M-3
C3(i+3,i)=conj(C2(1,4));
end
for i=1:M-4
C3(i,i+4)=C2(1,5);
end
for i=1:M-4
C3(i+4,i)=conj(C2(1,5));
end

[V D]=eig(C3);
[lambda index]=sort(diag(D),'descend');
lambda=lambda';
%AIC准則判斷信源數
for k=0:sensor_number-1
temp0=sum(lambda(k+1:sensor_number))/(sensor_number-k);
temp1=prod(lambda(k+1:sensor_number))^(1/(sensor_number-k));
Lambda=temp0/temp1;
AIC(k+1)=2*N_x*(sensor_number-k)*log(Lambda)+2*k*(2*sensor_number-k);
end
[aic_min b]=min(AIC);
num=b-1;%估計出的信源數
disp('source_number=');
disp(num);
%雜訊子空間
Un=V(:,index(num+1:sensor_number));
Gn=Un*Un';
%譜峰搜索
searching_doa=-90:0.1:90;
for i=1:length(searching_doa)
a_theta=exp(-1i*(0:sensor_number-1)'*2*pi*d*sin(pi*searching_doa(i)/180)/l);
Pmusic(i)=1./abs((a_theta)'*Gn*a_theta);
end

plot(searching_doa,10*log10(Pmusic),'r');
xlabel('入射角/degree');
ylabel('空間譜/dB');
legend('Music Spectrum');
title('經典MUSIC估計');
grid on;

⑹ 空間譜估計均勻線陣music演算法matlab程序 急求!!!!!!

先用特徵值分解估計出信號個數,
然後MUSIC演算法中找出對應信號或信號雜訊的特徵向量,建立子空間。
S'*En*En'*S, 找最小值,譜搜索就好了。S是array manifold,En是雜訊的特徵向量。
函數照這個格式編就行 function output=MUSIC(array,Rxx,M)
array是線陣坐標矩陣,Rxx是接收數據的二階統計量,M是信號個數。
自己編吧,不難。。

⑺ 在matlab中用pmusic進行諧波頻譜分析,做出來的圖發現橫軸是歸一化的頻率,縱軸是分貝。

t = 0:1:2000;
x=40*cos(2*pi*50*t+5*pi/180)+3*cos(2*pi*3*50*t+10*pi/180)+5*cos(2*pi*5*50*t+30*pi/180)+4*cos(2*pi*7*50*t+60*pi/180)+2*cos(2*pi*9*50*t+100*pi/180)+4*cos(2*pi*68.8*t+80*pi/180);
x=x+4*randn(1,length(t));
pmusic(x,10)
哈哈
我不會

⑻ 關於均衡器的matlab演算法

data應該就是語音不同頻段上的分量
原理簡單的說就是讀取存入的錄音,fft變換。fft是根據采樣點數來的,因為要在頻譜上處理,所以要轉換。data的那一段就是干這個的。獲得頻譜分量後,就可以根據均衡器的輸入,亂來了

⑼ 請問用matlab做數據處理,需要數據加窗函數的music演算法怎麼做,出圖是功率譜的

n=0:0.1:200;%設定信號時間長度為0到200秒,采樣間隔0.1,則采內樣頻率為10HZ,點數2001

y=sin(2*pi*0.2*n)+sin(2*0.213*n);

Y=fft(y);%FFTPyy=Y.*conj(Y)/2000;%信號功率譜f=10*(0:1000)/2000;%計算橫容軸頻率值figure(1)subplot(2,1,1),plot(n,y),title('信號'),xlabel('時間(S)')subplot(2,1,2),plot(f,Pyy(1:1001)),title('信號功率譜'),xlabel('頻率(Hz)')

⑽ 關於DOA的MUSIC演算法 編程

難呀···

閱讀全文

與music演算法matlab程序相關的資料

熱點內容
租伺服器要看什麼 瀏覽:162
Lightroom文件夾移動以後 瀏覽:964
web前端pdf 瀏覽:896
程序員養雞創業 瀏覽:501
山西有什麼app 瀏覽:408
app怎麼樣購買內存 瀏覽:32
如何注冊sqlserver伺服器 瀏覽:78
上士命令 瀏覽:490
股市中帶星號的app是什麼 瀏覽:711
什麼路由可以刷機做列印機伺服器 瀏覽:9
電腦怎麼找到雲伺服器 瀏覽:873
微信怎麼發應用app 瀏覽:776
花生殼dns伺服器地址 瀏覽:650
squad伺服器一般什麼時候人多 瀏覽:481
程序員戰門課 瀏覽:476
config保存伺服器地址 瀏覽:319
預訂網吧座位的app叫什麼 瀏覽:418
香港伺服器主機地址 瀏覽:642
網店美工pdf 瀏覽:449
一堆文件夾怎麼弄出來 瀏覽:745