% the MUSIC-LIKE algorithm(without redundancy)
tic; % start a stopwatch timer
%-----------------------------initializing--------------------------------%
j=sqrt(-1);% j:presents the imaginary part "j"
N = 4; % the number of the signals
M = 5; % the number of array elements
d = 0.5; % the distance between each array element
n=512; % the sampling number
fs=1000; % the sampling rate (Hz)
%------------------------------processing---------------------------------%
Pmu=0;
for ll=1:50
% the signal source and the output matrix of the array elements
for i=1:N
r(i)=2*pi*randn(); % the random phase
end
a=[1 1 1 1]; %the amplitude of signal
w1=300;
nw=10;
for i=1:N
w(i)=w1+(i-1)*nw; % the frequency of each signal (Hz)
end
m=0:1/fs:(n-1)/fs;
for i=1:N
s(i,:)=a(i)*exp(j*w(i)*m+r(i)); % the signal
end
ang = [-15 10 25 30]; % the angle of the signal
SNR = 10; % the signal-to-noise ratio
pno = (1/N*2)/10^(SNR/10); % the power of the noise
no = pno/2*randn(M,n); % the noise
for k = 1:N
A(:,k) = exp(-j*(0:M-1)'*2*d*pi*sin(ang(k)*pi/180)); % the steering matrix of the uniform linear
% array
end
X=A*s+no; % the output matrix of the array elements
%-------------the MUSIC-LIKE algorithm(without redundancy)----------------%
Rcum=(kron(X,conj(X))*(kron(X,conj(X))'))/n-kron(X,conj(X))/n*kron(X,conj(X))'/n-kron(X*X'/n,
conj(X*X'/n)); % the fourth-order cumulant matrix of "X"
R=zeros(5,5);
R(1:4,1:4)=Rcum(1:4,1:4);
R(5,1:4)=Rcum(7,1:4);
R(1:4,5)=Rcum(1:4,7);
R(5,5)=Rcum(7,7); % the minimum redundancy matrix of the fourth-order cumulant matrix "Rcum"
% the decomposition of eigenvalue of the minimum redundancy matrix
[V D] = svd(R); % the sigular value decomposition of matrix "R"
En = V(:,5); % the noise subspace matrix that consists of the minimun eigenvectors
% produce the function of spatial spectrum
dis_ang = 1;
ang0 = -90:dis_ang:90; % the searching range of the signal parameter
for num = 1:length(ang0)
a = exp(-j*(0:M-1)'*2*d*pi*sin(ang0(num)*pi/180));
b0 = kron(a,conj(a)); % the steering vector matrix of the virtual uniform linear array
b=zeros(5,1);
b(1:4,:)=b0(1:4,:);
b(5,:)=b0(7,:); % the minimum redundancy steering vector matrix
y = En'*b;
Pmu0(num) = y'*y; % change ang0 continuously to search the peak
end
Pmu0 = 1./Pmu0;
Pmu0 = 10*log10(Pmu0);
Pmu=Pmu0+Pmu;
end
Pmu=Pmu/50; % the function of spatial spectrum
%-------------------------------plotting----------------------------------%
plot(ang0,Pmu,'b'); % the figure of the spatial spectrum
xlabel('角度(度)');ylabel('空间谱(dB)');
grid on;
toc; % read the stopwatch timer
MUSIC-LIKE(without-redundancy).rar_MUSCI_MUSIC_Like_四阶累积量_数据冗余度_
版权申诉
5星 · 超过95%的资源 143 浏览量
2022-07-14
14:22:46
上传
评论
收藏 1KB RAR 举报
四散
- 粉丝: 52
- 资源: 1万+
最新资源
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
- A pure Python library for adding tables to a Tkinter application
- Vector资源文件.zip
- MobaXterm-Installer
- MicroMsg.xlsx
- 88-520告白(520气球).zip
- HTML+CSS+JS精品网页模板H126.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