samer@33: % cqedges - Audio Spectrum linear to log frequency map (no checking) samer@32: % samer@33: % cqedges :: samer@32: % real ~ 'sampling rate', samer@32: % [[2]] ~ 'requested lower and upper cut-off frequencies', samer@32: % real ~ 'resolution in octaves', samer@32: % real ~ 'origin of frequency grid in Hz (defaut=1kHz)' samer@33: % -> [[L-1]] ~ 'frequency bin edges'. samer@33: % samer@33: % Converts a constant-Q filterbank specification into a list of band edges. samer@32: samer@33: function edges=cqedges(fs,range,res,F0) samer@33: % origin of frequnecy grid defaults to 1kHz samer@33: if nargin<4, F0=1000; end samer@32: samer@33: % quantise requested edges and represent them in samer@33: % in units of res on a log frequency scale. samer@33: limits = round(log2(range/F0)/res); samer@32: samer@33: % convert to normalised frequencies (fs=1) samer@33: edges = (F0/fs)*2.^(res*(limits(1):limits(2))); samer@33: keyboard samer@32: samer@33: % remove any edges above Nyquist rate samer@33: if edges(end)>=0.5, edges = edges(edges<0.5); end samer@33: end