fase array beaforming hjælp af Matlab

S

sasamdyu

Guest
Jeg har brug for hjælp på min kode, da jeg kan ikke finde ud af, hvilken del er den fejl, da jeg kan synes at få det output jeg ønsker ...

funktion [] = arrays;
klare alle;
Luk alle;
CLC;
CLF;

k = 2 * pi;
Mx = 5;
Ny = 5;
dx = 0.25;
dy = 0.25;
thmax2 = 0;
phimax2 = 0;
dtor = pi/180;
theta = linspace (1.180.180);
phi = linspace (1.180.180);

betax =- k * dx * sin (dtor * thmax2) * cos (dtor * phimax2);
betay =- k * dy * sin (dtor * thmax2) * sin (dtor * phimax2);

[Theta, PHI] = meshgrid (theta, phi);
AF3 = afnf (theta, PHI, Mx, Ny, dx, dy, betax, betay);
spherical_plot (AF3, theta, PHI)
ss = titel ('3 D Sfæriske plot af Array Factor ',' Fontsize ', 15);
tal
rect_plot (AF3)

% sfærisk plot
function spherical_plot (r, theta, PHI)
dtor = pi/180;
x = abs (r) .* sin (theta * dtor) .* cos (PHI * dtor);
y = abs (r) .* sin (theta * dtor) .* sin (PHI * dtor);
z = abs (r) .* cos (theta * dtor);
surf (x, y, z);
se (0.180);
C = [.8, .8, .8]; colormap (C), akse off lige;

function rect_plot (r)
S = abs (r);
% Mesh (-1 * (længde (S) / 2-1): 1: længde (S) / 2, -1 * (længde (S) / 2-1): 1: længde (S) / 2, S / norm (S))
% Mesh (-179:1:179, -45:1:45 S / norm (S))
mesh (-89:1:90, -89:1:90, S / norm (S));

% mesh (-45:1:45, -179:1:179, S / norm (S));

title ( 'Rektangulær Plot Planar Array lydfelt')
xlabel ( 'Angle Theta-xaxis indekseret m, i grader')
ylabel ( 'Angle phi-yaxis indekseret n, i Degrees')
zlabel ( 'Normalized Amlitude')

funktion [F10] = afnf (theta1, phi1, Mx, Ny, dx, dy, betax, betay)
k = 2 * pi;
dtor = pi/180;
AFx1 (MX) = 30;
AFy1 (Ny) = 30;
for theta = 1:1:180;
for phi = 1:1:180;
elementx = 1;
elementy = 1;
AFx1 (elementx) = 0;
AFy1 (elementy) = 0;
AXF = 0;
psix = k * dx * sin (theta * dtor-pi / 2) * cos (phi * dtor-pi / 2) betax;
psiy = k * dy * sin (theta * dtor-pi / 4) * sin (phi * dtor-pi / 2) betay;
for elementx = 1: Mx;
AFx2 (elementx) = exp (i * elementx * psix);
AFx3 (elementx) = AFx2 (elementx) AFx1 (elementx);
AFx1 (elementx 1) = AFx3 (elementx);
ende;

AXF = AFx1 (MX);
for elementy = 1: Ny;
AFy2 (elementy) = exp (i * elementy * psiy) * AXF;
AFy3 (elementy) = AFy2 (elementy) AFy1 (elementy);
AFy1 (elementy 1) = AFy3 (elementy);
ende;
AYF = AFy1 (Ny);
AF (phi, theta) = AYF;
ende;
ende;

F10 = AF;

 
som output vil du have?

Jeg har prøvet din kode, og det synes at virke fint ..
Beklager, men du skal logge ind for at se denne vedhæftede fil

 
angolaX skrev:

som output vil du have?Jeg har prøvet din kode, og det synes at virke fint ..
 
hej mand, jeg har ikke tid til at tjekke dit program, men her atteched er den kode, som jeg bruger til at plottet 3d rektangulære array.
kan du bare fjerne weightning w for at få en uniforme array jeg bare HPE, at det hjalp dig.

Kode:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

%%%%%%%%%%% Rayonnement 2D par Dolph-Chebyshev %%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

% forarbejdning array til en rektangulær vifte af Nx * Ny antenner, med

% henholdsvis dx og dy afstand langs x og y-aksen, med en SLR af RdB

% med Dolph chebychev wieghtningfunction Cheb_2D (Nx, Ny, dx, dy, RdB)dir_theta = 20;

dir_phi = 30;dir_ux = sin ((dir_theta/180) * pi) * cos ((dir_phi/180) * pi);

dir_uy = sin ((dir_theta/180) * pi) * sin ((dir_phi/180) * pi);

%%%%%% Calcul des coefs de Cheb korrespondenter au réseau%%%%

w = planar_dolphcheby (dx, dy, Nx, Ny, RdB);%%% udnyttelse de ces coefs pour le calcul du Facteur réseau %%%%%%%%%%%%%%%%%% Cas paire %%%%%%%%%%%%%%%%%%%%%%%

ulige = rem (Nx, 2);

if (ulige)

hh = waitbar (0, 'Processing ...');

