ReWiA 2.0 html manual


FILTER         filtrowanie widma

Zapis   FILTER pt1  pt2 mode  [sht normflag]  centralpt  radX  [radY]  thrmode
        [threshold] [min max]

Parametry

   pt1, pt2     
      typu Point,  określają fragment  widma który będzie filtrowany. Dla widm
      dwuwymiarowych  jest  to  prostokąt  wyznaczony  przez  te  dwa  punkty.
      Domyślnie jest to całe widmo.

   mode
      określa rodzaj  filtru :  0 -  średnia, 1 - mediana, 2 - charakterystyka
      podana w  widmie. Wagi  punktów (współrzędne  E)  nie  są  uwzględniane.
      Medianę liczy  się następująco  : sortuje się punkty i wybiera środkowy.
      Mediana dla widm dwuwymiarowych może się liczyć długo.

   sht
      określa widmo  zawierające charakterystykę  filtru dla  mode=2. Argument
      ten podawać  należy tylko gdy mode=2. Charakterystykę filtru przechowuje
      pole  w  widmie  sht  wskazywane  przez  wskaźnik  YPTR  (lub  ZPTR  dla
      dwuwymiarowych  filtrów).   Ilość  punktów  w  widmie  sht  powinna  być
      nieparzysta.  W  trakcie  filtrowania  punkty  otrzymują  wartości  (gdy
      normflag=1) :


             suma od j=0 do s-1 (YOLDi-s/2+j * YSj)
        Yi = --------------------------------------
             suma od j=0 do s-1 (YSj)

      YOLDi oznacza  współrzędną Y  i-tego punktu widma przed filtrowaniem, Yi
      współrzędną Y  i-tego punktu  widma po filtrowaniu, YSi współrzędną Y i-
      tego punktu  charakterystyki filtru,  s oznacza wielkość filtru (długość
      widma). Jeśli  normflag=0 to  przy obliczaniu  Yi suma  YOLD*YS nie jest
      dzielona   przez   sumę   wag.   Umożliwia   to   filtrowanie   filtrami
      różniczkującymi dla  których suma  wag równa  się zero. Indeks przy YOLD
      może być ujemny lub powyżej długości widma. W takim przypadku za wartość
      YOLDi przyjmuje  się wartość  pierwszego lub ostatniego punktu w widmie.
      Dla przykładu  do obliczenia  średniej punktu numer 0 przy promieniu X=2
      zamiast punktów  o numerach -2, -1, 0, 1, 2 bierze się punkty o numerach
      0, 0,  0,  1,  2.  Dla  widm  dwuwymiarowych  sumowanie  odbywa  się  po
      prostokącie filtru.  Analizowane są  wtedy współrzędne  Z. Jeżeli chcemy
      widmo dwuwymiarowe  filtrować  filtrem  jednowymiarowym  to  zaleca  się
      ustawić XSIZE  na wartość  równą długości  filtru, a  jako wartość  Yrad
      podać 0.

   normflag
      typu Bool,  określa czy przy obliczaniu nowej wartości punktu dzielić ją
      przez sumę  wag filtru  (tzn. normalizować  filtr). Domyślnie wartość 1.
      Argument ten podawać należy tylko gdy mode=2.


   centralpt
      typu Bool,  określa czy  przy obliczaniu średniej lub mediany (mode=0/1)
      uwzględniać punkt centralny.

   radX
      typu  Point,   określa  promień   filtru  (dla   mode=0/1).   Dla   widm
      dwuwymiarowych jest  to promień  w osi  X.  Dla  przykładu,  dla  mode=0
      (średnia) dla centralpt=1 i radX=3 do obliczenia średniej będzie brane 7
      punktów widma.

   radY
      typu Point,  określa promień filtru w osi Y (dla mode=0/1). Argument ten
      należy podawać  tylko dla widm dwuwymiarowych. Dla przykładu, dla mode=0
      (średnia) dla  centralpt=0, radX=2, i radX=3 do obliczenia średniej będą
      brane 5*7-1=34 punkty widma.

   thrmode
      typu Point,  określa kryterium,  które musi  być spełnione  aby  wartość
      punktu widma uległa zmianie. Dozwolone wartości :

0  -    abs(punkt - n) > t              ; t >= 0
1  -    abs(punkt - n) > abs(t * n)     ; 0 <= t <= 1
2  -    abs(punkt - n) > abs(t * punkt) ; 0 <= t <= 1
3  -    min <= punkt <= max

      punkt -  współrzędna Y  (1-wym) lub  Z (2-wym) punktu widma, n - średnia
      lub mediana  z otoczenia  punktu (czy punkt centralny brać do obliczenia
      określa parametr centralpt). t - próg czułości = threshold.

   threshold
      typu Real,  próg czułości  dla thrmode=0,1,2.. Jeśli chcemy aby wartości
      wszystkich punktów były zmieniane należy threshold ustawić na 0.

   min, max     
      typu Real,  określają zakres  wartości  Y  lub  Z  punktów  dla  którego
      wartości punktów ulegną zmianie dla thrmode=3.


Przykłady

   - filtr prostokątny 7 punktowy jednowymiarowy :

        CREAT 12 7 6                    
        PTRS 12 * * * 0 **              
        SET 12:0 * * 1                  
        FILTER * * 2 12 1               

   - filtr identyczny jak poprzedni :

        FILTER * * 0 1 3 0 0            

   - filtr medianą dwuwymiarowy 5 x 5 :

        FILTER * * 1 1 2 2 0 0          

   - filtr trójkątny 9 punktowy jednowymiarowy :

        CREAT 12 9 6                    
        PTRS 12 * * * 0 **              
        SET 12:0 * * 1+min(i,8-i)       
        FILTER * * 2 12 1               

   - filtr przesuwający widmo o 2 punkty w prawo :

        CREAT 12 5 6                    
        PTRS 12 * * * 0 **              
        LET 12:0:last=1                 

   - filtr przesuwający widmo o 2 punkty w lewo :

        CREAT 12 5 6                    
        PTRS 12 * * * 0 **              
        LET 12:0:0=1