s-parametri alkaen fdtd

R

ramani

Guest
kukaan voi haluta auttaa we kuinka uuttamiseksi s-parametri alkaen fdtd simulointi result.if jokin on Matlab koodaavia että lataa sitä.

 
tämä voi olla hyödyllistä,
että tämä on 3d
s parametrit ovat kautta Fourier-muunnos
------------------------
mr = 1, er = 1
m = mr * 4 * pi * 10 ^ -7
e = er * 8,854 * 10 ^ -12
h = 0,075 * 10 ^ -2
dx = h; dz = h;
c = 1 / (m * e) ^ 0,5
dt = 0,5 * h / c
T = 20 * dt
a = 1,5 * 10 ^ -2
Ex = nollilla (370);
Ez = nollilla (370);
Hy = nollilla (370);
c1 = 350; c2 = 350;
AB1 = (c * dt-dz) / (c * dt dz);
AB2 = (c * c * e * dz * dt) / (2 * dx * (c * dt dz));
volt_history1 = nollilla (1,3000);
volt_history2 = nollilla (1,3000);
Hy_eskilk1 = nollilla (20,3000);
Hy_eskilk2 = nollilla (20,3000);
Hy_eskison1 = nollilla (20,3000);
Hy_eskison2 = nollilla (20,3000);
poika = nollilla (1.511);
son1 = nollilla (1.511);
fftvoltson = nollilla (1,4096);
fftvolthis = nollilla (1,4096);
bolum = nollilla (1,4096);
bolum1 = nollilla (1,4096);
bolumson = nollilla (1.103);
j = 1:3000

jos j <= 6 * T / dt;
Ex (c2: c2 19,1) = exp (- (j * dt-3 * T) ^ 2 / T ^ 2);
% elseif j> 6 * T / dt & & j <= 6 * T / dt 10
% Ex (c2: c2 19,1) = 0;
% elseif j> 6 * T / dt 10
% B = c2: c2 19
% Hy (b, 1) = Hy_eskilk2 (b-c2 1)-AB1 * (Hy_eskilk1 (b-c2 1)-Hy (b, 2)) AB2 * (Ez (b 1,2) Ez (b 1,1)-Ez (b, 2)-Ez (b, 1));
%
endloppu
% abc buraya
x = 1:20
Hy_eskilk1 (x, j) = Hy (c2 x-1, 1);
Hy_eskilk2 (x, j) = Hy (c2 x-1, 2);
Hy_eskison1 (x, j) = Hy (1, c2 x-1);
Hy_eskison2 (x, j) = Hy (2, c2 x-1);
loppu
k = 1:370

i = 1:369

jos k> 1
jos k == 350 & & i <350
Ex (i, k) = 0;
elseif k == 370
Ex (i, k) = 0;
muuten
Ex (i, k) = ex (i, k) - (dt / (dz * e)) * (Hy (i, k)-Hy (i, k-1));
loppu

muuten
Ex (i, k) = ex (i, k) - (dt / (dz * e)) * Hy (i, k);
loppu

jos k <370
jos k == 1 & & i> 349 & & J> 6 * T / dt 10
Hy (i, 1) = Hy_eskilk2 (i-c2 1, j-1)-AB1 * (Hy (i, 1)-Hy (i, 2)) AB2 * (Ez (i 1,2) Ez (i 1,1)-Ez (i, 2)-Ez (i, 1));
% elseif i == 1 & & k> 349
% Hy (1, i) = Hy_eskison2 (k 1- c1)-AB1 * (Hy_eskison1 (k 1- c1)-Hy (2, i))-AB2 * (Ex (2, i 1) Ex (1, i 1)-Ex (2, i)-Ex (1, i));
elseif i == 1 & & k> 349 & & J> 3
Hy (1, k) = Hy_eskison2 (k 1- c1, j-1)-AB1 * (Hy (1, k)-Hy (2, k))-AB2 * (Ex (2, k 1) Ex (1, k 1)-Ex (2, k)-Ex (1, k));
elseif i ~ = 1
Hy (i, k) = Hy (i, k) - (dt / (dz * m)) * (Ex (i, k 1)-Ex (i, k)) (dt / (m * dx) ) * (Ez (i 1, k)-Ez (i, k));
loppu
jos i == 349 & & k <350
Ez (i 1, k) = 0;
elseif i == 369
Ez (i 1, k) = 0;
elseif i> 1
Ez (i, k) = Ez (i, k) (dt / (dx * e)) * (Hy (i, k)-Hy (i-1, k));
muuten
Ez (i, k) = Ez (i, k) (dt / (dx * e)) * Hy (i, k);
loppu
loppu
loppu
loppu

