ECE 4760: Questions related to lab exercise 1
- Read the policy page.
This is the implicit contract you are agreeing to by taking the course.
- Further reading for lab 1 is at Reading assignments and includes
Reference Manual sections 12, 14, 15
PIC32 Peripheral Libraries for MPLAB C32 Compiler sections 10, 11, 12
- Read all of Lab 1.
- From the PIC32 data sheet:
What is the maximum current you can draw from any i/o pin?
What is the maximum current you can source from the sum of all pins.
- Estimate the Thevinin equvalent output resistance of an i/o pin from the
PIC32 data sheet. Use table 29-9.
There will be two separate estimates corresponding to whether
the output is logic-high or logic-low.
Standard musical note frequencies vary over a large range of frequencies, but we will use the range C4 to C6:
Given these specifications:
- The just-noticable-difference for frequency is about 0.1% to 0.6% of the nominal note frequency,
depending on frequency, loudness, spectral purity, note timing, and the listener's training.
We are going to set the frequency accuracy requirement to about 0.5% because it is hard to
measure much better than that using our oscilloscopes.
- For every fundamental frequency generated, all spurous frequencies must be lower
than -20 db from the amplitude of the fundmental. This distortion requirement sets a lower bound
on the synthesis sample rate (see question 1 below), but we will specify the standard audio rate of
44 KHz as the synthesis sample rate for all audio produced.
- To surpress broadband noise (clicks), every sound produced must have an amplitude rise/fall time long
compared to 1 period of the fundamental.
I suggest a linear rise from zero amplitude to full amplitude,
flat sustain, and linear fall back to zero amplitude. (see Fig 1.18)
- Pure sine waves are boring to listen to, so you are required in lab 1 to use additive or FM synthesis to make more
- what minimum DDS sample frequency is required, based on the above specs?
You will choose ONE DDS sample frequency for all tones produced.
A matlab program which computes spectrum versus number of samples/cycle.
When you run the program, notice that the first large spectral errors are at approximately
first_error_frequency = steps_per_cycle * frequency - frequency
Program output examples: 8 samples/cycle, 16 samples/cycle
- Should you add a low pass filter to the DAC output? If so, what cutoff frequency?
- How accurate is the internal PIC32 oscillator? Does it meet the frequency accuracy spec?
- What kind of amplitude modulation will you use and why. Linear ramp? Cosine? Exponential? Hanning?
A matlab program computes spectrum for different envelopes. Listen to the resulting waveforms.
June 10, 2019