I use a Discrete Fourier Transform to have a representation in the frequency domain:

enter image description here

Notice that, both the real and the imaginary line are softly reaching zero on the left, from 0.5 Hz to 0 Hz. This is a right function.

Subsequently, I wish to multiply the above complex frequency function with another frequency function: DFT*TF, where TF is in the form

enter image description here

The result appears an undesired shift of the imaginary line (and of the module, as a consequence) instead of the previously observed reduction to zero of the above mentioned lines. This shift is a problem because of causing wrong results to the following signal processes.

  • How could we give a theoretical explanation what kind of problem it is and what have been so far explained about such cases?

We may say that it happens due to the boundary conditions of zero out of the sampling period (the interval I apply the DFT is from 0 to 2047 sampling points, I plot only the part from 0 to 3.5 Hz below) and drives to this shift (see on the left) which is an aliasing error.

enter image description here

  • Have you ever heard something about such a case?

A practical explanation I could give to this is that, we cannot avoid this phenomenon when multiplying two complex numbers (functions herein) where the imaginary part of (at least) one of them is reduced to zero and is low but not lower than the real part reduction to zero. For example, see below I attach indicative arithmetical values for which the first seven imaginary parts, being a little larger than the real ones, causes a great problem in the following methodology.

enter image description here

The correction I thought is to process the imaginary parts and reduce them to values at least equal to the real ones. Then all the following results works right ! Well, I 've tried this process and works but I cannot be sure myself before asking the experience of others.

  • What do you think? Could you please indicate me something from books or a useful link?
  • $\begingroup$ I can show you the graph DFT*TF but this system does not permit. Thank you. $\endgroup$ – Maria Jan 20 '16 at 19:17
  • $\begingroup$ When dealing with the DFT, one usually considers a band $[-\frac{f_\text{nyquist}}2;\frac{f_\text{nyquist}}2]$, yet your graph shows only positive frequencies. This can be alright under conventions, but I'd clearly state that. So, what is your sampling rate. You're using a 2048 bin DFT, right? Which (in bin numbers, not frequencies -- frequencies are abitrary axis annotations) excerpt are we looking at? How long is the thing you're multiplying with your function? You're using * for multiplication, but $*$ is usually used for convolution. Is that intentional? $\endgroup$ – Marcus Müller Jan 20 '16 at 19:19
  • $\begingroup$ The graphs show positive frequencies but I have already taken into account your consideration when applying the DFT series. Particularly, I have grouped the half of the frequencies (from 0 to 50 Hz) muplitplying with the positive power of Euler's number and the rest halves (from 50 to 100 Hz) with the negative power. Anyway, my result have been compared with mathematica and verified on the result of the DFT procedure. My problem becomes after this, when trying to multiply two complex functions as I describe above. $\endgroup$ – Maria Jan 20 '16 at 19:29
  • $\begingroup$ The bin frequencies are from 0 to N-1 (=2048-1). Both functions are of equal long. The symbol of " * " I used is here to describe my problem to you, it has nothing to do with the multiplication of complex numbers. I multiply the numbers correspond to the same frequencies. Thank you for your state. $\endgroup$ – Maria Jan 20 '16 at 19:38
  • $\begingroup$ Am I understanding your problem correctly: you're multiplying series A point-wise with series B, and wonder why the product has non-zero imaginary part? $\endgroup$ – Marcus Müller Jan 20 '16 at 19:48

Complex multiplication dictates that even a complex series with a disappearing imaginary when multiplied with a complex number: let

$$\begin{align} z_n &= a_n + i\cdot b_n,\quad a_n, b_n \in \mathbb{R}\\ &\text{then}\\ z_1 \cdot z_2 &= a_1\cdot a_2+a_1\cdot ib_2+ ib_1 \cdot ia_2 + ib_1\cdot ib_2\\ &=(a_1a_2-b_1b_2) + (a_1b_2+a_2b_1)i\\ &\text{let }b_1\equiv0\\ &=(a_1a_2-b_1b_2) + ({a_1b_2})i \end{align}$$

and hence, the imaginary part of $z_1$ multiplied with a complex number is not inherently zero, just because the imaginary part of $z_1$ is zero.

  • $\begingroup$ Thank you Mr Marcus. You are right. z1⋅z2 = (a1⋅a2 - b1⋅b2) + (a2⋅b1 + a1⋅b2)i the problem is that for some bins from 1 to 3 it sometimes happens b2 > a2. I give arithmetic example to help understanding the problem I meet: a1 = 1, b1 =0.015 (not zero), a2 = 0.0017, b2 = 0.024, give e.g. real = 0.0013, imaginary = 0.024. This imaginary appears a shift then ! $\endgroup$ – Maria Jan 20 '16 at 19:54
  • $\begingroup$ So what is your question then? $\endgroup$ – Marcus Müller Jan 20 '16 at 19:58
  • $\begingroup$ I see that if I keep this slight shift in the beginning of the axis, and go to apply Inverse-DFT to take the graph of displacement in time domain, then, the graph is not periodic around the horizontal axis (similarly to the input time signal) but shows a motion like having an initial velocity. It is interesting to show you some graphs but cannot handle this system... may I press the key "answer" below? $\endgroup$ – Maria Jan 20 '16 at 20:08
  • $\begingroup$ Velocity? I must admit that nearly none of the terms you used in your last comment make much sense to me. I think I might just be missing the overall idea. More illustrations would be good. If you upload them to imgur, and comment with the URL, I can add the images to your original question $\endgroup$ – Marcus Müller Jan 20 '16 at 21:28
  • $\begingroup$ Goodevening. Velocity and displacement are my particular products but see that my question is general on DFT processing. Before trying to see how to create a URL, let me express the question in another way. Calculating the product of two complex numbers within DFT, I find a few alias frequencies appearing in the first bin frequencies (e.g., from k >0 until k =11) responsible for not successfully reconstructing the time-signal within I-DFT. Thus, I wonder what experts know about this phenomenon and what correction should I put in my code. $\endgroup$ – Maria Jan 22 '16 at 21:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.