voltage1 = 0;
x = 1:20
voltage1 = voltage1 Ex (c2 x-1-, C1-15);
loppu
volt_history1 (j) = voltage1 * dx;
voltage2 = 0;
x = 1:20
voltage2 = voltage2 Ez (C1-15, c2 x-1);
loppu
volt_history2 (j) = voltage2 * dx;
%,
kun = c1: c1 19
% Hy (1, a) = Hy_eskison2 (a 1- c1)-AB1 * (Hy_eskison1 (a 1- c1)-Hy (2, a))-AB2 * (ex (2, 1) Ex (1, joka 1)-Ex (2 a)-Ex (1, a));
%
endloppu
% asetettu (gcf, "Renderer", "zbuffer ');
% mesh (Ex);
% i = 1700:2100
% Volt_history1 (i) = volt_history1 (i);
% Volt_history2 (i) = volt_history2 (i);
%
end% sivujuoni (2,1,1);
% plot (volt_history1)
% sivujuoni (2,1,2);
% plot (volt_history2)
% volt1 = fft (volt_history1, 4096);
% plot (abs (volt1))
%------------------------------------------------- ----------------------
Ex1 = nollilla (20,2900);
Ez1 = nollilla (20,2900);
Hy1 = nollilla (20,2900);
c1 = 350; c2 = 350;
AB1 = (c * dt-dz) / (c * dt dz);
AB2 = (c * c * e * dz * dt) / (2 * dx * (c * dt dz));
volt_history11 = nollilla (1,3000);

j = 1:3000

jos j <= 6 * T / dt;
Ex1 (1:19,1) = exp (- (j * dt-3 * T) ^ 2 / T ^ 2);
loppu

k = 1:2000

i = 1:19
jos k> 1
Ex1 (i, k) = ex1 (i, k) - (dt / (dz * e)) * (Hy1 (i, k)-Hy1 (i, k-1));
muuten
Ex1 (i, k) = ex1 (i, k) - (dt / (dz * e)) * Hy1 (i, k);
loppu

Hy1 (i, k) = Hy1 (i, k) - (dt / (dz * m)) * (ex1 (i, k 1)-EX1 (i, k)) (dt / (m * dx) ) * (Ez1 (i 1, k)-Ez1 (i, k));
jos i == 1 | | i == 20
Ez1 (i, k) = 0;
muuten
Ez1 (i, k) = Ez1 (i, k) (dt / (dx * e)) * (Hy1 (i, k)-Hy1 (i-1, k));
loppu

loppu
loppu
voltage11 = 0;
x = 1:19
voltage11 = voltage11 EX1 (x, c1-15);
loppu
volt_history11 (j) = voltage11 * dx;
loppu
% plot (volt_history11)
% asetettu (gcf, "Renderer", "zbuffer ');
% mesh (Ez);
i = 1:3000
voltson (i) = volt_history1 (i)-volt_history11 (i);
loppu
% plot (volt_history1);
fftvoltson = fft (voltson, 4096);
fftvolthis = fft (volt_history11, 4096);
fftvolthis1 = fft (volt_history2, 4096);
i = 1:4096
bolum (i) = fftvoltson (i) / fftvolthis (i);
loppu
% plot (abs (bolum));
% plot (fftvolthis)
i = 1:4096
bolum1 (i) = fftvolthis1 (i) / fftvolthis (i);
loppuplot (abs (bolumson)); legenda ( '| S11 | ^ 2 | S12 | ^ 2');
xlabel ( 'taajuus (GHz)');
asetettu (gca, "XTick", [0 52 103])
asetettu (gca, "XTickLabel", ('0 ','10','20 '))
asetettu (gca, "YLim", [0,3 1,1])
akselin tiukka

 
Melko helppoa:
kanssa oAB on FDTD vaste sataman A liite extication peräisin B.
S11 = FFT (o11, N). / FFT (i1, N);
S21 = FFT (o21, N). / FFT (i1, N);
..
S34 = FFT (o34, N). / FFT (I4, N);

ja niin edelleen.
valita N sen suhteen, miten usein päätöslauselma haluat ja aika näytteenotto olet, p.ex N = T / timestep

Terveisin,
David

 
hallo supaswing,
Voisitteko vielä kerran selittää, miten tämä lausunto on voimassa koodi lähettämien cakalhunter sen määrittämiseksi, s-parametrit.

 
kiitos friendds nämä koodit ovat erittäin hyödyllisiä

 

Welcome to EDABoard.com

Sponsor

Back
Top