⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculate_frequency_domain_outputs.m

📁 The Finite Difference Time Domain Method for Electromagnetics With MATLAB Simulations Atef Elshe
💻 M
字号:
disp('generating frequency domain outputs');

frequency_array = frequency_domain.frequencies;

% sampled electric fields in frequency domain
for ind=1:number_of_sampled_electric_fields
    x = sampled_electric_fields(ind).sampled_value;
    time_shift = 0;
    [X] = time_to_frequency_domain(x, dt, frequency_array, time_shift);
    sampled_electric_fields(ind).frequency_domain_value = X;
    sampled_electric_fields(ind).frequencies = frequency_array;
end

% sampled magnetic fields in frequency domain
for ind=1:number_of_sampled_magnetic_fields
    x = sampled_magnetic_fields(ind).sampled_value;
    time_shift = -dt/2;
    [X] = time_to_frequency_domain(x, dt, frequency_array, time_shift);
    sampled_magnetic_fields(ind).frequency_domain_value = X;
    sampled_magnetic_fields(ind).frequencies = frequency_array;
end

% sampled voltages in frequency domain
for ind=1:number_of_sampled_voltages
    x = sampled_voltages(ind).sampled_value;
    time_shift = 0;
    [X] = time_to_frequency_domain(x, dt, frequency_array, time_shift);
    sampled_voltages(ind).frequency_domain_value = X;
    sampled_voltages(ind).frequencies = frequency_array;
end

% sampled currents in frequency domain
for ind=1:number_of_sampled_currents
    x = sampled_currents(ind).sampled_value;
    time_shift = -dt/2;
    [X] = time_to_frequency_domain(x, dt, frequency_array, time_shift);
    sampled_currents(ind).frequency_domain_value = X;
    sampled_currents(ind).frequencies = frequency_array;
end

% voltage sources in frequency domain
for ind=1:number_of_voltage_sources
    x = voltage_sources(ind).waveform;
    time_shift = 0;
    [X] = time_to_frequency_domain(x, dt, frequency_array, time_shift);
    voltage_sources(ind).frequency_domain_value = X;
    voltage_sources(ind).frequencies = frequency_array;
end

% current sources in frequency domain
for ind=1:number_of_current_sources
    x = current_sources(ind).waveform;
    time_shift = 0;
    [X] = time_to_frequency_domain(x, dt, frequency_array, time_shift);
    current_sources(ind).frequency_domain_value = X;
    current_sources(ind).frequencies = frequency_array;
end

% calculation of S-parameters
% calculate incident and reflected power waves
for ind=1:number_of_ports
   svi = ports(ind).sampled_voltage_index; 
   sci = ports(ind).sampled_current_index; 
   Z = ports(ind).impedance;
   V = sampled_voltages(svi).frequency_domain_value;
   I = sampled_currents(sci).frequency_domain_value;
   ports(ind).a = 0.5*(V+Z.*I)./sqrt(real(Z));
   ports(ind).b = 0.5*(V-conj(Z).*I)./sqrt(real(Z));   
   ports(ind).frequencies = frequency_array;
end

% calculate the S-parameters
for ind=1:number_of_ports
    if ports(ind).is_source_port == true
        for oind=1:number_of_ports
            ports(ind).S(oind).values = ports(oind).b ./ ports(ind).a;
        end
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -