The programs in this directory were written to help with a DSP course. The
Chirp-Z algorithm was actually a homework assignment that my professor let me
do on the HP48. These programs are entirely user RPL, and are rather slow
for very long vectors, but I can't imagine why anyone would want to do FFTs
of anything longer than about 128 on a calculator anyway. If people find
these useful and let me know, I may try a SysRPL version.
The Sample and Plot programs were written by John Paul Morrison and come from
the fftgx directory.
Descriptions:
DFT and IDFT: << FFT >> and << IFFT >> - so I wouldn't have to type them
out every time, or search through MTH menus.
ChrpZ: Takes one, two, or four arguments.
1: [ n1 n2 n3 ... ]
With a single vector in level 1, ChrpZ does a DFT of that
vector. Any length vector is acceptable (not just powers
of 2). The program uses the Chirp-Z transform algorithm
for computing the DFT
2: [ n1 n2 n3 ... ]
1: N
With a vector in level 2, and a number in level 1, ChrpZ
will give N samples of the DTFT of the vector in level 2.
Again, any length vector is acceptable.
4: [ n1 n2 n3 ... ]
3: N
2: start
1: finish
With these arguments, ChrpZ will compute a "Zoom FFT" - it
will give N samples of the DTFT between the angles specified.
(e.g. N = 10, start = pi/3, finish = pi/2: the result will be
a vector containing the 10 samples of the DTFT of the original
sequence evenly spaced between pi/3 and pi/2. Both start and
finish angles must be between 0 and 2*pi.
MagP: Plots the magnitude of a complex sequence.
PhsP: Plots the phase of a complex sequence.
Zpad: Zero pads a sequence to a specified length:
2: [ n1 n2 n3 ... ]
1: N
Zpad will return a vector of length N consisting of the original
vector padded with zeros.
Sample: Samples an algebraic:
5: 'equation'
4: 'variable'
3: start
2: finish
1: N
Result will be a vector of length N consisting of samples of
the equation between times start and finish.
Win: "Windows" or multiplies the vectors in levels 1 and 2 element by
element. The only restriction is they must be the same length.
Ham: Creates a Hamming window of length specified in level 1.
Cnvlv: Does a fast linear convolution using the FFT of the vectors in
level 1 and level 2. Any length vectors are acceptable.
Plot: Barplot of a real vector.
If you find these useful or have comments/questions, please let me know. My
Email address is m-dickey@coewl.cen.uiuc.edu
Michael Dickey