1 / 15

VITERBI DECODER ON CELL BE

VITERBI DECODER ON CELL BE. Nadia Akhtar Sudha Bhuvanagiri Anmol Prakash Abhaey Joshi Prabal Mahanta. Previous Feedback. Execution time evaluation on X86 and Cell Broadband Engine. Include simulation results in the presentation. Take note of feedback after every meeting.

trygg
Download Presentation

VITERBI DECODER ON CELL BE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VITERBI DECODER ON CELL BE Nadia Akhtar SudhaBhuvanagiri AnmolPrakash Abhaey Joshi PrabalMahanta

  2. Previous Feedback • Execution time evaluation on X86 and Cell Broadband Engine. • Include simulation results in the presentation. • Take note of feedback after every meeting.

  3. Work done so far: • Simulated soft-decision and hard-decision viterbi decoder systems on MATLAB. • Simulated radix-2 butterfly maximum likelihood estimator on MATLAB. • Implemented ‘convolution encoder – AWGN channel – Viterbi decoder’ system in C in loop back mode*. • Code integration on X86 is completed. • Executed the code on X86 and 4 SPE cores of PS3 by creating threads on PPE. * The program will include the encoding->channel+noise->decoding in the same program.

  4. Radix-2 butterfly MLE • The Cooley-Tukey algorithm re-expresses the DFT size of M=R*N where R is the radix and N is the number of sub-parts. • It is preferred because it reduces the number of operation from N^N to NlogN for smooth numbers • The Maximum Likelihood Estimation follows the general concept of trellis and so to realize it the butterfly trellis is the most nearest simulation we can approach to present it. • The following slides shows how we simulated the approach.

  5. Behavioral FFT model R A D I X - 2 DIF - FF T - M O D E L Verify results complex to real-imag real-img to complex counter limiter datatype converter complex to real-imag constant constant Hardware FFT model scope

  6. Results

  7. Radix-2 Vs. Radix-4 state1 final1 state1 final1 state2 final2 state2 final2 state3 final3 state3 final3 state4 final4 state4 final4

  8. Viterbi Decoder (Hard Decision) • Hard Decision Model • Possible Input Parameters • 0,1 • 0: Logical Zero • 1 : Logical One

  9. Viterbi Decoder (Soft Decision) • Soft Decision Model • Possible input Parameters • Integers between 0 and 2b-1, where b is the Number of soft decision bits parameter • 0 : Most confident decision for logical zero • 2b-1 : Most confident decision for logical one Other values represent less confident decisions. Ex: 1- Second most confident zero, 2 – Third most confident zero 5- Third most confident one , 6- Second most confident one

  10. Our Implementation till now PPE R E C E I V E D D E C O D E D F I L E S SPE Encode Channel + Noise Viterbi Decoder SPE Encode Channel + Noise Viterbi Decoder SPE Encode Channel + Noise Viterbi Decoder SPE Encode Channel + Noise Viterbi Decoder Files Main Memory

  11. System implementation in C • Convolution Encoder: Takes a file as input, encodes it, and gives the encoded file as output. • AWGN Channel: Takes the encoded file as input, introduces bit errors randomly in the encoded file (adding noise), and gives the erroneous encoded file as output. • Viterbi Decoder: Takes the noisy encoded file as input, decodes the file and removes errors, and gives decoded file as output. • The decoded output is obtained same as the given input!

  12. Software Implementation of Channel Noise: • Generate random number. • Select the noise coefficient based on remainder of rand()%8. • Select the noise insertion location based on random number generator (constraint is length of input file). • XOR the noise coefficient by the byte read at location from step 3.

  13. Execution on PS3: • The code has been run on PS3 utilizing 4 SPE cores. • Threads are created on the PPE for calling program execution on respective SPE cores, and the program is then run on respective called SPE cores. • Data parallelism is achieved by using different input data files on the different cores being used. • Optimization of both PPE and SPE codes to reduce the execution time is going on!

  14. Time analysis: • Runtime on X86: 2131 * 4 = 8524 micro seconds. • Runtime on PS3: • SPE1: 72253 micro seconds • SPE2: 78228 microseconds • SPE3: 69624 micro seconds • SPE4: 60880 micro seconds • Total runtime on PPE: 91728 micro seconds

  15. Future Plans • All the SPEs are to be utilized and the computational time needs to reduced. • The design document for the viterbi module project is to be released as the next deliverable. • Optimization of alpha version code for lowering the execution time on the CBE-PS3. • Viterbi Module is developed but tested for different inputs.

More Related