Implementation%20of%20a%20noise%20subtraction%20algorithm%20using%20Verilog%20HDL - PowerPoint PPT Presentation

About This Presentation
Title:

Implementation%20of%20a%20noise%20subtraction%20algorithm%20using%20Verilog%20HDL

Description:

Implementation of a noise subtraction algorithm using Verilog HDL University of Massachusetts, Amherst Department of Electrical & Computer Engineering, Course 559/659 – PowerPoint PPT presentation

Number of Views:161
Avg rating:3.0/5.0
Slides: 30
Provided by: umas153
Category:

less

Transcript and Presenter's Notes

Title: Implementation%20of%20a%20noise%20subtraction%20algorithm%20using%20Verilog%20HDL


1
Implementation of a noise subtractionalgorithm
using Verilog HDL University of Massachusetts,
Amherst Department of Electrical Computer
Engineering, Course 559/659 by Perry Levy, Aseem
Pangotra, Stephan Stiglmayr and Thomas
Kunkel Team Leader Prof. Maciej Ciesielski
2
Noise-subtracting algorithm
  • Time to frequency transformation
  • Subtraction of magnitudes
  • Distortion correction
  • Frequency to time transformation

Algorithm
Modules
In- / Output
FFT
Subtraction
3
Noise-subtracting algorithm
Algorithm
Modules
In- / Output
FFT
Subtraction
4
Noise-subtracting algorithm
  • Serial data
  • Shifts of 16bits
  • Storing in 1032 x 32bit memory
  • Flushing memory to FFT after receiving of 256
    pairs of data

Algorithm
Modules
In- / Output
FFT
Subtraction
5
Noise-subtracting algorithm
State machine
Algorithm
Flushing memory
storing data in memory
Reset
256 pairs
Modules
Buffer emptied
In- / Output
Emptying buffer
Buffering data
Mem flushed
FFT
Subtraction
6
Noise-subtracting algorithm
Block Diagram
Address
Address generator
Data
WR RD
Algorithm
SCLK
Flushing
Valid
Real part
Serial shifter
LRCLK
Output
Modules
Imaginary
1024 x 32bit RAM
Reset
Data
Data
Buffer
Enable
Done
In- / Output
Hold
FFT
16bit counter
Finite state machine
Subtraction
7
Noise-subtracting algorithm
  • Parallel input and output of variables
  • 16Bit address, 8Bit data (compatible to
    microcontroller)
  • Preset values when resetting

Algorithm
Modules
In- / Output
FFT
Subtraction
8
Noise-subtracting algorithm
  • Implementation of Radix 2 algorithm
  • Window length 1024
  • 16Bit fixed point arithmetics
  • 2 FFTs at the same time by using real and
    imaginary signal
  • Reconstruction afterwards needed

Algorithm
Modules
In- / Output
FFT
Subtraction
9
Noise-subtracting algorithm
  • Butterfly structure as fundamental cell

Algorithm
Modules
In- / Output
FFT
Subtraction
10
Noise-subtracting algorithm
Signal-flow Graph for 8 point FFT
f(0)
F(0)
Algorithm
F(1)
-1
W0
F(2)
-1
Modules
W2
F(3)
-1
-1
In- / Output
W0
F(4)
-1
FFT
W1
F(5)
-1
-1
W0
W2
Subtraction
F(6)
-1
-1
W2
W3
f(7)
F(7)
-1
-1
11
Noise-subtracting algorithm
  • Sequential implementation
  • 1Bit shiftdown after each step to prevent
    overflow
  • RAM 1024 x 32Bit
  • Controller (Finite state machine)
  • Address generator
  • Coefficient ROM

Algorithm
Modules
In- / Output
FFT
Subtraction
12
Noise-subtracting algorithm
Block Diagram
input_ready
output_ready
Algorithm
bus_select
Controller
Modules
write_en
RAM
read_en
32
32
Data In
In- / Output
Data
input_mode
io_mode
fft_mode
fft_done
io_done
Bus
ram_addr1
ram_addr2
Butterfly
10
32
32
FFT
Processor
Data Out
Address Generator
10
twiddle
Subtraction
10
Coeff. ROM
FFT PROCESSOR
rom_addr
13
Noise-subtracting algorithm
Delay estimation
  • Input 512
  • FFT processing 251210
  • output 512
  • Sum 11264 clock cycles

