Smartphone-based real-time digital signal processing / Nasser Kehtarnavaz, Shane Parris, and Abhishek Sehgal.

Saved in:
Bibliographic Details
Online Access: Full Text (via Morgan & Claypool)
Main Authors: Kehtarnavaz, Nasser (Author), Parris, Shane (Author), Sehgal, Abhishek (Author)
Format: eBook
Language:English
Published: San Rafael, California (1537 Fourth Street, San Rafael, CA 94901 USA) : Morgan & Claypool, 2015.
Series:Synthesis lectures on signal processing (Online) ; # 13.
Subjects:
Table of Contents:
  • 1. Introduction
  • 1.1 Smartphone implementation tools
  • 1.2 Smartphone implementation shells
  • 1.2.1 Android implementation
  • 1.2.2 iPhone implementation
  • 1.3 Overview of ARM processor architecture
  • 1.3.1 Data flow and registers
  • 1.4 Organization of chapters
  • 1.5 Software package of lab codes
  • 1.6 References
  • 2. Android software development tools
  • 2.1 Installation steps
  • 2.1.1 Java JDK
  • 2.1.2 Android studio bundle and native development kit
  • 2.1.3 Environment variable configuration
  • 2.1.4 Android studio configuration
  • 2.1.5 Android emulator configuration
  • L1. Lab 1: Getting familiar with android software tools
  • L1.1 Lab exercise
  • 3. iOS software development tools
  • 3.1 App development
  • 3.2 Setting-up app environment
  • 3.3 Creating layout
  • 3.4 Implementing C codes
  • 3.5 Executing C codes via objective-c
  • L2. Lab 2: iOS app debugging
  • L1.1. Lab exercise
  • 4. Analog-to-digital signal conversion
  • 4.1 Sampling
  • 4.2 Quantization
  • L3. Lab 3: Android audio signal sampling
  • L3.1 Demo app
  • L3.2 Demo app code
  • L3.3 Recording
  • L3.4 Processing.java code
  • L3.5 JNI native C code
  • L3.6 Lab exercises
  • L4. Lab 4: iOS audio signal sampling
  • L4.1 App source code
  • L4.2 Recording
  • L4.3 Native C code
  • L4.4 Lab exercises
  • 5. Fixed-point vs. floating-point
  • 5.1 Q-format number representation
  • 5.2 Floating-point number representation
  • 5.3 Overflow and scaling
  • 5.4 Some useful arithmetic operations
  • 5.4.1 Division
  • 5.4.2 Sine and cosine
  • 5.4.3 Square-root
  • 5.5 References
  • L5. Lab 5: Fixed-point and floating-point operations
  • L5.1 App structure
  • L5.2 NEON SIMD coprocessor
  • L5.3 Lab exercises
  • 5.7 References
  • 6. Real-time filtering
  • 6.1 FIR filter implementation
  • 6.2 Circular buffering
  • 6.3 Frame processing
  • 6.4 Finite word length effect
  • 6.5 References
  • L6. Lab 6: Real-time FIR filtering, quantization effect and overflow
  • L6.1 Filter design
  • L6.2 Arm overflow detection
  • L6.3 Lab exercises
  • 7. Adaptive filtering
  • 7.1 Infinite impulse response filters
  • 7.2 Adaptive filtering
  • 7.3 References
  • L7. Lab 7: IIR filtering and adaptive fir filtering
  • L7.1 IIR filter design
  • L7.2 Adaptive FIR filter
  • L7.3 Lab exercises
  • 8. Frequency domain transforms
  • 8.1 Fourier transforms
  • 8.1.1 Discrete Fourier transform
  • 8.1.2 Fast Fourier transform
  • 8.2 Leakage
  • 8.3 Windowing
  • 8.4 Overlap processing
  • 8.5 Reconstruction
  • 8.5.1 Inverse Fourier transform
  • 8.5.2 Overlap-add reconstruction
  • 8.6 References
  • L8. Lab 8: Frequency domain transforms - DFT and FFT
  • L8.1 Lab exercises
  • 9. Code optimization
  • 9.1 Code timing
  • 9.2 Linear convolution
  • 9.3 Compiler options
  • 9.4 Efficient C code writing
  • 9.5 Architecture-specific instructions
  • 9.5.1 Target architecture
  • 9.5.2 Arm hardware capabilities
  • 9.5.3 Neon intrinsics
  • 9.6 References
  • L9. Lab 9: Code optimization
  • L9.1 Compiler options
  • L9.2 Target architecture (Android)
  • L9.3 Code modification
  • 10. Implementation via Simulink/MATLAB
  • 10.1 Simulink model design
  • 10.2 MATLAB code blocks
  • 10.3 References
  • Authors' biographies
  • Index.