ux_grid = -1:0.01:1;

uy_grid = -1:0.01:1;

for x = 1: length (ux_grid)

waitbar (x / længde (ux_grid));

ux = ux_grid (x);

for y = 1: length (uy_grid)uy = uy_grid (y);

B (x, y) = 0;

M = fix (Nx / 2);

for n =-M: M

for m =-M: M

B (x, y) = B (x, y) w (n M 1, M M 1) * exp (j * 2 * pi * (n * ux * dx m * uy * dy) ) * exp (j * 2 * pi * (n * dir_ux * dx m * dir_uy * dy));

ende

ende

ende

ende

close (hh)andenhh = waitbar (0, 'Processing ...');

ux_grid = -1:0.01:1;

uy_grid = -1:0.01:1;

for x = 1: length (ux_grid)

waitbar (x / længde (ux_grid));

ux = ux_grid (x);

for y = 1: length (uy_grid)uy = uy_grid (y);

B (x, y) = 0;

for m = 1: Nx

for n = 1: Ny

B (x, y) = B (x, y) w (m, n) * exp (-j * 2 * pi * (m * ux * dx n * uy * dy)) * exp (j * 2 * pi * (m * dir_ux * dx n * dir_uy * dy));

ende

ende

ende

ende

close (hh)endeB = abs (B) / max (max (abs (B)));

Størrelse (B);

gitteret

