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
|