JIGL
v1.6

jigl.signal
Class DiscreteSignal

java.lang.Object
  |
  +--jigl.signal.DiscreteSignal
All Implemented Interfaces:
Signal

public class DiscreteSignal
extends Object
implements Signal

A discrete signal is a 1-d of shorts. It is called "discrete" because the values of the signal are not discrete integers.


Field Summary
protected  short[] data
          One dimensional integer array
protected  int length
          Length of the Signal
 
Constructor Summary
DiscreteSignal()
          Creates an empty one dimensional DiscreteSignal with a height and width of zero
DiscreteSignal(DiscreteSignal s)
          Creates a one-dimensional DiscreteSignal (shallow copy) for a DiscreteSignal
DiscreteSignal(int x)
          Creates an empty one dimensional of length x
DiscreteSignal(short[] data)
          Creates a one-dimension DiscreteSignal object from an array of short integers.
 
Method Summary
 DiscreteSignal add(DiscreteSignal s)
          Adds another DiscreteSignal to this signal
 DiscreteSignal add(DiscreteSignal s, ROI sourceROI, ROI destROI)
          Divides this signal's Region of Interest by a Region of Interest of another DiscreteSignal
 DiscreteSignal add(int v)
          Adds a value to all the samples in this signal
 void add(int x, int value)
          Adds a value to a single sample
 void add(int x, int value, ROI roi)
          Adds a value to a single sample in a Region of Interest
 DiscreteSignal add(int v, ROI roi)
          Adds a value to all the samples in in a Region of Interest
 DiscreteSignal addbuffer(int w, int color)
          Makes a copy of this signal with a buffer so the resulting signal has a width w
 void byteSize()
          Scales the range of this signal to byte [0..255]
 void byteSize(ROI roi)
          Scales the range of a Region of Interest to byte [0..255] in a Region of Interest
 DiscreteSignal clear()
          Clears the signal to zero
 DiscreteSignal clear(int val)
          Clears to constant value
 DiscreteSignal clear(int val, ROI roi)
          Clears to constant value in a Region of Interest
 DiscreteSignal clear(ROI roi)
          Clears the signal to zero in a Region of Interest
 void clip(int min, int max)
          Clips the range of this signal to an arbitrary min/max.
 void clip(int min, int max, ROI roi)
          Clips the range of in a Region of Interest to an arbitrary min/max
 void convolve(DiscreteSignal kernel)
          Performs convolution in place with a kernel signal on this signal.
 void convolve(DiscreteSignal kernel, ROI roi)
          Performs convolution in place with a kernel signal on a Region of Interest.
 Signal copy()
          Makes a deep copy of this signal.
 Signal copy(ROI roi)
          Makes a deep copy in a Region of Interest
 short[] data()
          Returns a deep copy of a JIGL signal's sample buffer.
 DiscreteSignal diff(DiscreteSignal s)
          Subtracts the second signal from the first and returns the absolute value
 DiscreteSignal divide(DiscreteSignal s)
          Divides this signal by a DiscreteSignal.
 DiscreteSignal divide(DiscreteSignal s, ROI sourceROI, ROI destROI)
          Multiplies a Region of Interest of another DiscreteSignal to a Region of Interest of this signal
 DiscreteSignal divide(int v)
          Divides all the samples in this signal by a value
 void divide(int x, int value)
          Divides a single sample by a value.
 void divide(int x, int value, ROI roi)
          Divides a single sample by a value in a Region of Interest
 DiscreteSignal divide(int v, ROI roi)
          Divides all the samples in in a Region of Interest by a value
 int get(int x)
          Returns the sample value at the given x
 int get(int x, ROI roi)
          Returns the sample value at the given x value in a Region of Interest
 short[] getData()
          Converts a DiscreteSignal object into an array of short integers.
 int length()
          Returns the length of this signal
 int max()
          Finds the maximum value of this signal
 int max(ROI roi)
          Finds the maximum value of in a Region of Interest
 void median(int size)
          Performs median filter on this signal.
 void median(int size, ROI roi)
          Performs median filter on a Region of Interest.
 int min()
          Finds the minimum value of this signal.
 int min(ROI roi)
          Finds the minimum value of in a Region of Interest
 DiscreteSignal multiply(DiscreteSignal s)
          Multiplies a DiscreteSignal by this signal.
 DiscreteSignal multiply(DiscreteSignal s, ROI sourceROI, ROI destROI)
          Subtracts a Region of Interest from another DiscreteSignal from a Region of Interest of this signal
 DiscreteSignal multiply(int v)
          Multiplies all the samples in this signal by a value
 void multiply(int x, int value)
          Mutiplies a single sample by a value
 void multiply(int x, int value, ROI roi)
          Mutiplies a single sample by a value in a Region of Interest
 DiscreteSignal multiply(int v, ROI roi)
          Multiplies all the samples in in a Region of Interest by a value
 void set(int x, int value)
          Sets the sample value at x to a given value
 void set(int x, int value, ROI roi)
          Sets the sample value at x to a given value in a Region of Interest
