<< Chapter < Page | Chapter >> Page > |
In this example, the filter coefficients are placed in
memory in decreasing order; that is, the last coefficient,
, is at location
0x1000
and the first
coefficient,
, is stored at
0x1007
.
Now that you can find the coefficients in memory, you are
ready to use the MATLAB command
freqz
to view
the filter's response. You must create a vector in MATLABwith the filter coefficients to use the
freqz
command. For example, if you want to view the response of
the three-tap filter with coefficients -10, 20, -10 you canuse the following commands in MATLAB:
h = [-10, 20, -10];
plot(abs(freqz(h)))
Note that you will have to enter eight values, the contents
of memory locations
0x1000
through
0x1007
, into the coefficient vector,
h
.
Does the MATLAB response compare with your experimental results? What might account for any differences?
MATLAB scripts will be made available to you to aid in code development. For example, one of these scripts allows youto save filter coefficients created in MATLAB in a form that can be included as part of the assembly process withouthaving to type them in by hand (a very useful tool for long filters). These scripts may already be installed on yourcomputer; 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 scripts thatperform these functions are available as
gen_filt.m and
save_coef.m )
The
save_coef
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 beingsaved; this is to make the coefficients in
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.
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 scale and delay filter with impulse response:
Notification Switch
Would you like to follow the 'Ece 320 - spring 2003' conversation and receive update notifications?