Reply by dbd February 19, 20072007-02-19
On Feb 16, 7:22 am, munky <m...@by.com> wrote:
> Hi, > I'm writing an audio application and for the most part I've been using > an octave spaced decimating filter bank and applying FFTs to each > octave. For my purposes this works pretty well (guitar processing) > however I'm getting artefacts due to spectral smearing when I'm trying > to resolve a low G and A - 98Hz and 110Hz - now obviously I could > increase my FFT window size, but I really don't want to make my time > resolution any worse so I was wondering if there are any other methods > that provide more optimal time frequency planing. > ... > > MTIA, > Fraser.
Another method to look at is the reassignment method. It has been used for musical analysis. Try: 1) S.W. Hainsworth, M.D. Macleod, and P.J. Wolfe, "Analysis of reassigned spectrograms for musical transcription," in IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, Mohonk, NY, Oct. 2001. http://citeseer.ist.psu.edu/hainsworth03analysis.html 2) author = "Stephen W. Hainsworth and Patrick J. Wolfe", title = "Time-Frequency Reassignment for Music Analysis", url = "citeseer.ist.psu.edu/599814.html" } 3) search in IEEE xplore site under "reassignment" The reassignment is intended to identify the center for the acoustic energy when it does not fall on a bin center. Good luck! Dale B. Dalrymple http://dbdimages.com
Reply by marc February 18, 20072007-02-18
> I'm getting artefacts due to spectral smearing when I'm trying > to resolve a low G and A - 98Hz and 110Hz - now obviously I could > increase my FFT window size, but I really don't want to make my time > resolution any worse so I was wondering if there are any other methods > that provide more optimal time frequency planing. >
Have you tried applying different windows to the signal? If you've only tried the rectangular window I would suggest giving this some consideration. Other windows such as the Bartlett or Hann will sacrifice main lobe width to reduce the side lobe interferance, but you can get more flexibility from the Kaiser window (which tries to balance the main lobe width by fixing the energy in the side lobes). -marc
Reply by Peter K. February 18, 20072007-02-18
On Feb 16, 10:22 am, munky <m...@by.com> wrote:

[SNIP]

> I stumbled across the Wigner Distribution and something called a Reduced > Interference Distribution, which seems to be a modification of the > Wigner Distribution, but as I'm more of a programmer than a > mathematician I'm a bit stumped.
Fraser, I wouldn't bother.
> Could anyone who knows about these things let me know whether they'd > consider this to be a good alley to go down or a waste of time? > > If it seems like a good idea I don't suppose anyone knows where there > may be a C implementation of this lurking on the Internet (preferably > with examples of usage so I can get up an running relatively quickly and > try to slot it in place of my FFT).
This crap: http://home.comcast.net/~kootsoop/ccg.c implements several different time-frequency distributions of Cohen's class (CCG = Cohen's Class Generator). It's a little old, but I believe compiles OK under Windows... it also assumes that the input file is of a certain type (there are three numbers at the beginning: 1: real-valued signal, N: signal length, fs: sample rate, followed by the N data points).
> Also does the Wigner transform give a phase spectrum too? For my > application obtaining the correct phases of spectral peaks is pretty > crucial.
Most of Cohen's class doesn't preserve absolute phase. Relative phase, possibly, absolute no. Ciao, Peter K.
Reply by munky February 16, 20072007-02-16
Hi,
I'm writing an audio application and for the most part I've been using 
an octave spaced decimating filter bank and applying FFTs to each 
octave. For my purposes this works pretty well (guitar processing) 
however I'm getting artefacts due to spectral smearing when I'm trying 
to resolve a low G and A - 98Hz and 110Hz - now obviously I could 
increase my FFT window size, but I really don't want to make my time 
resolution any worse so I was wondering if there are any other methods 
that provide more optimal time frequency planing.

I stumbled across the Wigner Distribution and something called a Reduced 
Interference Distribution, which seems to be a modification of the 
Wigner Distribution, but as I'm more of a programmer than a 
mathematician I'm a bit stumped.

Could anyone who knows about these things let me know whether they'd 
consider this to be a good alley to go down or a waste of time?

If it seems like a good idea I don't suppose anyone knows where there 
may be a C implementation of this lurking on the Internet (preferably 
with examples of usage so I can get up an running relatively quickly and 
try to slot it in place of my FFT).

Also does the Wigner transform give a phase spectrum too? For my 
application obtaining the correct phases of spectral peaks is pretty 
crucial.

MTIA,
Fraser.