private  double[] sort(double[] vals, int size)
          Utility method: sorting a double array.
 DiscreteSignal subtract(DiscreteSignal s)
          Subtracts a DiscreteSignal from this signal.
 DiscreteSignal subtract(DiscreteSignal s, ROI sourceROI, ROI destROI)
          Adds a Region of Interest of another DiscreteSignal to a Region of Interest of this signal
 DiscreteSignal subtract(int v)
          Subtracts a value from all the samples in this signal
 void subtract(int x, int value)
          Subtracts a value from a single sample
 void subtract(int x, int value, ROI roi)
          Subtracts a value from a single sample in a Region of Interest
 DiscreteSignal subtract(int v, ROI roi)
          Subtracts a value from all the samples in in a Region of Interest
 String toString()
          Prints the string in integer format.
 String toString(ROI roi)
          Prints the string in integer format in a Region of Interest.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

data

protected short[] data
One dimensional integer array


length

protected int length
Length of the Signal

Constructor Detail

DiscreteSignal

public DiscreteSignal()
Creates an empty one dimensional DiscreteSignal with a height and width of zero


DiscreteSignal

public DiscreteSignal(int x)
Creates an empty one dimensional of length x


DiscreteSignal

public DiscreteSignal(DiscreteSignal s)
Creates a one-dimensional DiscreteSignal (shallow copy) for a DiscreteSignal


DiscreteSignal

public DiscreteSignal(short[] data)
Creates a one-dimension DiscreteSignal object from an array of short integers.

Method Detail

getData

public short[] getData()
Converts a DiscreteSignal object into an array of short integers.


copy

public Signal copy()
Makes a deep copy of this signal.

Specified by:
copy in interface Signal
Returns:
a deep copy of DiscreteSignal

length

public final int length()
Returns the length of this signal

Specified by:
length in interface Signal

data

public final short[] data()
Returns a deep copy of a JIGL signal's sample buffer.

Returns:
a deep copy of this signal's buffer

get

public final int get(int x)
Returns the sample value at the given x

Parameters:
x - the X coordinate

set

public final void set(int x,
                      int value)
Sets the sample value at x to a given value

Parameters:
x - the X coordinate
value - the value to set the sample to

clear

public final DiscreteSignal clear()
Clears the signal to zero


clear

public final DiscreteSignal clear(int val)
Clears to constant value

Parameters:
val - the value to "clear" the signal to

add

public final void add(int x,
                      int value)
Adds a value to a single sample

Parameters:
x - X-coordinate
value - the value to add to the sample

subtract

public final void subtract(int x,
                           int value)
Subtracts a value from a single sample

Parameters:
x - X-coordinate
value - the value to subtract from the sample

multiply

public final void multiply(int x,
                           int value)
Mutiplies a single sample by a value

Parameters:
x - X-coordinate
value - - the value to mutiply to the sample

divide

public final void divide(int x,
                         int value)
Divides a single sample by a value. value should not be 0.

Parameters:
x - X-coordinate
value - - the value to mutiply to the sample

min

public final int min()
Finds the minimum value of this signal.

Returns:
an integer containing the minimum value

max

public final int max()
Finds the maximum value of this signal

Returns:
an integer containing the maximum value

add

public final DiscreteSignal add(int v)
Adds a value to all the samples in this signal

