summaryrefslogtreecommitdiff
path: root/macros/interp.sci
blob: dd7e9e0e508a8abf333348ae9b39309dda0f6115 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//function already exists in scilab -- doesnt work like this one (I guess)    
function y = interp(x, q, n, Wc)
//This function upsamples the signal x by a factor of q, using an order 2*q*n+1 FIR filter.
//Calling Sequence
//y = interp(x, q)
//y = interp(x, q, n)
//y = interp(x, q, n, Wc)
//Parameters 
//x: scalar or vector of complex or real numbers 
//q: positive integer value, or logical
//n: positive integer, default value 4
//Wc: non decreasing vector or scalar, starting from 0 uptill 1, default value 0.5
//Description
//This is an Octave function.
//This function upsamples the signal x by a factor of q, using an order 2*q*n+1 FIR filter.
//The second argument q must be an integer. The default values of the third and fourth arguments (n, Wc) are 4 and 0.5 respectively.
//Examples
//interp(1,2)
//ans  = 
//    0.4792743    0.3626016 
funcprot(0);
rhs = argn(2)
if(rhs<2 | rhs>4)					//source code says rhs<1 -- but crashes for just one arg 
error("Wrong number of input arguments.")
end
	
		 


	select(rhs)
	case 2 then
	y = callOctave("interp",x,q)
	case 3 then
	y = callOctave("interp",x,q,n)
	case 4 then
	y = callOctave("interp",x,q,n,Wc)
	end
endfunction