Engineering School, 2nd year
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

35 lines
970 B

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// * * * * * * * * * S U P P O R T F U N C T I O N * * * * * * * * *
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// calculation of the differentiator filter according to Dvornikov's method
// based on interpolating polynomials
function maximum = calculate_differentiator(filter_order)
n = fix(filter_order-1)/2;
if ~modulo(n,2) then error('Filter order must be even'); end
N = 21;
alpha = zeros(1,N);
k1 = 2;
k2 = N;
for m = [1 : n],
r1 = 1;
for k = [1: n],
if k == m then
r2 = 1;
else
r2 = 1 - (m/k)^2;
end
r1 = r1 * r2;
end
r1 = 1/(2*r1*m);
alpha(1,k1) = -r1;
alpha(1,k2) = r1;
k2 = k2 - 1;
end
size_alpha = size(alpha);
//disp(size_alpha);
//disp(alpha);
//disp(size_alpha(1) - n+1);
alpha = alpha(size_alpha(2) - n+1 : size_alpha(2));
maximum = [alpha 0 - alpha(:,$:-1:1)];