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
39
40
41
42
43
44
|
function [b, a] = pei_tseng_notch (frequencies, bandwidths)
//Return coefficients for an IIR notch-filter.
//Calling Sequence
//[b, a] = pei_tseng_notch (frequencies, bandwidths)
//b = pei_tseng_notch (frequencies, bandwidths)
//Parameters
//frequencies: filter frequencies
//bandwidths: bandwidths to be used with filter
//Description
//This is an Octave function.
//It return coefficients for an IIR notch-filter with one or more filter frequencies and according bandwidths. The filter is based on a all pass filter that performs phasereversal at filter frequencies.
//This leads to removal of those frequencies of the original and phase-distorted signal.
//Examples
//sf = 800; sf2 = sf/2;
//data=[[1;zeros(sf-1,1)],sinetone(49,sf,1,1),sinetone(50,sf,1,1),sinetone(51,sf,1,1)];
//[b,a]=pei_tseng_notch ( 50 / sf2, 2/sf2 )
//b =
//
// 0.99213 -1.83322 0.99213
//
//a =
//
// 1.00000 -1.83322 0.98426
funcprot(0);
lhs = argn(1)
rhs = argn(2)
if (rhs < 2 | rhs > 2)
error("Wrong number of input arguments.")
end
select(rhs)
case 2 then
if(lhs==1)
b = callOctave("pei_tseng_notch", frequencies, bandwidths)
elseif(lhs==2)
[b, a] = callOctave("pei_tseng_notch", frequencies, bandwidths)
else
error("Wrong number of output argments.")
end
end
endfunction
|