Real-Time Audio Processing

Matlab and the GNU Debugger: A Powerful Duo for Implementing DSP Algorithms

Abstract

  • Software debugging tools: tailored to needs of programmers and software developers
  • Poor support for DSP algorithm analysis and implementation
  • Makeshift solution: manual code instrumentation and external post-processing

Proposal: Extension of software debuggers with algorithm analysis capabilities (as provided, e.g., by Matlab)

Motivation: DSP Algorithm Development

Debugging Concept

  • Non-intrusive algorithm analysis and data access
  • Data transfer and mapping of data structures
  • Data sampling for statistical analyses
  • Conditional breakpoints based on derived parameters
  • Full Matlab functionality in debugger: data analysis, visualization, ...

GNU Debugger with Matlab

  • Different interpreter backends, e.g., Matlab and GNU Octave
  • New GDB commands, e.g., mbreak, mshell, mcmd, ...
  • Data from debug target can be requested by the interpreter using special syntax, e.g., plot(gdb::x@2048)
  • Additional tool: Automatic generation of GDB scripts from inline debug statements

Eclipse with Matlab

  • Communication with Matlab via dedicated control process
  • Integrated Matlab console for direct Matlab interaction
  • Extended breakpoint capabilities:
    • data transfer from debug target to Matlab
    • hooks for m-scripts (init, sample, finalize)
    • breakpoint condition in Matlab syntax

Example Use Cases

  1. OFDM Transmission
    • Evaluation and visualization of channel statistics, peak to average power ratio (PAPR), and signal space constellation
    • Break if PAPR limit is exceeded
  2. Audio / Speech Coding
    • e.g., Adaptive Multi-Rate Codec [ETSI GSM 06.90]
    • Evaluation of spectral envelope quantization
    • Computation of log-spectral distortion
    • Histogram collection
    • Break if log spectral distortion exceeds 5 dB, i.e., lsd(A, Aq) > 5

Project Page at sourceforge.net

References

[geiser10a]
Bernd Geiser, Stefan Kraemer, Jan Weinstock, Florian Heese, Marco Jeub, Thomas Esch, Rainer Leupers, and Peter Vary
Matlab and the GNU Debugger: A Powerful Duo for Implementing DSP Algorithms?
IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), March 2010

[geiser09b]
Bernd Geiser, Stefan Kraemer, Jan Weinstock, Rainer Leupers, and Peter Vary
An Integrated Algorithm and Software Debugging Tool for Signal Processing Applications
Proceedings of System, Software, SoC and Silicon Debug Conference (S4D), September 2009