audio spectrum analyzer

advertisement
EECE 327
Project 4
LabVIEW Spectrum Program
An Audio Spectrum Analyzer Using LabVIEW
Jeffrey Bach
UNM PURSUE Program
LabVIEW is an icon-based software allowing control of processes and instrumentation,
and creation of virtual instruments (VI’s) on the PC. The LabVIEW programming
language is generally easier to write and understand than traditional text-based
programming languages.
This project uses the capabilities of LabVIEW and the data acquisition card to measure
the power spectrum of an audio signal. The power spectrum tells us the compostition of
frequencies and their power level contained within a signal. For example, the power
spectrum of a 1 kHz sine wave will be a spike (single frequency) at 1 kHz and the power
will be proportional to the output amplitude.
Data Acquisition (DAQ) is the term used to describe the process of gathering data using
digital means. Computers equipped with DAQ cards may have combinations of analog
inputs, analog outputs, digital inputs, digital outputs, and counters. The particular boards
that we have in the electronics lab contain eight differential analog inputs (or 16 singleended inputs), two analog outputs, eight digital I/O lines, and two counters. The
difference between a differential input and a single-ended input is that the single-ended
inputs are all referenced to the same ground as the computer and DAQ card. The
differential inputs are preferred, and are the only setup available in the lab on the
breadboards that are connected to the computers.
In contrast to the thermistor project, power spectrum analysis requires relatively high
sampling rates. While a thermistor may be sampled up to once per second, audio signals
must be sampled many times per second. The actual sample rate is governed by the
Nyquist criteria. Nyquist tells us that to accurately reproduce a sinusoidal signal, we
must sample at a rate of twice the highest frequency component we expect to encounter.
For audio signals, if we consider the range of frequencies to be from 20 Hz to 20 kHz,
then we must choose a sample rate of 40 kHz or higher. This is known as the Nyquist
rate.
If the sample rate is not twice the frequency of the input signal, then a phenomenon
known as aliasing occurs. Aliasing can be thought of as a “folded back” measurement.
The signals greater than 2 times the Nyquist rate are subtracted from the Nyquist rate to
form an apparent frequency which falls within the acceptable frequency. These signals
are misrepresented as lower frequencies, and thus contribute to error in the measurement
of in-band signals. Figure 1 illustrates aliasing of a 1 kHz signal when sampled at
various rates.
Page 1 of 5
EECE 327
Project 4
LabVIEW Spectrum Program
Figure 1 – Aliasing of a 1 kHz signal (from [1])
So how is aliasing prevented? The solution is to use an analog low-pass filter before the
input to the DAQ card (see figure 2). The low-pass filter prevents signals that are beyond
the Nyquist rate from reaching the DAQ card at an amplitude that is significant enough to
show false measurements. Since ideal filters (infinite roll-off slope) are unachievable in
real life, a real filter must meet certain specifications:
1. The pass-band response must be flat to avoid amplitude errors in the measured
signal. This means that filters that have ringing in the pass-band must be avoided.
Avoid Chebyshev filters especially due to their excessive ringing.
2. The roll-off must have a slope such that frequencies above the Nyquist rate are at
a level such that they can be considered noise. If you define signals below –60
dB to be noise, then frequencies above the Nyquist rate must be attenuated below
–60 dB.
Please note that rule number one applies especially to this program since we are
interested in the amplitude of the frequency components of the input signal. Other
applications may be more interested in the phase response. For these applications, the
pass-band ripple is less important than the phase shift through the filter, and a Chebyshev
filter may be appropriate (if the phase manipulation is not too great).
LPF
DAQ
Card
FFT
Power Spectrum
Graph
Figure 2 – System Block Diagram
The sampling must be buffered for the data to be acquired without timing errors. The
thermistor program, in contrast, uses a software-timed acquisition. Buffered data
Page 2 of 5
EECE 327
Project 4
LabVIEW Spectrum Program
acquisition for a single waveform is accomplished using the LabVIEW VI AI Acquire
Waveform.vi. This is found on the functions palette (block diagram), Data Acquisition ->
Analog Input. This VI is shown below as figure 4.
Figure 3 – Simple Buffered Data Acquisition
The device parameter is the particular DAQ card within the computer. Since we have
only one card, this should be set to 1. The channel is set to whichever input channel is
used, and will most likely be either 0, 1, or 2. The next two options set the number of
samples at a time to take, and the number of samples per second (the rate) at which to
take them. Again, for sound, the sample rate should be above 40 kHz.
The method of sampling presented here is referred to as simple buffered. There is a
better way to accomplish the sampling such that the buffer is not cleared and filled with
each iteration. This is called circular buffering. Information on circular buffering can be
found in the LabVIEW Measurement Manual (see [2]).
LabVIEW has a simple VI provided to output the power spectrum of an input waveform.
This vi is found under Waveform -> Waveform Measurements -> FFT Power
Spectrum.vi (figure 4). For an example on how to use this VI, please see the DAQ
examples in the help for LabVIEW. To understand more about the Fast Fourier
Transform and sampling windows, please consult a book on signal processing.
Figure 4 – FFT Power Spectrum Usage
Page 3 of 5
EECE 327
Project 4
LabVIEW Spectrum Program
Your program should contain the following features: An FFT Power spectrum graph, a
time domain graph (like the waveform on an oscilloscope), the ability to control how the
FFT does the averaging, and the ability to control the window (FFT sampling method)
that is used.
A sample program has been written which demonstrates the basic principles outlined.
Please refer to figure 5 below.
Figure 5 - Program example with (slightly greater than) 800Hz input signal
Page 4 of 5
EECE 327
Project 4
LabVIEW Spectrum Program
References:
[1] G. W. Johnson and R. Jennings, LabVIEW Graphical Programming, 3rd ed., New
York: McGraw-Hill, 2001, p. 90, figure 4.1.
[2] National Instruments Corporation. (2000, July). LabVIEW Measurements Manual.
[Online]. Available: http://www.ni.com/pdf/manuals/322661a.pdf
For further information:
[3] G. W. Johnson and R. Jennings, LabVIEW Graphical Programming, 3rd ed., New
York: McGraw-Hill, 2001, pp. 59-106.
[4] B. Mihura, LabVIEW for Data Acquisition, Upper Saddle River, New Jersey:
Prentice Hall PTR, 2001
[5] R. H. Bishop, Learning With LabVIEW, Menlo Park: Addison Wesley, 1999
Page 5 of 5
Download