There are 4 messages in this thread.
You are currently looking at messages 1 to .
Is this discussion worth a thumbs up?
Hi all, I am stucked at a point related to normalization of stft. When I apply normalization on stft, I get around 4 dB sensitivity loss. fft/sqrt(N) ifft*sqrt(N) So why we apply normalization if we achieve some loss on the power of the signal? Thanks______________________________
On Aug 23, 9:57 am, "calimero80" <60007@dsprelated> wrote: > Hi all, > > I am stucked at a point related to normalization of stft. When I apply > normalization on stft, I get around 4 dB sensitivity loss. > > fft/sqrt(N) > > ifft*sqrt(N) > > So why we apply normalization if we achieve some loss on the power of the > signal? > > Thanks For most numerical libraries I've seen there is a normalization factor of 1/N on one side of the FFT or the IFFT (not both). If you do see a normalization factor on both then it appears as fft/ sqrt(N) and ifft/sqrt(N), so you may want to check your normalization on the ifft side. Or, you may have just made a typo. Dave______________________________
FFT itself is a purely mathematical construct. If you attach some physical meaning to the result, there is no single "correct" way. For example, for my purposes, "physical meaning" demands that "my"FFT([1 1 1 1]) = [1 0 0 0] "my"FFT([1 1 1 1 1] = [1 0 0 0 0] so I define the scaling factor accordingly. For example, ask yourself, what is the physical meaning of the zero bin in "myFFT"? Is it the average of the samples, the sum or something else?______________________________
On 8/23/12 3:34 PM, mnentwig wrote:
> FFT itself is a purely mathematical construct.
*F* FT refers to a collection of efficient or "fast" methods of
performing the DFT.
> If you attach some physical
> meaning to the result, there is no single "correct" way.
well, i disagree and your example, i think, refers to a single correct
definition given your physical meaning.
> For example, for my purposes, "physical meaning" demands that
>
> "my"FFT([1 1 1 1]) = [1 0 0 0]
> "my"FFT([1 1 1 1 1]) = [1 0 0 0 0]
> so I define the scaling factor accordingly.
>
> For example, ask yourself, what is the physical meaning of the zero bin in
> "myFFT"? Is it the average of the samples, the sum or something else?
or is it the amplitude of the component at a frequency of 0?
your (inverse) DFT definition is this:
N-1
x[n] = SUM{ X[k] * e^(+j*2*pi*k*n/N) }
k=0
which is a nice and natural definition. that means the forward DFT
definition
N-1
X[k] = 1/N * SUM{ x[n] * e^(-j*2*pi*k*n/N) }
n=0
this is not the convention you see in most textbooks, but it's not a bad
convention. the disadvantage of the convention is that when you
circularly convolve two sequences in the time domain, x[n] and h[n],
that the DFT of the result is 1/N * X[k] * H[k] ("*" means
"multiplication" here). the more conventional definition removes that
1/N factor and transfers it to what happens when you convolve two
frequency-domain sequences.
now, when i saw the title of the thread, i thought it was about the
Short-Time Fourier Transform. there the normalization has to do with
the window function and with the degree of overlap with adjacent frames
of the STFT.
otherwise, this topic is really just about the normalization regarding
various self-consistent definitions of the DFT. "FFT" or "STFT" is not
really the issue.
--
r b-j r...@audioimagination.com
"Imagination is more important than knowledge."
______________________________