Algorithm
Modules
In- / Output
FFT
Subtraction
14
Noise-subtracting algorithm
Simulations
Algorithm
Modules
In- / Output
FFT
Subtraction
15
Noise-subtracting algorithm
Spectra reconstruction
Algorithm
Re
Im
Modules
Re
Im
In- / Output
Re
Im
FFT
Subtraction
16
Noise-subtracting algorithm
Error compared to 32bit floating point
Algorithm
Modules
In- / Output
FFT
Subtraction
17
Noise-subtracting algorithm
Error compared to 32bit floating point
Algorithm
Modules
In- / Output
FFT
Subtraction
18
Noise-subtracting algorithm
Error compared to 32bit floating point
Algorithm
Modules
In- / Output
FFT
Subtraction
(absolute values plotted)
19
C.O.R.D.I.C
  • An acroynm for
  • Coordinate Rotation DIgital Computer

20
CORDIC? WHY USE IT?
  • CORDIC was derived by Volder in the 50s to
    calculate trigonometric function.
  • CORDIC can also calculate hyperbolic, linear and
    logarithmic functions.
  • CORDIC processing offers high computational rates
    ? fast enough for demanding DSP tasks.
  • Hardware-efficient algorithm, requires only
    shifts and adds.

21
THE CORDIC ALGORITHM
  • Provides an iterative method of performing vector
    rotations by arbitrary angles using only shifts
    and adds.
  • Multiplication by tangent term can be avoided if
    the rotation angles are restricted to
    tan(?)2-i.
  • In digital hardware simple shift operation.

The individual equations can be rewritten
rearranged so that
The basic CORDIC-equations for rotation and
vectoring mode
22
Vectoring and Rotation Modes
  • Rotation mode performs Polar to Cartesian
    transformation by rotating the input vector by a
    specified angle (given as an argument).
  • Vectoring mode performs Cartesian to Polar
    transformation by rotating input vector to the
    x-axis while recording the angle required to make
    that rotation.

23
Word-Parallel Pipelined CORDIC
  • CORDIC Processor core built around three
    fundamental modules
  • Pre-Processor manipulates inputs to fit in -1 to
    1 rad. so that the algorithm covers entire 2?
    range.
  • CORDIC core performs actual algorithm in
    parallel using a pipeline of CordicPipe blocks.
  • Post-Processor places results in correct
    quadrant.

24
RECTANGULAR TO POLAR CONVERSION
  • Takes two 16-bit signed words as inputs (Xin,Yin)
  • CORDIC core returns equivalent polar coordinates
    where Rout is the magnitude and Aout is the
    angle.
  • Outputs are in fractional format with the upper
    16-bits represent decimal value and lower 4-bits
    represent fractional value.

25
POLAR TO RECTANGULAR CONVERSION
  • Takes 16-bit magnitude from subtraction and
    stored angle as inputs (Rin, Ain).
  • CORDIC core returns equivalent rectangular
    coordinates Xo and Yo.
  • Core only converges in the range -90 to 90
    degrees, must write a pre and post processor so
    that algorithm covers entire 2? range.

26
FUTURE WORK
  • Need to write test bench for rect2polar and
    polar2rect modules.
  • Need to finish writing pre and post processor for
    polar2rect module.
  • Need to connect my modules to my partners
    modules.
  • Need to test and verify that they work well
    together.

27
Noise-subtracting algorithm
Block diagram
Beta
Algorithm
16
Modules
1 if xgty, else 0
a
x
Comp
In- / Output
sel
b
FFT
Sub
Subtraction
Alpha
28
Noise-subtracting algorithm
  • Inputs two, 16 unsigned bits each
  • ( A and B)
  • Multiplication Alpha and Beta terms
  • Subtraction ((original A)-(AlphaB))
  • Comparators (A gt B) out 1, else out 0
  • Multiplexer
  • (Inputs Select, ABeta, subtractor output)
  • Select 1, final_out x
  • Select 0, final_out y

Algorithm
Modules
In- / Output
FFT
Subtraction
29
FUTURE WORK
  • Connect all modules together.
  • Need to write and verify RTL code.
  • Synthesize all code and implement in FPGA.
  • Test FPGA.
Write a Comment
User Comments (0)
About PowerShow.com