summaryrefslogtreecommitdiff
path: root/macros/pei_tseng_notch.sci
diff options
context:
space:
mode:
authorbgtushar2017-11-23 19:30:44 +0530
committerbgtushar2017-11-23 19:30:44 +0530
commite9ab4b0b52db51be30f4ac3d07673c20b48da13c (patch)
tree8f4ce37de0a028350125acfce71cfe686e79ef24 /macros/pei_tseng_notch.sci
parent14ccddd315f0b97a78e965df1587835ac542e35a (diff)
parentf66d58166a67d6bc89b2a674119410ddaee53d46 (diff)
downloadFOSSEE-Signal-Processing-Toolbox-e9ab4b0b52db51be30f4ac3d07673c20b48da13c.tar.gz
FOSSEE-Signal-Processing-Toolbox-e9ab4b0b52db51be30f4ac3d07673c20b48da13c.tar.bz2
FOSSEE-Signal-Processing-Toolbox-e9ab4b0b52db51be30f4ac3d07673c20b48da13c.zip
Merge
Diffstat (limited to 'macros/pei_tseng_notch.sci')
-rw-r--r--macros/pei_tseng_notch.sci44
1 files changed, 44 insertions, 0 deletions
diff --git a/macros/pei_tseng_notch.sci b/macros/pei_tseng_notch.sci
new file mode 100644
index 0000000..1de0fcd
--- /dev/null
+++ b/macros/pei_tseng_notch.sci
@@ -0,0 +1,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