annotate dsp/cqedges.m @ 33:5b7d90b6393a

Minor tweaks, still needs work.
author samer
date Sun, 20 Jan 2013 18:56:19 +0000
parents c3b0cd708782
children
rev   line source
samer@33 1 % cqedges - Audio Spectrum linear to log frequency map (no checking)
samer@32 2 %
samer@33 3 % cqedges ::
samer@32 4 % real ~ 'sampling rate',
samer@32 5 % [[2]] ~ 'requested lower and upper cut-off frequencies',
samer@32 6 % real ~ 'resolution in octaves',
samer@32 7 % real ~ 'origin of frequency grid in Hz (defaut=1kHz)'
samer@33 8 % -> [[L-1]] ~ 'frequency bin edges'.
samer@33 9 %
samer@33 10 % Converts a constant-Q filterbank specification into a list of band edges.
samer@32 11
samer@33 12 function edges=cqedges(fs,range,res,F0)
samer@33 13 % origin of frequnecy grid defaults to 1kHz
samer@33 14 if nargin<4, F0=1000; end
samer@32 15
samer@33 16 % quantise requested edges and represent them in
samer@33 17 % in units of res on a log frequency scale.
samer@33 18 limits = round(log2(range/F0)/res);
samer@32 19
samer@33 20 % convert to normalised frequencies (fs=1)
samer@33 21 edges = (F0/fs)*2.^(res*(limits(1):limits(2)));
samer@33 22 keyboard
samer@32 23
samer@33 24 % remove any edges above Nyquist rate
samer@33 25 if edges(end)>=0.5, edges = edges(edges<0.5); end
samer@33 26 end