• I have the frequency response of a system as a set of complex numbers.
  • I want the impulse response for that system.

Problem: The phase of my frequency response wraps around 2pi multiple times. When I do a IDFT of the frequency response to get an impulse response, how can I be sure the group delays match ones of the original system?


My naive approach would be to use the sampled frequency response and feed that into an IDFT/IFFT to obtain an impulse response. But the phase information in the complex numbers is quantized to 0..2pi. For example, let system A have an arbitrary frequency response. System B has the same response, but with an additional phase shift of 360° for all frequencies above a certain threshold f0. In the space of their frequency responses in the form of complex numbers, both systems would look identical. If I did the IDFT of system Bs frequency response, I would get an impulse response that doesn't reflect that 360° phase shift because it wasn't reflected in the complex data. Is this correct?

Staying with my actual problem:

For the system in question, I can clearly see from my phase response, that the phase wraps around 2 Pi multiple times. I can reconstruct the actual phase response by unwrapping it with Matlabs unwrap() command as the phase response is relatively smooth. But as soon as I feed this into an IDFT/IFFT I have to quantize the phase into the angle of a complex number again and the information gained from unwrap() is lost again.

For my application, the actual group delays are very important. So I'm looking for a way to reconstruct the correct impulse response, taking into account that the phase information for a certain frequency may actually have an additional N full rotations that are not reflected in the complex numbers.

Or am I simply imagining the problem and systems like system B are actually impossible?


closed as unclear what you're asking by Matt L., lennon310, Tendero, jojek Sep 3 '18 at 15:26

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


No problem at all. Inverse Fourier Transform is totally blind to phase wrapping. You can add any multiple integers of two pi to any phase and you will still get the exact same impulse response

  • $\begingroup$ Thanks for your answer. Exactly that is my problem. I want to obtain the real impulse response of the system, not the impulse response of the system with the wrapped phase response. As I wrote, I can reconstruct the actual phase response of my system by unwrapping the quantized phase response, but then there's no way for me to transform this into the real impulse response without loosing the phase information again. $\endgroup$ – TheSlowGrowth Aug 23 '18 at 14:07
  • $\begingroup$ @TheSlowGrowth I don't think I understand what you mean. Hilmar is right, the impulse response is the same. So when you say "I want to obtain the real impulse response of the system, not the impulse response of the system with the wrapped phase response", that doesn't really make sense to me, as 'both' impulse responses you describe are exactly the same. $\endgroup$ – Tendero Aug 23 '18 at 14:46
  • $\begingroup$ 1/2: It may very well be that my understanding is wrong. Consider system A with the FIR coefficients h = 1; - its a simple passthrough with all magnitudes = 1 and all phases = 0. Now consider system B that has the same response, except that all frequencies above 100Hz are delayed by exactly 100 periods, that is they have a phase offset of 36 000°. I would imagine the impulse response of system B to look like a 100Hz brickwall-lowpass filtered impulse (for all components below 100Hz) and then a bunch of ripples after that for all the delayed components above 100Hz. $\endgroup$ – TheSlowGrowth Aug 23 '18 at 15:22
  • 1
    $\begingroup$ @TheSlowGrowth: here is the problem with your hypothetical system. What's the response at 99.999Hz ? If your delay is 0 at 0Hz and 100ms at 100Hz there has to be some sort of continuous transition in between. That transition contains all information needed to construct the correct impulse response. $\endgroup$ – Hilmar Aug 23 '18 at 18:41
  • 1
    $\begingroup$ @TheSlowGrowth: in this case you are violating the sampling theorem and you get time-domain aliasing. Sampling theorem applies to both the time and frequency domain (since the DFT is more or less symmetrical). If you want to dig deeper into this, please ask another question. $\endgroup$ – Hilmar Aug 24 '18 at 12:00

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