From help-octave-request at bevo dot che dot wisc dot edu Fri May 11 04:12:30 2001 Subject: Re: gnuplot and/or image[sc] questions From: Paul Kienzle To: Josh Rigler Cc: help-octave at bevo dot che dot wisc dot edu Date: Fri, 11 May 2001 04:11:11 +0100 On Thu, May 10, 2001 at 12:38:22PM -0600, Josh Rigler wrote: > I am attempting to plot a spectrogram. > > My first question is how do I change my color map to a reasonable RGB > palette, rather than the 64 element grayscale default? I've tried a > couple of different things, but I'm doing something wrong. I would like > a palette that runs from about blue (weak signal) to red (strong > signal). R = linspace(0,1,64)'; G = zeros(64,1); B = linspace(1,0,64)'; colormap([R,G,B]); image(ones(10,1)*[1:64]); > My second question is related. I would like my frequency scale to be > log 10. The usual approach to generating a log-frequency scaled spectrogram is to use a filter bank with narrow low frequency filters and wide high frequency filters. There is software for generating 1/3 octave filters on the mathworks ftp site, or you could try the author's site at: http://thor.fpms.ac.be/~couvreur/ It's been a while since I looked at it, and I don't remember to what extent it works under octave. > I don't think there is a reasonable way to do this with the > image[sc] routines. If you have interp2 from the Octave.sourceforge CVS tree, you could do: [S,f,t] = specgram(x,n,Fs); logf = logspace(log10(min(f)),log10(max(f)),n); logS = interp2(f,t,abs(S),logf,t,'linear'); imagesc(flipud(logS)); However, this would not be very stable unless you first averaged the bins with a frequency dependent averaging window. But then you've just simulated a filterbank, so you might as well do the filterbank to begin with. Paul Kienzle pkienzle at kienzle dot powernet dot co dot uk ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------