- Lab 9:
- For this lab you will create a primitive that will demodulate an FM signal.
Don't worry, you do not need to know anything about FM to do this lab; the
algorithm is already coded, you just need to handle the data input and
output to the algorithm.
- A template for this primitive is provided with the algorithm allready filled
in.
- Files (be sure to save these with the correct names):
- Use
UPDATE
to add the primitive to the command dictionary. It takes in 2
parameters (IN= and OUT=).
- Take a look at the processFM(..) method provided. This method
handles the demodulation. It takes in three parameters, input and
output arrays and number of elements read in.
- Within the file you will need to do the following (in the template, there is a
"Your code goes here." for each line you need to complete):
- In the open() method, add in the buffer allocation.
- In the process() method, complete the int numRead =
line. You should read in a buffer's worth of data.
- You will need to cast the input data to a float array before passing
it to the processFM(..) method.
- Hint: Only the data from the input buffer needs to be
copied from the data buffer into the array.
- Once you put in the casts you should immediately put in the uncasts
a few lines below. Do this for both the input and output arrays.
- Hint: Only the data from the output buffer needs to be
copied from the array into the data buffer.
- Between the cast and uncast, process the data. All you need to do is to
call processFM(..), all of the other work is done in that
method.
- Now write out the data to the output file (this must be AFTER the
uncast).
- Use the test macro to test it out.
- FYI: The DEMOD command in the DSP option tree
supports demodulating AM, FM, PM and more. Please see the explain file for
DEMOD for more details.