A DSP-Based Audio Signal Processor

This is an article that I wrote for QEX , The ARRL Experimenter's Exchange. It appeared in Issue No. 176. September 1996, p:8-13 (ISSN: 0886-8093, USPS-424). This is copyrighted material.

Software for the ASP is available for downloading (Download ASP Code). Alternatively (Download F1BIU version).

The software package consists of several modules--a control program that resides on the PC and DSP code for downloading to the EZ-KIT. Source code for both the PC control program, written in C, and the DSP, written in assembly language, is provided and may be used as a basis for further experimentation. I encourage you to explore and modify the code--remember that there is no greater reward than trying and succeeding in doing it yourself.

Software Overview

The software package consists of several modules as listed below. These are assembled using the EZKIT assembler, ASM21, then linked using LD21 to form a loadable module called ASP.EXE.

  1. ASP.DSP ... Interrupt vectors, start-up code, and simple user-interface.
  2. ISR.DSP ... CODEC interrupt handler, digital BFO, multi-rate processing and filters.
  3. LMS.DSP ... Denoising and autonotcher.
  4. UART.DSP ... Software UART.
  5. SINE.DSP ... Sinewave generator.
  6. HILBERT.DSP ... Hilbert transformer.
  7. DSP.INC, UART.INC ... include files.

A "make" file named "makeasp.mak" is included to assist in re-building the code. Code development may be done with the Windows-based code development software supplied with the EZKIT. Once code is downloaded to the DSP, a simple user interface is ready to accept commands though the EZKIT's RS-232 line. The baudrate is fixed at 9600 baud, 8 bits, and one stop bit. The command set is minimal to operate the ASP and is intended as a starting point for experimentation. The present set of single character commands consists of:

Command Functionality
n +Increase BFO frequency by 1 Hz
n -Decrease BFO frequency by 1 Hz
n )Increase BFO frequency by 10 Hz
n (Decrease BFO frequency by 10 Hz
n >Increase BFO frequency by 100 Hz
n <Decrease BFO frequency by 100 Hz
n cClear BFO frequency to 0 Hz.
n dToggle denoiser.
n nToggle autonotcher.
n xSelect 500 Hz CW filter.
n ySelect 100 Hz CW filter.
n rReset BFO, denoiser, and CW filters

Note that only one set of filters is provided in this release of the software. The SSB and RTTY filters are left for further experimentation. The reader is encouraged to pattern these after the multi-rate processing and FIR filter implementation as shown for the CW filters. The command should provide for a means to adjust the denoiser and autonotch working parameters, i.e., "decay" and "beta". The default values, as used in the software, are good values to start out with. The ASP is intended to work in conjunction with a PC-based host program that would download code to the DSP, also provide a user-friendly command interface. The EZKIT development software may initially be used for this purpose, however, a special- purpose program for use with a graphical user interface would be ideal. Software for the ASP is available for downloading13. The reader is encouraged to explore and modify the code - remember that there is no greater reward than trying and succeeding in doing it yourself.

QEX article text

To my Home Page

© Johan Forrer,1998-2008