<< Chapter < Page Chapter >> Page >

Step 7: create new filter in matlab and verify

MATLAB scripts will be made available to you to aid in code development. For example, one of these scriptsallows you to save filter coefficients created in MATLAB in a form that can be included as part of the assemblyprocess without having to type them in by hand (a very useful tool for long filters). These scripts may alreadybe installed on your computer; otherwise, download the files from the links as they are introduced.

First, have MATLAB generate a "random" eight-tap filter by typing h = gen_filt; at a MATLAB prompt. Then save this vector of filter coefficients by typing save_coef('coef.asm',flipud(h)); . Make sure you save the file in your own directory. (The scriptsthat perform these functions are available as gen_filt.m and save_coef.m .)

The MATLAB script will save the coefficients of the vector h into the named file, which in this case is coef.asm . Note that the coefficient vector is "flipped" prior to being saved; this is to make thecoefficients in h fill DSP memory-locations 0x1000 through 0x1007 in reverse order, as before.

You may now re-assemble and re-run your new filter code as you did in Step 5 .

Notice when you load your new filter that the contents of memory locations 0x1000 through 0x1007 update accordingly.

Step 8: modify filter coefficients in memory

Not only can you view the contents of memory on the DSP using the debugger, you can change the contents at anymemory location simply by double-clicking on the location and making the desired change in the pop-up window.

Change the contents of memory locations 0x1000 through 0x1007 such that the coefficients implement a filter

h n 8192 δ n 4
creating a scaled and delayed version of the input. Note that the DSP interprets the integer value of8192 as a fractional number by dividing the integer by 32,768 (the largest integer possible in a 16-bit two'scomplement register). The result is an output that is delayed by four samples and scaled by a factor of 1 4 . More information on the DSP's interpretation of numbers appears in Two's Complement and Fractional Arithmetic for 16-bitProcessors .

After you have made the changes to all eight coefficients, run your new filter and use the oscilloscope to measurethe delay between the raw (input) and filtered (delayed) waveforms.

What happens to the output if you change either the scaling factor or the delay value? How many seconds longis a six-sample delay?

Step 9: test-vector simulation

As a final exercise, you will find the output of the DSP for an input specified by a test vector. Then you willcompare that output with the output of a MATLAB simulation of the same filter processing the same input; if the DSPimplementation is correct, the two outputs should be almost identical. To do this, you will generate awaveform in MATLAB and save it as a test vector. You will then run your DSP filter using the test vector as inputand import the results back into MATLAB for comparison with a MATLAB simulation of the filter.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Dsp laboratory with ti tms320c54x. OpenStax CNX. Jan 22, 2004 Download for free at http://cnx.org/content/col10078/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Dsp laboratory with ti tms320c54x' conversation and receive update notifications?

Ask