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
equivalent operations in the time-domain & the frequency-domain
Started by ●March 11, 2005
Reply by ●March 11, 20052005-03-11
"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.
Reply by ●March 11, 20052005-03-11
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.
Reply by ●March 11, 20052005-03-11
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
Reply by ●March 12, 20052005-03-12
"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