Browse Source

Band pass individual units transfer functions fix

master
Apostolos Fanakis 6 years ago
parent
commit
e1e23bfc1f
  1. 51
      Band Pass Chebyshev/band_pass_design.m

51
Band Pass Chebyshev/band_pass_design.m

@ -291,14 +291,14 @@ clear -regexp ^transformation_
units_BW = zeros([1 band_pass_number_of_poles]);
units_C21 = zeros([1 band_pass_number_of_poles]);
units_C22 = zeros([1 band_pass_number_of_poles]);
units_R21 = zeros([1 band_pass_number_of_poles]);
units_R22 = zeros([1 band_pass_number_of_poles]);
units_R1 = zeros([1 band_pass_number_of_poles]);
units_R2 = zeros([1 band_pass_number_of_poles]);
units_frequency_scale_factors = zeros([1 band_pass_number_of_poles]);
units_amplitude_scale_factors = zeros([1 band_pass_number_of_poles]);
units_central_frequency_gain = zeros([1 band_pass_number_of_poles]);
units_alpha = zeros([1 band_pass_number_of_poles]);
units_Z22 = zeros([1 band_pass_number_of_poles]);
units_Z23 = zeros([1 band_pass_number_of_poles]);
units_Z2 = zeros([1 band_pass_number_of_poles]);
units_Z3 = zeros([1 band_pass_number_of_poles]);
unit_transfer_function = [tf(1) tf(1) tf(1) tf(1)];
for i=1:band_pass_number_of_poles
@ -309,9 +309,9 @@ for i=1:band_pass_number_of_poles
units_C21(1,i) = 1/(2*band_pass_poles_Q(1,i));
units_C22(1,i) = units_C21(1,i);
% Using the eq. 7-86
units_R21(1,i) = 1;
units_R1(1,i) = 1;
% Calculates R12 using the eq. 7-87
units_R22(1,i) = 4*band_pass_poles_Q(1,i)^2;
units_R2(1,i) = 4*band_pass_poles_Q(1,i)^2;
% Selects the appropriate frequency scale factor to transfer the
% normalized radial frequency back to the original
@ -325,8 +325,8 @@ for i=1:band_pass_number_of_poles
% Scales the circuit elements
units_C21(1,i) = 0.1*10^(-6);
units_C22(1,i) = 0.1*10^(-6);
units_R21(1,i) = units_amplitude_scale_factors(1,i);
units_R22(1,i) = units_R22(1,i)*units_amplitude_scale_factors(1,i);
units_R1(1,i) = units_amplitude_scale_factors(1,i);
units_R2(1,i) = units_R2(1,i)*units_amplitude_scale_factors(1,i);
% Calculates the gain at the central radial frequency and the alpha
% parameter using the eq. 7-89
@ -336,16 +336,16 @@ for i=1:band_pass_number_of_poles
% Calculates the values of the resistors used to diminish the entry
% using the eq. 7-90 (to include the scaling already done the equations
% are used in the form presented at example 7.2)
units_Z22(1,i) = units_R21(1,i)/units_alpha(1,i);
units_Z23(1,i) = units_R21(1,i)/(1-units_alpha(1,i));
units_Z2(1,i) = units_R1(1,i)/units_alpha(1,i);
units_Z3(1,i) = units_R1(1,i)/(1-units_alpha(1,i));
unit_Z_parallel = (units_Z2(1,i)*units_Z3(1,i))/(units_Z2(1,i)+units_Z3(1,i));
%TODO: build the tfs
%
unit_numerator = [-1/(units_R21(1,i)*units_C21(1,i)) ...
unit_numerator = [-1/(units_Z2(1,i)*units_C21(1,i)) ...
0];
unit_denominator = [1 ...
(2/units_C21(1,i))/units_R22(1,i) ...
1/(units_R22(1,i)*units_R21(1,i)*units_C21(1,i)^2)];
(2/units_C21(1,i))/units_R2(1,i) ...
1/(units_R2(1,i)*unit_Z_parallel*units_C21(1,i)^2)];
%
%{
unit_numerator = [-2*band_pass_poles_Q(1,i)^2*units_BW(1,i) ...
@ -357,29 +357,30 @@ for i=1:band_pass_number_of_poles
unit_transfer_function(i) = tf(unit_numerator, unit_denominator);
end
total_transfer_function = series(series(series(unit_transfer_function(1), ...
unit_transfer_function(2)), unit_transfer_function(3)), ...
unit_transfer_function(4));
total_transfer_function = series(series(series( ...
unit_transfer_function(1), unit_transfer_function(2)), ...
unit_transfer_function(3)), unit_transfer_function(4));
%total_transfer_function = total_transfer_function*38.2;
%plot_transfer_function(unit_transfer_function(2), [1 10]);
%ltiview(unit_transfer_function(1), unit_transfer_function(2), ...
% unit_transfer_function(3), unit_transfer_function(4), total_transfer_function);
%ltiview(total_transfer_function);
%{
plot_transfer_function(total_transfer_function, ...
[1 ...
[specification_central_frequency ...
941.83 ...
specification_low_stop_frequency ...
specification_low_pass_frequency ...
900 ...
specification_high_pass_frequency ...
specification_high_stop_frequency]);
%}
%plot_transfer_function(unit_transfer_function(2), [1 10]);
%ltiview(unit_transfer_function(1), unit_transfer_function(2), ...
% unit_transfer_function(3), unit_transfer_function(4));
%ltiview(total_transfer_function);
% Clears unneeded variables from workspace
clearVars = {'units_central_frequency_gain', 'i', 'units_alpha', ...
'unit_denominator', 'unit_numerator', ...
'unit_denominator', 'unit_numerator', 'unit_Z_parallel' ...
'units_amplitude_scale_factors', 'units_frequency_scale_factors'};
clear(clearVars{:})
clear clearVars

Loading…
Cancel
Save