[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

signal processing routines

From: Paul Kienzle
Subject: signal processing routines
Date: Wed, 6 Oct 1999 10:44:42 +0100 (BST)

I've put a bunch of my own m-files on the web at the following address:  These are
largely clones of bits of the Matlab signal processing toolbox, along
with better audio support.

I would like some comments on the preference for putting audio
processing as a system function (you can kill it if it is going wrong
without destroying your octave session) vs. in a .oct file (cleaner

I would also like some comments on the output of the following:
   [b a] = butter(14, 0.5); zplane(b,a);
The zeros are distributed in a circle about -1 rather than all
of them sitting on -1.  This is because roots(poly(-ones(1,n))
does not equal -ones(1,n).  Is this a machine precision problem,
or a roots of unit problem.  Are the roots of a polynomial
with real coefficients not unique in the complex plane?  Regardless,
can anyone suggest a solution to the problem?

Paul Kienzle

Here is the aformentioned web page:
I've been busy generating some bits of Matlab that are missing from octave, 
particularly from the signal processing toolbox. You can
grab the current tarball from Send comments to 

Oct 6, 1999

         Not part of Matlab, but I needed a modulo function. rem()
         doesn't cut it since rem(-3,5)!=2.
         Plot an audio waveform at the given sampling rate, with time
         on the x axis.
         Load a .wav or a .au audio file, returning the waveform and the
         sampling rate, and each channel in a different column. It almost
         handles .aiff files as well, but someone who needs them has to
         add the 80-bit IEEE floating point I/O routines to octave first.
         Save a .wav or a .au audio file, along with sampling rate. Again,
         it almost handles .aiff files.
         Record audio at the requested rate/channels. Needs system helper
         function (currently only linux is written since I'm no longer
         playing with SGI's or Sun's).
         Record with endpoint detection so you don't have to clean up
         your waveform when you are done recording. Very convenient. Needs
         system helper function, only available on linux.
         Play audio with the requested rate/channels. Needs system helper
         function, again only for linux.
         build the system helper function
         play binary data from a pipe, 16 bit integer, native byte order,
         preceded by 32 bit integer sample rate and number of channels.
         record binary data to a pipe, 16 bit integer, native byte order,
         preceded by 32 bit integer sample rate and number of channels.
         Use command line parameters -r rate, -c channels, -t max. record
         time, and -e for endpoint detection., endpoint.h and endpoint.doc
         Bruce Lowerre's endpoint detection code.
     red.m, green.m, blue.m, hsv.m, prism.m, copper.m, hot.m and bone.m
         Various colour maps.
         set all values in matrix less than 0 to 0 and all values greater
         than 1 to 1. Perhaps should be made generic (i.e., optional
         high and low values) and moved to general/clip.m. Not in Matlab.
         Butterworth filter design
         s-plane frequency transform, lowpass to highpass, bandpass,
         Plot z-plane poles and zeros. Note that roots(poly(-ones(n,1)))
         does not equal -ones(n,1) for larger n (something about the
         roots of unity I expect), and your pole-zero positions will be
         significantly off.
         s-plane to z-plane transformation
         phase unwrapping.
         gaussian window (not in Matlab)
         Return or plot impulse response for filter.
         Added automatic plotting of the magnitude/phase for the filter
         if there are no return values.
         Chebyshev Type I filter.
         Chebyshev Type II filter. (not yet working)
         Order selection routine for butterworth filters. Works for
         lowpass and highpass. Sort of works for bandpass and bandreject., Makefile
         * Parks-McClellan algorithm for FIR filter design (C version)
         *------------------------------------------------- * Copyright
         (c) 1995,1998 Jake Janovetz (address@hidden) I have some
         questions about the correctness of this code. See PAK: comments
         in the file. Perhaps someone could compare it's output with
         that produced by Matlab for a variety of filters?

Octave is freely available under the terms of the GNU GPL.  To ensure
that development continues, see
Instructions for unsubscribing:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]