## Copyright (C) 2018 Jens Ahrensfeld ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{retval} =} sallenkey_eval (@var{input1}, @var{input2}) ## ## @seealso{} ## @end deftypefn ## Author: Jens Ahrensfeld ## Created: 2018-05-28 function sallenkey_eval (f_cut_Hz, Q) w_cut = 2*pi*f_cut_Hz; m = 1.0; n = Q*(m*m + 1)/m; R = 1.0e+3; C = 1/(R*w_cut) R1 = m*R R2 = R/m C1 = n*C C2 = C/n w0 = 0.1; w1 = 2*pi*1e+6; w_step = 10; s = j*(w0:w_step:w1); H_s = 1./(1 + C2*(R1 + R2)*s + C1*C2*R1*R2*s.^2); semilogx(abs(s)/(2*pi), abs(H_s)); grid; xlabel('f/Hz'); ylabel('|H(j*2*pi*f)|') endfunction