| Electronics > Projects, Designs, and Technical Stuff |
| Hilbert Transform (Kramers Kronig Relations) |
| (1/2) > >> |
| noname4me:
Hi All, Is anyone here up to speed on the Kramers Kronig relations? I just need a definition of what each of the terms mean (I already have an FFT of my signal): The Kramers Kronig relations are stated as: % for: % X(w) = X_1(w) + iX_2(w) % % X_1(w) = (1/pi) * Cauchy_principle_value * integral ( X_2(w')/(w'^2 - w) dw') % % % X_2(w) = (-2w/pi) * Cauchy_principle_value * integral ( X_1(w')/(w'^2 - w) dw') I don't get where I am supposed to find my Cauchy principle value, and w' and dw' are supposed to represent? Even if you can give me a link that has a worked example that would be fantastic - I have searched YouTube and Googled but everything I've found either gives me the formulas above or nothing. Hilbert Transforms are the general heading under which Kramers Kronig relations fall in to, so even a good worked example where each of the components is worked out would be brilliant. or a textbook reference Many Thanks |
| iMo:
--- Quote from: noname4me on April 07, 2020, 05:59:18 pm ---.. % for: % X(w) = X_1(w) + iX_2(w) % % X_1(w) = (1/pi) * Cauchy_principle_value * integral ( X_2(w')/(w'^2 - w) dw') % % % X_2(w) = (-2w/pi) * Cauchy_principle_value * integral ( X_1(w')/(w'^2 - w) dw') I don't get where I am supposed to find my Cauchy principle value, and w' and dw' are supposed to represent? .. --- End quote --- I think it should read: % for: % X(w) = X_1(w) + iX_2(w) % % X_1(w) = (1/pi) * Cauchy_principle_value [ Integral ( X_2(w')/(w'^2 - w) dw') ] % % % X_2(w) = (-2w/pi) * Cauchy_principle_value [ Integral ( X_1(w')/(w'^2 - w) dw') ] You should calculate the Cauchy PV "of that Integral of the complex function", as the Integral has got a singularity (ie. a pole) in its complex function. |
| T3sl4co1l:
CPV isn't a coefficient? It's supposed to be written as a specifier of the integral. It is relevant when integrating around poles, as mentioned. You're working with a series, so this becomes a summation instead, and all values are finite. The derivatives may still prove troublesome; they become differences, and are sensitive to noise. Both the difference and summation operations have various approximation methods available, to give more accurate or stable results from sampled data. You may find these of interest: https://en.wikipedia.org/wiki/Numerical_differentiation https://en.wikipedia.org/wiki/Numerical_integration There may also be an iterative process, where you can compute \$ X_1(\omega) \$ roughly, use it to compute \$ X_2(\omega) \$, and so on until the error margin is acceptably low. \$ \omega^\prime \$ is the integration variable; note that \$ \omega \$ shows up in the expression as well. Computation will be similar to convolution, i.e., you need to find the sum for each \$ \omega \$, and the set of results is your output; naively, an \$ O(N^2) \$ operation, but there are probably optimizations available. But much more to the point -- why don't you use a complex FFT that produces X1 + iX2 directly? :o :o :o Tim |
| mark03:
Also, it's "principal value," not "principle value." |
| profdc9:
The Kramers-Kronig relations are the relations between the real and imaginary part of a function that is analytic in the upper half of the complex plane. These functions are called "complex analytic signals." The Fourier transform of a real-valued signal (that is, a signal representing a real quantity) has its negative frequencies being the complex conjugate of the positive ones, this is called Hermitian symmetry. Because of this redundancy between the positive and negative frequencies, for frequencies that are known to only have positive or negative frequencies, for example, a signal on top of a carrier frequency, we can represent it by only its positive frequencies, and zero out the negative frequencies. We can then define the "complex analytic signal" version of this real signal which is just a Fourier integral, but with the frequencies spanning from zero to +infinity rather than -infinity to +infinity. This suggests a simple way to find the imaginary part of a complex analytic function from the real-value function (and vice versa). If we have the real-valued function and we take its Fourier transform, this Fourier transform has Hermitian symmetry as mentioned above, that is, its negative frequency are the complex conjugate of the positive frequencies. If we now zero out those negative frequencies, we have now transformed this signal to a complex analytic signal. At the same time, the positive frequencies are multiplied by 2, and the zero frequency sample is left unchanged. When we take the inverse Fourier tranform, the function now has the same real part as the original real-valued function, but the imaginary part is now the Hilbert transform of the real part. So by using the Fourier transform / FFT, the complex analytic signal and therefore the Hilber transform is easily obtained. |
| Navigation |
| Message Index |
| Next page |