\documentclass{article}
\input{6111-preamble}

\begin{document}

\title{Frequency Domain Processing of Audio Signals}
\author{Dan Ports, Andrew Clough, and Albert Chiou}
\maketitle

\section{Overview}
The frequency domain is a natural representation for audio signals. Viewing the spectrum of a signal is often of great interest as it makes it possible to see which frequencies are present in a signal. Moreover, a number of interesting and useful filters can be implemented by performing signal processing in the frequency domain.

We intend to create a digital signal analyzer and processor that operates in the frequency domain. An input signal will be digitized by an analog-to-digital converter and converted to the frequency domain using the Fast Fourier Transform (FFT). A variety of user-configurable and selectable digital filters will be available to apply to the frequency domain representation of the signal. The spectrum of the unprocessed input signal and the processed output signal will be displayed on a video monitor. The processed output signal will then be converted back into the time domain using the inverse FFT, and output through a digital-to-analog converter.


\section{Design}
The design of this processor will be divided into three large components, as drawn on the block diagram.
\subsection{FFT / Conversion}
A major component of this system will be the conversion unit. This unit will handle conversions between digital and analog signals and the time and frequency domains. An analog-to-digital converter will sample the input signal (one mono line-level analog audio signal) and store the samples in a buffer. A Fast Fourier Transform will be implemented to convert these samples into the frequency domain. When the transform processing is completed, the resulting samples will be transferred to the processing unit, which will perform the desired manipulation of the signal. The processing unit will return a processed sample in the frequency domain. This will be converted back to the time domain using the inverse FFT, and stored in an output buffer. The digital-to-analog converter will output the samples stored in this buffer.
\subsection{Processing}
The processing unit will perform the actual manipulations of the input signal in the frequency domain. It will provide several filters that can be selected and configured by the user, and applied to the frequency coefficients produced by the conversion unit. These filters will include:

\begin{itemize}
\item Parametric equalization --- configurable center frequency, bandwidth, and gain/attenuation)
\item Frequency shifting --- configurable shift amount
\item Frequency inversion of some or all of spectrum --- configurable low and high endpoints
\item Pitch bending based on amplitude (if time permits)
\item Harmonic generation --- $n$th coefficient is multiplied by a scale factor and added to $nk$th coefficient; configurable $k$
\item Arpeggiator --- creates delayed echos on the $\frac{k}{2}$th harmonic, creating the effect of 1-5-1 quasi-arpeggios; configurable magnitude and $k$
\end{itemize}
The filter will be selected using a set of switches. Filter parameters will be entered either using switches to specify a value, or by using a potentiometer to generate an input value that will be digitized using an ADC.
\subsection{Video}
A video interface will allow for analysis of the input signal as well as viewing the results of the filter. Two spectrum graphs will be provided, displaying the frequency spectra of both the input and output signal. In addition, the current selected filter, parameter values, and any status information will also be displayed on the video display.

\subsection{Interconnection}
The three components will be interconnected using a three-way parallel interface to transmit frequency coefficients. The Conversion module will output the frequency spectrum of input samples to the Processing and Video modules for processing and display, and then the Processing module will transmit the frequency spectrum of processed output samples to the Conversion and Video modules for output and display. In addition, status signals will be transmitted between kits.

\section{Division of Work}
Dan will be responsible for designing and implementing the FFT / Conversion module, Andrew the Processing module, and Albert the Video module.

\section{Testing}
Each component will be tested in simulation and in hardware. The A/D and D/A components will be tested as in Lab 3. The FFT module will be tested by verifying that all mathematical components operate correctly, and then tested using simple signals (sine waves, square waves, etc.) at various frequencies and amplitudes. To test the processing module, all mathematical components required will first be tested. Each filter will be tested individually, as well as the control logic that selects the filter and parameters. Correct operation will be verified using simple signals as well as more complex ones. The video unit will be tested by ensuring that it can correctly generate output to the video display, then testing the conversion from frequency data to a spectrum graph. Finally, combinations of components will be tested.
\end{document}
