Matlab tricks--array response vector
程序员文章站
2023-12-30 15:38:22
...
%% mmWave channel generation
% kd = 2*pi*d/lambda
% array response vector
% input switch mode
% mode 1--> ULA
% mode 2 --> URA
% N_ula ---> total elements number
% x for ula ---> AoD
% N_h ---> horizontal elements number
% N_v ---> vetical elements number
% N_upa = N_h*N_v ---> total elements number
% x for URA x(1) --> zenith(elevation) angle of departure; x(2) -->azimuth
% angle of departure (Note: for different coordinate system, the
% arrayresponse vector can be different, yet it won't change the basic
% property
% written by Palace_Wangle 2020/01/09 [email protected]
kd = pi;
A_ula = @(x) sqrt(1/N_ula)*exp( (0:N_ula-1)'*1j*kd*sin(x));
A_ura = @(x) sqrt(1/N_upa)* ( kron(exp(1j*kd*(0:N_h-1)'*sin(x(1))*sin(x(2))),exp(1j*kd*(0:N_v-1)'*cos(x(2))) ) ) ; % UPA