surf (ux_grid, uy_grid, (20 * log10 (B ))');

axis ([-1 1 -1 1 -70 0])

 
Alberich skrev:

hej mand, jeg har ikke tid til at tjekke dit program, men her atteched er den kode, som jeg bruger til at plottet 3d rektangulære array.

kan du bare fjerne weightning w for at få en uniforme array jeg bare HPE, at det hjalp dig.Kode:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

%%%%%%%%%%% Rayonnement 2D par Dolph-Chebyshev %%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

% forarbejdning array til en rektangulær vifte af Nx * Ny antenner, med

% henholdsvis dx og dy afstand langs x og y-aksen, med en SLR af RdB

% med Dolph chebychev wieghtningfunction Cheb_2D (Nx, Ny, dx, dy, RdB)dir_theta = 20;

dir_phi = 30;dir_ux = sin ((dir_theta/180) * pi) * cos ((dir_phi/180) * pi);

dir_uy = sin ((dir_theta/180) * pi) * sin ((dir_phi/180) * pi);

%%%%%% Calcul des coefs de Cheb korrespondenter au réseau%%%%

w = planar_dolphcheby (dx, dy, Nx, Ny, RdB);%%% udnyttelse de ces coefs pour le calcul du Facteur réseau %%%%%%%%%%%%%%%%%% Cas paire %%%%%%%%%%%%%%%%%%%%%%%

ulige = rem (Nx, 2);

if (ulige)

hh = waitbar (0, 'Processing ...');

ux_grid = -1:0.01:1;

uy_grid = -1:0.01:1;

for x = 1: length (ux_grid)

waitbar (x / længde (ux_grid));

ux = ux_grid (x);

for y = 1: length (uy_grid)uy = uy_grid (y);

B (x, y) = 0;

M = fix (Nx / 2);

for n =-M: M

for m =-M: M

B (x, y) = B (x, y) w (n M 1, M M 1) * exp (j * 2 * pi * (n * ux * dx m * uy * dy) ) * exp (j * 2 * pi * (n * dir_ux * dx m * dir_uy * dy));

ende

ende

ende

ende

close (hh)andenhh = waitbar (0, 'Processing ...');

ux_grid = -1:0.01:1;

uy_grid = -1:0.01:1;

for x = 1: length (ux_grid)

waitbar (x / længde (ux_grid));

ux = ux_grid (x);

for y = 1: length (uy_grid)uy = uy_grid (y);

B (x, y) = 0;

for m = 1: Nx

for n = 1: Ny

B (x, y) = B (x, y) w (m, n) * exp (-j * 2 * pi * (m * ux * dx n * uy * dy)) * exp (j * 2 * pi * (m * dir_ux * dx n * dir_uy * dy));

ende

ende

ende

ende

close (hh)endeB = abs (B) / max (max (abs (B)));

Størrelse (B);

gitteret

surf (ux_grid, uy_grid, (20 * log10 (B ))');

axis ([-1 1 -1 1 -70 0])

 
Af den måde, det er den fejl, at sasamdyu får:

"Function definitioner er ikke tilladt på prompten eller i scripts"

at søge på google ser det ud til, at funktioner ikke kan placeres inde i scripts.nogen ved, hvordan man løser denne fejl?

 
Alberich skrev:

hej mand, jeg har ikke tid til at tjekke dit program, men her atteched er den kode, som jeg bruger til at plottet 3d rektangulære array.

kan du bare fjerne weightning w for at få en uniforme array jeg bare HPE, at det hjalp dig.Kode:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

%%%%%%%%%%% Rayonnement 2D par Dolph-Chebyshev %%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%

% forarbejdning array til en rektangulær vifte af Nx * Ny antenner, med

% henholdsvis dx og dy afstand langs x og y-aksen, med en SLR af RdB

% med Dolph chebychev wieghtningfunction Cheb_2D (Nx, Ny, dx, dy, RdB)dir_theta = 20;

dir_phi = 30;dir_ux = sin ((dir_theta/180) * pi) * cos ((dir_phi/180) * pi);

dir_uy = sin ((dir_theta/180) * pi) * sin ((dir_phi/180) * pi);

%%%%%% Calcul des coefs de Cheb korrespondenter au réseau%%%%

w = planar_dolphcheby (dx, dy, Nx, Ny, RdB);%%% udnyttelse de ces coefs pour le calcul du Facteur réseau %%%%%%%%%%%%%%%%%% Cas paire %%%%%%%%%%%%%%%%%%%%%%%

ulige = rem (Nx, 2);

if (ulige)

hh = waitbar (0, 'Processing ...');

ux_grid = -1:0.01:1;

uy_grid = -1:0.01:1;

for x = 1: length (ux_grid)

waitbar (x / længde (ux_grid));

ux = ux_grid (x);

for y = 1: length (uy_grid)uy = uy_grid (y);

B (x, y) = 0;

M = fix (Nx / 2);

for n =-M: M

for m =-M: M

B (x, y) = B (x, y) w (n M 1, M M 1) * exp (j * 2 * pi * (n * ux * dx m * uy * dy) ) * exp (j * 2 * pi * (n * dir_ux * dx m * dir_uy * dy));

ende

ende

ende

ende

close (hh)andenhh = waitbar (0, 'Processing ...');

ux_grid = -1:0.01:1;

uy_grid = -1:0.01:1;

for x = 1: length (ux_grid)

waitbar (x / længde (ux_grid));

ux = ux_grid (x);

for y = 1: length (uy_grid)uy = uy_grid (y);

B (x, y) = 0;

for m = 1: Nx

for n = 1: Ny

B (x, y) = B (x, y) w (m, n) * exp (-j * 2 * pi * (m * ux * dx n * uy * dy)) * exp (j * 2 * pi * (m * dir_ux * dx n * dir_uy * dy));

ende

ende

ende

ende

close (hh)endeB = abs (B) / max (max (abs (B)));

Størrelse (B);

gitteret

surf (ux_grid, uy_grid, (20 * log10 (B ))');

axis ([-1 1 -1 1 -70 0])

 
hej ..eller anden måde er jeg stadig kan ikke køre kodning u gav mig ...hjælp ...Lagt efter 6 minutter:hello Alberich ...u gav mig denne kodning, men en eller anden måde jeg kan ikke køre programmet ..hjælp ...Kode:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% Rayonnement 2D par Dolph-Chebyshev %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% forarbejdning array til en rektangulær vifte af Nx * Ny antenner, med% henholdsvis dx og dy afstand langs x og y-aksen, med en SLR af RdB% med Dolph chebychev wieghtning
function Cheb_2D (Nx, Ny, dx, dy, RdB)
dir_theta = 20;dir_phi = 30;
dir_ux = sin ((dir_theta/180) * pi) * cos ((dir_phi/180) * pi);dir_uy = sin ((dir_theta/180) * pi) * sin ((dir_phi/180) * pi);%%%%%% Calcul des coefs de Cheb korrespondenter au réseau%%%%w = planar_dolphcheby (dx, dy, Nx, Ny, RdB);
%%% udnyttelse de ces coefs pour le calcul du Facteur réseau %%%%%%%%%
%%%%%%%%% Cas paire %%%%%%%%%%%%%%%%%%%%%%%ulige = rem (Nx, 2);if (ulige)hh = waitbar (0, \ 'Processing ... \');ux_grid = -1:0.01:1;uy_grid = -1:0.01:1;for x = 1: length (ux_grid)waitbar (x / længde (ux_grid));ux = ux_grid (x);for y = 1: length (uy_grid)
uy = uy_grid (y);B (x, y) = 0;M = fix (Nx / 2);for n =-M: Mfor m =-M: MB (x, y) = B (x, y) w (n M 1, M M 1) * exp (j * 2 * pi * (n * ux * dx m * uy * dy) ) * exp (j * 2 * pi * (n * dir_ux * dx m * dir_uy * dy));endeendeendeendeclose (hh)anden
hh = waitbar (0, \ 'Processing ... \');ux_grid = -1:0.01:1;uy_grid = -1:0.01:1;for x = 1: length (ux_grid)waitbar (x / længde (ux_grid));ux = ux_grid (x);for y = 1: length (uy_grid)
uy = uy_grid (y);B (x, y) = 0;for m = 1: Nxfor n = 1: NyB (x, y) = B (x, y) w (m, n) * exp (-j * 2 * pi * (m * ux * dx n * uy * dy)) * exp (j * 2 * pi * (m * dir_ux * dx n * dir_uy * dy));endeendeendeendeclose (hh)
ende
B = abs (B) / max (max (abs (B)));Størrelse (B);gitteretsurf (ux_grid, uy_grid, (20 * log10 (B)) \ ');axis ([-1 1 -1 1 -70 0])
 

Welcome to EDABoard.com

Sponsor

Back
Top