Parameters:
v - value to be added to the samples
Returns:
this

subtract

public final DiscreteSignal subtract(int v)
Subtracts a value from all the samples in this signal

Parameters:
v - value to be added to the samples
Returns:
this

multiply

public final DiscreteSignal multiply(int v)
Multiplies all the samples in this signal by a value

Parameters:
v - value to be added to the samples
Returns:
this

divide

public final DiscreteSignal divide(int v)
Divides all the samples in this signal by a value

Parameters:
v - value to be added to the samples
Returns:
this

add

public final DiscreteSignal add(DiscreteSignal s)
Adds another DiscreteSignal to this signal

Parameters:
s - the DiscreteSignal to add
Returns:
this

addbuffer

public DiscreteSignal addbuffer(int w,
                                int color)
Makes a copy of this signal with a buffer so the resulting signal has a width w

Parameters:
w - width of buffered signal
color - default buffer value
Returns:
a deep copy of DiscreteSignal

subtract

public final DiscreteSignal subtract(DiscreteSignal s)
Subtracts a DiscreteSignal from this signal. this is modified.

Parameters:
s - the DiscreteSignal to subtract
Returns:
this

diff

public final DiscreteSignal diff(DiscreteSignal s)
Subtracts the second signal from the first and returns the absolute value

Parameters:
s - the DiscreteSignal to subtract
Returns:
this

multiply

public final DiscreteSignal multiply(DiscreteSignal s)
Multiplies a DiscreteSignal by this signal. this is modified.

Parameters:
s - the DiscreteSignal to multiply
Returns:
this

divide

public final DiscreteSignal divide(DiscreteSignal s)
Divides this signal by a DiscreteSignal. this is modified.

Parameters:
s - the DiscreteSignal to divide
Returns:
this

toString

public String toString()
Prints the string in integer format.
-Example of output on an signal with width 100 and height 120:
100 : 120
10 20 32 12 32 56 40 59 42 39 43 ...

Specified by:
toString in interface Signal
Overrides:
toString in class Object

byteSize

public void byteSize()
Scales the range of this signal to byte [0..255]


clip

public final void clip(int min,
                       int max)
Clips the range of this signal to an arbitrary min/max.

Parameters:
min - minimum value
max - maximum value

convolve

public void convolve(DiscreteSignal kernel)
Performs convolution in place with a kernel signal on this signal. The result signal has the same length as this.

Parameters:
kernel - kernel to perform the convolution with

sort

private double[] sort(double[] vals,
                      int size)
Utility method: sorting a double array.


median

public void median(int size)
Performs median filter on this signal. among values [data[x-size/2] .. data[x+size/2]] size should be odd.

Parameters:
size - the size of the median filter

copy

public Signal copy(ROI roi)
Makes a deep copy in a Region of Interest

Parameters:
roi - Region of Interest
Returns:
a deep copy of a Region of Interest

get

public final int get(int x,
                     ROI roi)
Returns the sample value at the given x value in a Region of Interest

Parameters:
x - the X coordinate
roi - Region of Interest

set

public final void set(int x,
                      int value,
                      ROI roi)
Sets the sample value at x to a given value in a Region of Interest

Parameters:
x - the X coordinate
value - the value to set the sample to
roi - Region of Interest

clear

public final DiscreteSignal clear(ROI roi)
Clears the signal to zero in a Region of Interest

Parameters:
roi - Region of Interest

clear

public final DiscreteSignal clear(int val,
                                  ROI roi)
Clears to constant value in a Region of Interest

Parameters:
val - the value to "clear" the signal to
roi - Region of Interest

add

public final void add(int x,
                      int value,
                      ROI roi)
Adds a value to a single sample in a Region of Interest

Parameters:
x - X-coordinate
value - the value to add to the sample
roi - Region of Interest

subtract

public final void subtract(int x,
                           int value,
                           ROI roi)
Subtracts a value from a single sample in a Region of Interest

Parameters:
x - X-coordinate
value - the value to subtract from the sample
roi - Region of Interest

multiply

public final void multiply(int x,
                           int value,
                           ROI roi)
Mutiplies a single sample by a value in a Region of Interest

