Stationary SIGNAL PROCESSING
what is mean by a signal ?
How to view a single sine wave in Time
domain and Frequency domain
How a signal is generated ?
e.g Morse code, Microphone,AM
Heart of Signal Processing - Superposition
Theorem
What does FOURIER ANALYSIS mean ?
Basis Functions : Cosine and sine
How to view a signal in Time domain and
Frequency domain by means of fourier
Fourier Family
Fourier series
Complex Number ?
Eulers Formula
Side view, front view
Draw back of Fourier ?
LAPLACE
Basis Functions : Continuous complex exponentials
Formula : L.T
What is mean by logarithm ?
Why logarithm and exponential are canceling
each other?
Z-Transform
Z transform : counterpart of Laplace
transform in Discrete time :
Basis Function : Discrete complex exponetials.
NON-Stationary SIGNAL
PROCESSING
stationary signal
x(t)=cos(2*pi*10*t)+cos(2*pi*25*t)+cos(2*pi*50*t)+cos(2*pi*100*t)
frequencies are 10, 25, 50 and 100 Hz.
non-stationary signal.(T.D)
non-stationary signal.(F.D)
frequencies are 10, 25, 50 and 100 Hz.
Hence Fourier Transform is not applicable for non- Stationary signal
Short time Fourier Transform (STFT)(gives
both Time & Frequency information)
In STFT, the signal is divided into small enough segments, where these
segments (portions) of the signal can be assumed to be stationary. For this
purpose, a window function "w" is chosen. The width of this window must
be equal to the segment of the signal where its stationarity is valid.
Transform is two dimensional ( Time and Frequency ), where as
Fourier transform is one Dimensional .
STFT with an example
Time Domain signal Non Stationary signal
In this signal, there are four frequency components at different times. The interval
0 to 250 ms is a simple sinusoid of 300 Hz, and the other 250 ms intervals are
sinusoids of 200 Hz, 100 Hz, and 50 Hz, respectively. Apparently, this is a nonstationary signal. STFT of the signal is
Drawback of STFT- Heisenberg
Uncertainty Principle
one cannot know what spectral components exist at what instances of times
Reason : Fixed Width of window function.
MULTIRESOLUTION ANALYSIS
WAVELET Transform
Analyzes the signal at different frequencies with
different resolutions (Window Width).
Levels of decomposition
EZW basic concepts(2)
Lower octave has higher
resolution and contains higher
frequency information
A Multi-resolution Analysis Example
Signal Analysis & reconstruction of 1-D
DWT
Signal Analysis & reconstruction in two
level of 1-D DWT
EZW basic concepts
E The EZW encoder is based on progressive encoding.
Progressive encoding is also known as embedded encoding
Z A data structure called zero-tree is used in EZW algorithm
to encode the data
W The EZW encoder is specially designed to use with
wavelet transform. It was originally designed to operate on
images (2-D signals)
EZW basic concepts
The EZW algorithm is based on two
observations:
Natural images in general have a low pass
spectrum. When an image is wavelet
transformed, the energy in the sub-bands
decreases with the scale goes lower (low
scale means high resolution), so the
wavelet coefficient will, on average, be
smaller in the lower levels than in the
higher levels.
Large wavelet coefficients are more
important than small wavelet coefficients.
63 -544 86 10 -7 29 55 -54
730 655 -13 30 -12 44 41 32
19 23 37 17 -4 13 -13 39
25 -49 32 -4 9 -23 -17 -35
32 -10 56 -22 -7 -25 40 -10
6 34 -44 4 13 -12 21 24
-12 -2 -8 -24 -42 9 -21 45
13 -3 -16 -15 31 -11 -10 -17
typical wavelet coefficients
for a 8*8 block in a real image
EZW basic concepts
The observations give rise to the basic progressive coding idea:
1.
2.
3.
We can set a threshold T, if the wavelet coefficient is larger than T, then
encode it as 1, otherwise we code it as 0.
1 will be reconstructed as T (or a number larger than T) and 0 will be
reconstructed as 0.
We then decrease T to a lower value, repeat 1 and 2. So we get finer and
finer reconstructed data.
The actual implementation of EZA algorithm should consider :
1.
What should we do to the sign of the coefficients. (positive or
negative) ? answer: use POS and NEG
2.
Can we code the 0s more efficiently? -- answer: zero-tree
3.
How to decide the threshold T and how to reconstruct? answer:
see the algorithm
EZW basic concepts
coefficients that are in the same spatial
location consist of a quad-tree.
EZW basic concepts
The definition of the zero-tree:
There are coefficients in different subbands that represent the
same spatial location in the image and this spatial relation can be
depicted by a quad tree except for the root node at top left corner
representing the DC coeeficient which only has three children
nodes.
Zero-tree Hypothesis
If a wavelet coefficient c at a coarse scale is insignificant with respect to
a given threshold T, i.e. |c|<T then all wavelet coefficients of the same
orientation at finer scales are also likely to be insignificant with respect to
T.
EZW the algorithm
First step: The DWT of the entire 2-D image will
be computed by FWT
Second step: Progressively EZW encodes the
coefficients by decreasing the threshold
Third step: Arithmetic coding is used to entropy
code the symbols
EZW the algorithm
In the dominant_pass
All the coefficients are scanned in a special order
If the coefficient is a zero tree root, it will be encoded as ZTR. All its
descendants dont need to be encoded they will be reconstructed as
zero at this threshold level
If the coefficient itself is insignificant but one of its descendants is
significant, it is encoded as IZ (isolated zero).
If the coefficient is significant then it is encoded as POS (positive) or
NEG (negative) depends on its sign.
This encoding of the zero tree produces significant compression because gray level
images resulting from natural sources typically result in DWTs with many ZTR
symbols. Each ZTR indicates that no more bits are needed for encoding the
descendants of the corresponding coefficient
Algorithm Chart
EZW the algorithm(2)
What is inside the second step?
threshold = initial_threshold;
do {
dominant_pass(image);
subordinate_pass(image);
threshold = threshold/2;
} while (threshold > minimum_threshold);
The main loop ends when the threshold reaches a minimum value, which could be specified to
control the encoding performance, a 0 minimum value gives the lossless reconstruction of the
image
The initial threshold t0 is decided as:
Here MAX() means the maximum coefficient value in the image and y(x,y) denotes the
coefficient. With this threshold we enter the main coding loop
EZW the algorithm(5)
At the end of dominant_pass
all the coefficients that are in absolute value larger than the
current threshold are extracted and placed without their sign on
the subordinate list and their positions in the image are filled
with zeroes. This will prevent them from being coded again.
In the subordinate_pass
All the values in the subordinate list are refined. this gives rise to
some juggling with uncertainty intervals and it outputs next
most significant bit of all the coefficients in the subordinate list.
EZW An example(1)
Wavelet coefficients for a 8*8 block
EZW An example(2)
The initial threshold is 32 and the result from the
dominant_pass is shown in the figure
63
POS
-34
NEG
49
POS
10
ZTR
7
IZ
13
IZ
-12
-31
IZ
23
ZTR
14
ZTR
-13
ZTR
3
IZ
4
IZ
-1
15
ZTR
14
IZ
-12
-7
-9
ZTR
-7
ZTR
-14
-2
--5
-1
IZ
47
POS
-2
-3
IZ
2
IZ
-2
-3
-4
11
-4
Data without any
symbol is a node in
the zero-tree.
EZW An example(3)
The result from the dominant_pass is output as the following:
POS, NEG, IZ, ZTR, POS, ZTR, ZTR, ZTR, ZTR, IZ, ZTR, ZTR, IZ, IZ, IZ, IZ, IZ,
POS, IZ, IZ
POS01, NEG11, ZTR00, IZ--10
The significant coefficients are put in a subordinate list and are
refined. A one-bit symbol is output to the decoder.
Original data
63
34
49
47
Output symbol
Reconstructed data
56
40
56
40
For example, the output for 63 is:
sign 32 16 8 4 2 1
0
1 1 ? ? ? ?
If T+.5T is less than data item take the average of 2T and 1.5T. So 63 will be
reconstructed as the average of 48 and 64 which is 56. If it is more, put a 0 in the code
and encode this as t+.5T+.25T. Thus, 34 is reconstructed as 40.
EZW An example(4)
10
13
-12
-31
23
14
-13
-1
15
14
-12
-7
-9
-7
-14
-2
--5
-1
-2
-3
-2
-3
-4
11
-4
After dominant_pass, the significant coefficients will be replaced by * or 0
Then the threshold is divided by 2, so we have 16 as current threshold
EZW An example(5)
The result from the second dominant_pass is output as the following:
IZ, ZTR, NEG, POS, IZ,IZ, IZ, IZ, IZ, IZ, IZ, IZ
The significant coefficients are put in the subordinate list and all
data in this list will be refined as:
Original data
63
34
49
47
31
23
Output symbol
60
36
52
44
28
20
Reconstructed data
For example, the output for 63 is:
sign 32 16 8 4 2 1
0
1 1 1 ? ? ?
The computatin is now extended with respect to the next significant bit. So
63 will be reconstructed as the average of 56 and 64 - 60!
EZW An example(6)
The process is going on until threshold =1, the final output as:
D1: pnztpttttztttttttptt
S1: 1010
D2: ztnptttttttt
S2: 100110
D3: zzzzzppnppnttnnptpttnttttttttptttptttttttttptttttttttttt
S3: 10011101111011011000
D4: zzzzzzztztznzzzzpttptpptpnptntttttptpnpppptttttptptttpnp
S4: 11011111011001000001110110100010010101100
D5: zzzzztzzzzztpzzzttpttttnptppttptttnppnttttpnnpttpttppttt
S5: 10111100110100010111110101101100100000000110110110011000111
D6: zzzttztttztttttnnttt
Here p=pos, n=neg, z=iz, t=ztr
For example, the output for 63 is:
sign 32 16 8 4 2 1
0
1 1 1 1 1 1
So 63 will be reconstructed as 32+16+8+4+2+1=63!
Note, how progressive transmission can be done.
The Limitations of EZW algorithm
bad
It is not possible to encode sub-images because
the entire image must be transformed before
the encoding can start.
EZW algorithm is computational expensive