You are previewing DSP for Embedded and Real-Time Systems.
O'Reilly logo
DSP for Embedded and Real-Time Systems

Book Description

This Expert Guide gives you the techniques and technologies in digital signal processing (DSP) to optimally design and implement your embedded system. Written by experts with a solutions focus, this encyclopedic reference gives you an indispensable aid to tackling the day-to-day problems you face in using DSP to develop embedded systems.

With this book you will learn:

  • A range of development techniques for developing DSP code
  • Valuable tips and tricks for optimizing DSP software for maximum performance
  • The various options available for constructing DSP systems from numerous software components
  • The tools available for developing DSP applications
  • Numerous practical guidelines from experts with wide and lengthy experience of DSP application development

Features:

  • Several areas of research being done in advanced DSP technology
  • Industry case studies on DSP systems development
  • DSP software development tools available for download and evaluation

DSP for Embedded and Real-Time Systems is the reference for both the beginner and experienced, covering most aspects of using today’s DSP techniques and technologies for designing and implementing an optimal embedded system.



  • The only complete reference which explains all aspects of using DSP in embedded systems development making it a rich resource for every day use
  • Covers all aspects of using today’s DSP techniques and technologies for designing and implementing an optimal embedded system
  • Enables the engineer to find solutions to all the problems they will face when using DSP

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Author Biographies
  6. DSP in Embedded Systems: A Roadmap
  7. Chapter 1. Introduction to Digital Signal Processing
    1. What is digital signal processing?
    2. Advantages of DSP
    3. DSP systems
    4. Applications for DSPs
    5. Power efficient DSP applications
    6. Conclusion
  8. Chapter 2. Overview of Real-time and Embedded Systems
    1. Real-time systems
    2. Efficient execution and the execution environment
    3. Challenges in real-time system design
    4. Distributed and multi-processor architectures
    5. Embedded systems
    6. Summary
  9. Chapter 3. Overview of Embedded Systems Development Lifecycle Using DSP
    1. Embedded systems
    2. The embedded system lifecycle using DSP
    3. FPGA solutions
    4. A general signal processing solution
    5. DSP acceleration decisions
    6. Models of DSP processing
    7. Code tuning and optimization
    8. Typical DSP development flow
    9. Putting it all together
  10. Chapter 4. Programmable DSP Architectures
    1. Common features of programmable DSP architectures
    2. Memory architecture
    3. Data operations
  11. Chapter 5. FPGA in Wireless Communications Applications
    1. Introduction
    2. Beamforming for WiMAX
    3. Conclusion
    4. REFERENCES
  12. Chapter 6. The DSP Hardware/Software Continuum
    1. Introduction
    2. FPGA in embedded design
    3. Application specific integrated circuits versus FPGA
    4. Software programmable digital signal processing
    5. General purpose embedded cores
    6. Putting it all together
    7. Bibliography
  13. Chapter 7. Overview of DSP Algorithms
    1. Applications of DSP
    2. Systems and signals
    3. The basic DSP system
    4. Frequency analysis
    5. Algorithm implementation – DSP architecture
    6. Implementing an FIR filter
    7. System issues
    8. Conclusion
  14. Chapter 8. High-level Design Tools for Complex DSP Applications
    1. High-level synthesis design methodology
    2. High-level design tools
    3. Catapult C
    4. Case studies
    5. LDPC decoder design example using PICO
    6. Matrix multiplication design example using Catapult C
    7. QR decomposition design example using System Generator
    8. Conclusion
    9. REFERENCES
  15. Chapter 9. Optimizing DSP Software – Benchmarking and Profiling DSP Systems
    1. Introduction
    2. Writing a test harness
    3. Isolating a DSP kernel
    4. Modeling of true system behaviors
    5. System effects
    6. Execution in a multicore/multidevice environment
    7. Measuring the measurement
  16. Chapter 10. Optimizing DSP Software – High-level Languages and Programming Models
    1. Assembly language
    2. C Programming language with intrinsics and pragmas
    3. Embedded C
    4. C++ for embedded systems
    5. Auto-vectorizing compiler technology
  17. Chapter 11. Optimizing DSP Software – Code Optimization
    1. Optimization process
    2. Using the development tools
    3. Background – understanding the DSP architecture
    4. Basic C optimization techniques
    5. Use of intrinsics to leverage DSP features
    6. Pointers and memory access
    7. Loops
    8. Hardware loops
    9. Additional tips and tricks
    10. General loop transformations
    11. Loop unrolling
    12. Multisamping
    13. Partial summation
    14. Software pipelining
    15. Example application of optimization techniques: cross correlation
  18. Chapter 12. DSP Optimization – Memory Optimization
    1. Introduction
    2. Code size optimizations
    3. Memory layout optimization
  19. Chapter 13. Software Optimization for Power Consumption
    1. Introduction
    2. Understanding power consumption
    3. Measuring power consumption
    4. Profiling your application’s power consumption
    5. Minimizing power consumption
    6. Clock and voltage control
    7. Optimizing data flow
    8. Peripheral/communication utilization
    9. Summary and closing remarks
    10. REFERENCES
  20. Chapter 14. DSP Operating Systems
    1. Introduction
    2. DSP OS fundamentals
    3. Real-time constraints
    4. Multicore considerations
    5. Memory management
    6. Networking
    7. Scheduling
    8. Tools support for DSP OSes
    9. Conclusions
    10. REFERENCES
  21. Chapter 15. Managing the DSP Software Development Effort
    1. Introduction
    2. Challenges in DSP application development
    3. The DSP design process
    4. Design challenges for DSP systems
    5. High level design tools for DSP
    6. DSP toolboxes
    7. Host development tools for DSP development
    8. A generic data flow example
    9. Code tuning and optimization
    10. Putting it all together
  22. Chapter 16. Multicore Software Development for DSP
    1. Introduction
    2. Multcore programming models
    3. Porting guidelines
    4. Conclusions
  23. Chapter 17. Developing and Debugging a DSP Application
    1. Integrated Development Environment overview
    2. Creating a new project
    3. Build and link the application for a multi-core DSP environment
    4. Execute and debug the application on multi-core DSP
    5. Trace and Profile the multicourse application using hardware and software dedicated resources
  24. CASE STUDY 1: Case Study – LTE Baseband Software Design
  25. CASE STUDY 2: DSP for Medical Devices
  26. CASE STUDY 3: Voice Over IP DSP Software System
  27. CASE STUDY 4: Software Performance Engineering of an Embedded System DSP Application
  28. CASE STUDY 5: Specifying Behavior of Embedded Systems
  29. CASE STUDY 6: DSP for Software Defined Radio
  30. Index