Line 46: Line 46:
 
To implement the complete system with a single convolution:  
 
To implement the complete system with a single convolution:  
 
filter <math>h(m,n)</math> is a <math>(2N+1)\times(2N+1)</math> filter, and for each location we need 2 multiplies, so in total, we need <math>2(2N+1)^2</math> multiplies.
 
filter <math>h(m,n)</math> is a <math>(2N+1)\times(2N+1)</math> filter, and for each location we need 2 multiplies, so in total, we need <math>2(2N+1)^2</math> multiplies.
 +
 +
<span style="color:green"> As <math> a_j b_i </math> can be calculated offline, if we consider that <math> a_j b_i </math> are merged in the filter <math> h(m,n)</math>, then will need <math> (2N+1)^2 </math> multiplies to implement the complete system with a single convolution.
 +
</span>
  
 
e) Two systems in sequence:
 
e) Two systems in sequence:
 
: advantages: need <math>(2N+1)^2</math> multiplies per output point, so it is computationally better;
 
: advantages: need <math>(2N+1)^2</math> multiplies per output point, so it is computationally better;
 
: disadvantages: as there are two systems, may introduce more noise.
 
: disadvantages: as there are two systems, may introduce more noise.
 +
 +
<span style="color:red"> Need only <math> 2(2N+1) </math> multiplies per output point. System S1 is to filter <math> x(m,n) </math> along one dimension, then we get the intermediate result <math> y(m,n) </math>. System S2 is to filter <math> y(m,n) </math> along the other dimension. We then obtain <math> z(m,n) </math>. So we only need <math> 2(2N+1) </math> multiplies per output point when intermediate results have been stored. 
 +
</span>
  
 
A single complete system:
 
A single complete system:
Line 75: Line 81:
 
<math> 2N+1 </math> multiplies for each of the two individual systems <br \>
 
<math> 2N+1 </math> multiplies for each of the two individual systems <br \>
 
<math>(2N+1)^2</math> multiplies for the complete system with a single convolution
 
<math>(2N+1)^2</math> multiplies for the complete system with a single convolution
 +
 +
<span style="color:green"> For the complete system with a single convolution, as in each filter location, we will multiply both <math> a_j </math> and <math> b_i </math>, so we need <math> 2(2N+1)^2 </math> multiplies in total. But if the student consider that we pre-process the system and calculate the complete filter parameters in advance, then <math> (2N+1)^2 </math> multiplies is correct. 
 +
</span>
  
 
e) Implement in sequence:
 
e) Implement in sequence:

Revision as of 19:39, 20 March 2013

ECE Ph.D. Qualifying Exam: CS-5 (637)

Problem 1 , 2

Problem 2

Consider the following 2-D LSI systems. The first system has input $ x(m,n) $ and output $ y(m,n) $, and the second system has input $ y(m,n) $ and output $ z(m,n) $. $ y(m,n) = \sum\limits_{j = - N}^N {{a_j}x(m,n - j)} \quad\quad S1 $
$ z(m,n) = \sum\limits_{i = - N}^N {{b_i}y(m-i,n)} \quad\quad S2 $

a) Calculate the 2-D impulse response, $ h_1(m,n) $, of the first system.

b) Calculate the 2-D impulse response, $ h_2(m,n) $, of the second system.

c) Calculate the 2-D impulse response, $ h(m,n) $, of the complete system.

d) How many multiplies does it take per output point to implement each of the two individual systems? How, many multiplies does it take per output point to implements the complete system with a single convolution.

e) Explain the advantages and disadvantages of implementing the two systems in sequence versus a single complete system.

Solution:

a)
$ h_1(m,n) = \sum\limits_{j = - N}^N {{a_j}\delta(m,n - j)} $

b)
$ h_2(m,n) = \sum\limits_{i = - N}^N {{b_i}\delta(m-i,n)} $

c)
$ \begin{align} h(m,n) &= {h_1}(m,n)*{h_2}(m,n)\\ &= (\sum\limits_{j = - N}^N {{a_j}\delta(m,n - j)}) * (\sum\limits_{i = - N}^N {{b_i}\delta(m-i,n)})\\ &= \sum\limits_{j = - N}^N {\sum\limits_{i = - N}^N {{a_j}{b_i}\delta (m - i,n - j)} } \end{align} $

d)
S1: need 2N+1 multiplies
S2: need 2N+1 multiplies
To implement the complete system with a single convolution: filter $ h(m,n) $ is a $ (2N+1)\times(2N+1) $ filter, and for each location we need 2 multiplies, so in total, we need $ 2(2N+1)^2 $ multiplies.

As $ a_j b_i $ can be calculated offline, if we consider that $ a_j b_i $ are merged in the filter $ h(m,n) $, then will need $ (2N+1)^2 $ multiplies to implement the complete system with a single convolution.

e) Two systems in sequence:

advantages: need $ (2N+1)^2 $ multiplies per output point, so it is computationally better;
disadvantages: as there are two systems, may introduce more noise.

Need only $ 2(2N+1) $ multiplies per output point. System S1 is to filter $ x(m,n) $ along one dimension, then we get the intermediate result $ y(m,n) $. System S2 is to filter $ y(m,n) $ along the other dimension. We then obtain $ z(m,n) $. So we only need $ 2(2N+1) $ multiplies per output point when intermediate results have been stored.

A single complete system:

advantages: more stable, less sensitive to noise;
disadvantages: need $ 2(2N+1)^2 $ multiplies per output point, so it needs more computation.

Solution From Another Student:

a)
$ h_1(m,n) = \sum\limits_{j = - N}^N {{a_j}\delta(m,n - j)} $

b)
$ h_2(m,n) = \sum\limits_{i = - N}^N {{b_i}\delta(m-i,n)} $

c)
$ h(m,n) = \sum\limits_{i = - N}^N {\sum\limits_{j = - N}^N {{b_i}{a_j}\delta (m - i,n - j)} } $

d) $ 2N+1 $ multiplies for each of the two individual systems
$ (2N+1)^2 $ multiplies for the complete system with a single convolution

For the complete system with a single convolution, as in each filter location, we will multiply both $ a_j $ and $ b_i $, so we need $ 2(2N+1)^2 $ multiplies in total. But if the student consider that we pre-process the system and calculate the complete filter parameters in advance, then $ (2N+1)^2 $ multiplies is correct.

e) Implement in sequence:

Advantage: Less multiplies, faster
Disadvantage: Need space for intermediate result

Implement a complete system:

Advantage: Intuitive solution. No intermediate result
Disadvantage: More multiplies, slower

Back to ECE QE page:

Alumni Liaison

Ph.D. 2007, working on developing cool imaging technologies for digital cameras, camera phones, and video surveillance cameras.

Buyue Zhang