summaryrefslogtreecommitdiff
path: root/macros/filtfilt.sci
blob: 7f86113859deb2f48e859efb270f52296dd9009b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function [y]=filtfilt(b,a,x)

// Zero phase digital filtering
// Calling Sequence
//	[y]=filtfilt(b,a,x)
// Parameters
//	b: Real or complex valued vector or matrix
//	a: Real or complex valued vector or matrix
//	x: Real or complex valued vector or matrix
// Description
//	This is an Octave function
//	In theory, it forwards and reverse filters the signal and corrects phase distortion upto an extent by a one-pass filter but squares the magnitude response in the process. Practically though, the correction isn't perfect and magnitude response, particularly the stop band is distorted.
// Examples
// 1.	y=filtfilt (1,2*%i,[%i -4 0])        // Number of Output argument should be equal to 1
//	y =   [-0.25i   1   0]

funcprot(0);
rhs=argn(2);
if (rhs~=3) then
	error ("Wrong number of input arguments.")
else y=callOctave("filtfilt",b,a,x)
end
endfunction