Parameters:
x - X-coordinate
value - - the value to mutiply to the sample
roi - Region of Interest

divide

public final void divide(int x,
                         int value,
                         ROI roi)
Divides a single sample by a value in a Region of Interest

Parameters:
x - X-coordinate
value - - the value to mutiply to the sample
roi - Region of Interest

min

public final int min(ROI roi)
Finds the minimum value of in a Region of Interest

Parameters:
roi - Region of Interest
Returns:
an integer containing the minimum value

max

public final int max(ROI roi)
Finds the maximum value of in a Region of Interest

Parameters:
roi - Region of Interest
Returns:
an integer containing the maximum value

add

public final DiscreteSignal add(int v,
                                ROI roi)
Adds a value to all the samples in in a Region of Interest

Parameters:
v - value to be added to the samples
roi - Region of Interest
Returns:
this

subtract

public final DiscreteSignal subtract(int v,
                                     ROI roi)
Subtracts a value from all the samples in in a Region of Interest

Parameters:
v - value to be added to the samples
roi - Region of Interest
Returns:
this

multiply

public final DiscreteSignal multiply(int v,
                                     ROI roi)
Multiplies all the samples in in a Region of Interest by a value

Parameters:
v - value to be added to the samples
roi - Region of Interest
Returns:
this

divide

public final DiscreteSignal divide(int v,
                                   ROI roi)
Divides all the samples in in a Region of Interest by a value

Parameters:
v - value to be added to the samples
roi - Region of Interest
Returns:
this

subtract

public final DiscreteSignal subtract(DiscreteSignal s,
                                     ROI sourceROI,
                                     ROI destROI)
Adds a Region of Interest of another DiscreteSignal to a Region of Interest of this signal

Parameters:
s - the DiscreteSignal to add
sourceROI - Region of Interest for Source Signal
destROI - Region of Interest for Destination Signal
Returns:
this

multiply

public final DiscreteSignal multiply(DiscreteSignal s,
                                     ROI sourceROI,
                                     ROI destROI)
Subtracts a Region of Interest from another DiscreteSignal from a Region of Interest of this signal

Parameters:
s - the DiscreteSignal to subtract
sourceROI - Region of Interest for Source Signal
destROI - Region of Interest for Destination Signal
Returns:
this

divide

public final DiscreteSignal divide(DiscreteSignal s,
                                   ROI sourceROI,
                                   ROI destROI)
Multiplies a Region of Interest of another DiscreteSignal to a Region of Interest of this signal

Parameters:
s - the DiscreteSignal to multiply
sourceROI - Region of Interest for Source Signal
destROI - Region of Interest for Destination Signal
Returns:
this

add

public final DiscreteSignal add(DiscreteSignal s,
                                ROI sourceROI,
                                ROI destROI)
Divides this signal's Region of Interest by a Region of Interest of another DiscreteSignal

Parameters:
s - the DiscreteSignal to divide
sourceROI - Region of Interest for Source Signal
destROI - Region of Interest for Destination Signal
Returns:
this

toString

public String toString(ROI roi)
Prints the string in integer format in a Region of Interest.
-Example of output on an signal with length 100:
100
10 20 32 12 32 56 40 59 42 39 43 ...

Parameters:
roi - Region of Interest

byteSize

public void byteSize(ROI roi)
Scales the range of a Region of Interest to byte [0..255] in a Region of Interest

Parameters:
roi - Region of Interest

clip

public final void clip(int min,
                       int max,
                       ROI roi)
Clips the range of in a Region of Interest to an arbitrary min/max

Parameters:
min - minimum value
max - maximum value
roi - Region of Interest

convolve

public void convolve(DiscreteSignal kernel,
                     ROI roi)
Performs convolution in place with a kernel signal on a Region of Interest. The result signal has the same length as this.

Parameters:
kernel - kernel to perform the convolution with
roi - Region of Interest

median

public void median(int size,
                   ROI roi)
Performs median filter on a Region of Interest. size should be odd.

Parameters:
size - the size of the median filter
roi - Region of Interest

JIGL
v1.6

Submit a bug or feature
Revised in May 2002 by Weiming Liu