DSPRelated.com
Forums

equivalent operations in the time-domain & the frequency-domain

Started by theColdest March 11, 2005
Hi all,

You know how convolution in the time-domain is the equivalent of
multiplication in the frequency-domain, and vice-versa....

can anyone explain to me what would be the frequency-domain equivalent
of taking an "inner-product" in the time-domain??

For a signal-detection problem I've had some success with a matched
filter, windowing through data and taking time-domain inner-products
(the largest resulting values indicating the most correlation between
the windows being compared).

Just trying to get my head around what it means in the frequency
domain.

Thanks,
-ColdCold

"theColdest" <uyay6acg-th5x@yahoo.com> wrote in message 
news:1110583710.824513.132300@l41g2000cwc.googlegroups.com...
> Hi all, > > You know how convolution in the time-domain is the equivalent of > multiplication in the frequency-domain, and vice-versa.... > > can anyone explain to me what would be the frequency-domain equivalent > of taking an "inner-product" in the time-domain?? >
Yes, If you make it a Hermitian[1] inner product, then you have Parseval's relation. Basically an inner product in one domain becomes an inner product in the other domain times a scalar. The scalar depends on the normalization used with the Fourier transformation. See, http://mathworld.wolfram.com/ParsevalsRelation.html for more details. IHTH, Clay [1] By Hermitian I mean you have to take the complex conjugate of one of the two functions.
wow... ok, thanks.  that's very helpful.  (also, thanks for reminding
me of the definition of Hermitian!  heh.)

Hmm, any chance you could expand on how I would calculate that scalar?
i.e. the topic of normalization?  depending on the project, it seems I
am constantly asking myself if I should be doing some kind of
normalization, here or there... and usually I talk myself out of it.
:)

In the freq. domain, we don't really have upper bounds, correct?  It is
more a matter of relative values.  We're really just accumulating
energy over time and "filing it away" in the appropriate bins based on
the resolution we're afforded by our sampling frequency, right?  Not
only that but, (I think) we're separating the even functions from the
odd functions... where the even part is what we use to describe
frequencies while the odd part is the corresponding phase response that
is also required to describe the actual physical waveform.

So, (ok, getting a tiny bit off of this current topic, but...) in the
context of filtering (multiplying) in the frequency domain, what sorts
of situations would I want to normalize a spectrum to a peak-value of,
say, 1?... or perhaps, instead to an RMS value of 1?  Is it analogous
to when you'd want to normalize energy as opposed to power?
Presumably, the same things can all be accomplished in the
time-domain... but I guess I am sort of used to doing my filtering in
the freq. domain.

Well, I could ask questions all night, but I better stop now and hope
one of you nice folks will enlighten me.  :-)

thanks everyone.

Oh Matlab... miracle... demon.  :)

so... ok, since I am rusty, let me make sure I am on the same planet
first!  :)
typically... we've got our input spectrum X(m) and a transfer function
H(m), ok so in Matlab

Y(m) = X(m).*H(m)

do I have that right so far?  yes?  (that's an element-wise
multiplication operator, not convolution)

ok.  So then, this:

conj(Sjw) .* Hjw

is not the same thing as this:

Sjw' * Hjw

, right?  I mean I can see the differnce in Matlab, but... let's
discuss!  :)  (i.e. please correct my errs! :)

In the first case we're taking the complex conjugate of each element of
the first vector and then point-wise multiplying by the elements of the
second vector - resulting in a new vector of equal length to both the
others.

But now, in the second case, we're taking the complex conjugate
*transpose*, and then doing an *inner-product* calculation to derive a
single scalar!  Right?  (however, I don't quite remember when or why I
would choose to deal with a problem in this fashion!)

So, if that wasn't already enough for one post... are these operations
in any way analogous?  or are they completely separate beasts?  when is
the first case normally used?  more importantly (at the moment) I am
wondering when the second technique is used and why.  (which of course,
relates back to the beginning of this thread).

thanks everyone!

-ColdCold

"theColdest" <uyay6acg-th5x@yahoo.com> wrote in message 
news:1110593092.370056.13190@g14g2000cwa.googlegroups.com...
> wow... ok, thanks. that's very helpful. (also, thanks for reminding > me of the definition of Hermitian! heh.) > > Hmm, any chance you could expand on how I would calculate that scalar? > i.e. the topic of normalization? depending on the project, it seems I > am constantly asking myself if I should be doing some kind of > normalization, here or there... and usually I talk myself out of it. > :) > > In the freq. domain, we don't really have upper bounds, correct? It is > more a matter of relative values. We're really just accumulating > energy over time and "filing it away" in the appropriate bins based on > the resolution we're afforded by our sampling frequency, right? Not > only that but, (I think) we're separating the even functions from the > odd functions... where the even part is what we use to describe > frequencies while the odd part is the corresponding phase response that > is also required to describe the actual physical waveform. > > So, (ok, getting a tiny bit off of this current topic, but...) in the > context of filtering (multiplying) in the frequency domain, what sorts > of situations would I want to normalize a spectrum to a peak-value of, > say, 1?... or perhaps, instead to an RMS value of 1? Is it analogous > to when you'd want to normalize energy as opposed to power? > Presumably, the same things can all be accomplished in the > time-domain... but I guess I am sort of used to doing my filtering in > the freq. domain. >
There are different ways of doing normalization that are mostly independent of application details. Personally, I like things to be normalized so that the bandpass has frequency response of 1.0. So, for a lowpass FIR, the sum of the coefficients is close to 1.0 (the DC response). Watch out for conventions of scaling going to FFT and going to IFFT. There are at least 3 common methods: Divide by N going to FFT (uncommon in DSP) Divide by N going to IFFT (common in DSP) Divide by 1/sqrt(N) in both directions (uncommon in DSP). Some FFT / IFFT packages do NO scaling (like FFTW) so you have to apply your own according to your preference as above. Fred