-
Home
- Dsp lab with ti c6x dsp and c6
- Cosine generator lab
- Cosine generator lab
This module is the recursive cosine generation lab.
Skills
In this laboratory you write a program that generates a cosine on the output of the D/A converter. After this laboratory you should:
- Be able to work with transfer functions and difference equations.
- Be able to get a Visual Basic program to communicate with your DSP program on the DSK board.
Reading
- Chapter 4: Emmanuel Ifeachor and Barrie W. Jervis,
Digital Signal Processing: A Practical Approach , Pearson Education Limited, England, 2002.
- Chapter 13&14: Mrinal Mandal, Amir Asif,
Continuous and Discrete Time Signals and Systems , Cambridge University Press, 2007.
Description
In this lab you will be making a cosine function generator. This will require you to generate the values that go to the D/A converter in order to produce a cosine function. Since we are only concerned with the output, the input values will be ignored. You will need to determine the values of the cosine function necessary to produce it on the output.
Pre-laboratory
- In order to generate a cosine function we will generate the impulse response of a system that has the impulse response
- For the given impulse response find the following:
- Transfer function of the system. Look it up in a ZT table.
- Direct Form II structure of the system.
- Pole/zero diagram of the system. Assume
α = π/4 for the example diagram.
- Difference equation of the system.
- Calculate
h (0),
h (1), and
h (2) assuming the input is an impulse
x (
n ) = δ(
n ). Simplify the
h (2) term.
- Show how you will recursively determine the impulse response of this system.
- Suppose the sample rate of the system is 8000 Hz and we want to generate a cosine with a frequency of 500 Hz, what should
α be to implement this cosine function?
- In MATLAB, write a program that will recursively determine the impulse response of this system with sample rate 8000Hz and cosine of 400 Hz. Put the data into an array and plot the impulse response. Generate 100 points. Compare the recursively generated values to the direct calculation of the cosine function.
- Modify the while loop Write a program in C that will recursively determine the impulse response of this system.
- The recursive portion should be in an infinite
while
loop and the data should not go into an array but in a single variable.
- All of the variables should be of type
double
.
- In your program you will need to include the header file
math.h
.
- The data we are generating is for the D/A converter. The D/A converter accepts
Int16
type data which has the limits of [-32768, 32767]. Since the impulse response has the limits [-1, 1]you will need to multiply the result by a number to scale the value up to a level that will work with the D/A converter without overflowing. Use the value
32000.0
. The statement will be something like
(Int16)(32000.0*y)
.
- To calculate
π , use the following statement:
pi=16.0*atan(1.0/5.0)-4*atan(1.0/239.0);
Laboratory
Part 1
- Use the sample I/O program for the DSK and generate a 400 Hz cosine sampled at 8000 Hz using the recursive program you developed.
- Change the frequency of the cosine to at least 2 other values from about 50 Hz to 4000 Hz and record the results.
- What happens when you change the frequency of the cosine to 5000 Hz? Explain what you see.
Source:
OpenStax, Dsp lab with ti c6x dsp and c6713 dsk. OpenStax CNX. Feb 18, 2013 Download for free at http://cnx.org/content/col11264/1.6
Google Play and the Google Play logo are trademarks of Google Inc.