| TUdataFilter | TCL UTILITIES USER MANUAL | TUdataFilter |
|---|
| TUdataFilter  |
Data
|
| Data | - | The input data array. | |||||||||||||||||||||||||
| nP | - | The number of elements in the input data array. | |||||||||||||||||||||||||
| Filter | - | The filter to use on the data. The
defined filters are:
|
|||||||||||||||||||||||||
| FOps | - | Filter options. These depend on the
type of filter selected.
|
|||||||||||||||||||||||||
| FData | - | The filtered data array. |
| NONE |
# GENERATE some data and add some random noise to it
set T 0.0
for { set nP 0 } { $nP < 512 } { set T [expr $T + .1] ; incr nP } {
set rV [TUdataRnd1 V 1 PN 0.50]
set X($nP) $T
set R($nP) [expr cos($T) + sin(2*$T) + cos($T) * cos($T)]
set D($nP) [expr $R($nP) + $rV]
}
# FILTER data using a moving window
set fOps(0) 5
set fOps(1) 5
TUdataFilter D $nP MOVINGWINDOW fOps fDMW
# FILTER data using a Savitzky-Golay filter
set fOps(0) 6
set fOps(1) 6
set fOps(2) 2
TUdataFilter D $nP SAVITZKYGOLAY fOps fDSG
# TURN on plotting
GraphicsOn TK ETones
GenWindow 1 0.15 0.15 0.0 0.85 0.85 0.0 2. -1.5 0. 14.0 3.0 0.
DefinePlot 1 1 -1 -1
# PLOT the noisey data in white
set oP [list $GphInfo(White) NONE]
Plot2D 1 Xb Yb X D 0 [expr $nP -1] LINE $oP
# PLOT the noisey data in noiseless data in green
set oP [list $GphInfo(Green) NONE]
Plot2D 1 Xb Yb X R 0 [expr $nP -1] LINE $oP
# PLOT the MovingWindow filtered data in red
set oP [list $GphInfo(Red) NONE]
Plot2D 1 Xb Yb X fDMW 0 [expr $nP -1] LINE $oP
# PLOT the Savitzky-Golay filtered data in cyan
set oP [list $GphInfo(Cyan) NONE HOLD HOLD 10 *]
Plot2D 1 Xb Yb X fDSG 0 [expr $nP -1] LINE $oP
# PUT up plot axis and plot annotation
PlotOutlines 1 [list "X" 1.0 "Y" 1.0] [list BOT BOT BOTH BOTH]
# PUT up some labels
WinClip 1 0
TextProp 12 HOLD HOLD
TexT 1 2.5 3.2 0.0 right ORIGINAL $GphInfo(Green)
TexT 1 2.5 3.45 0.0 right "WITH NOISE" $GphInfo(White)
TexT 1 13.5 3.2 0.0 left "MOVING WINDOW" $GphInfo(Red)
TexT 1 13.5 3.45 0.0 left SAVITZKY-GOLAY $GphInfo(Cyan)
update
| Sept 4, 2003 |
|---|