Why does this code give error?
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
clear;clc
%%  
fc = 3e8;% Carrier frequency
Nb = 1000;% Number of snapshots
c = 3e8;
wavelength = c/fc;% The wavelength of the received signal 
d = 0.5*wavelength; 
theta = [5 40];
M = length(theta);% Number of signals
N = 10;% Number of antennas
% Wavenumber
beta = 2*pi/wavelength;
% Signal amplitude
A = 1;   
% SNR (dB)
snr = 5;    
% Variance of noise
sigma=sqrt((A^2)/(2*10^(snr/10)));
% Source signal 
D = randi(M,Nb,1);
S =A*(2*D - 1);
% The electrical phase shift from element to element along the array
phi=beta*d*cos(theta*pi/180);  
% Matrix of steering vectors
for i=1:M
  for k=1:N;
    VecteurDirectionnel(k,i)= exp(j*(k-1)*phi(i));
  end
end
% White Gaussien noise
B = (sigma^2)*(randn(N,Nb)+j*randn(N,Nb))/sqrt(2);
% Array output:signal plus noise
X = VecteurDirectionnel*S+B;
% Estimation of the spatial correlation matrix of the observed signal
Rxx = X*X'/Nb;
% Eigen decomposition
[Vi,Li] = eig(Rxx);
[L,I] = sort(diag(Li),'descend');
V = Vi(:,I);
Vs = V(:,1:M);
Vs1=Vs(1:N-1,:);
Vs2=Vs(2:N,:);
% Direction Of Arrival
% Least square
xsi=linsolve(Vs(1:N-1,:),Vs(2:N,:));
% DOA estimation
doa=acosd((angle(eig(xsi))/(2*pi*d)))
0 commentaires
Réponse acceptée
  Matt J
      
      
 le 16 Avr 2024
        
      Modifié(e) : Matt J
      
      
 le 16 Avr 2024
  
      As you can see, VecteurDirectionnel and S are the wrong sizes for matrix multiplication,
whos VecteurDirectionnel S
% Array output:signal plus noise
X = VecteurDirectionnel*S+B;
6 commentaires
  Matt J
      
      
 le 19 Avr 2024
				Well S is Nb x 1 because D is Nb x 1, from this line,
D = randi(M,Nb,1);
Perhaps you meant to have,
D = randi([low, hi] , [M,Nb]);
but we have no way of knowing what you intended the low and hi limits to be.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Beamforming and Direction of Arrival Estimation dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


