I was confused about the value of group delay, I am not sure whether my opinion is correct. For example, if I want to add a group delay of $0.25$ time units to a zero-phase signal, does it mean that I just need to multiply the signal by $0.25\omega$ in frequency domain?

This is a part of my lab of DSP. In this lab, I was asked to design a LPF by least squares method. In the first question, $h_d(\omega)=1$, and it is asked to have a $0.25$ time units group delay in the next question. I tried it but I found nothing different happened, so confused.


You got the shift a bit wrong – a shift in time domain (which you want) is a multiplication with a sinusoid in frequency domain.

This is simply a consequence of the convolution theorem: you want to convolve with a dirac $\delta(t-\Delta t)$ in time, so you need to multiply with the dirac's Fourier Transform in frequency domain.

Thus, what you'd need is

DFT -> $\cdot e^{j2\pi \tilde{\Delta t} f}$ -> IDFT.

Yet, you incur other problems here:

  • To do a DFT of your whole data, you'd need to first put your whole signal in a buffer. In reality, that means you can't do that to work with live signals.
  • The DFT will lead to a cyclic temporal shift. I.e. the (fractional) samples that you "shift out" at the end will appear at the start of your output! That means you can't simply divide your signal into smaller DFT chunks and shift each one of them separately.

If you need to avoid that: Use the fast convolution; overlap-add and overlap-save are the two algorithms you should be looking at. It's what I did in a lot of places, when I needed multiple variable delays.

Generally, any (time-)symmetric linear filter has constant group delay – you don't even have to go through frequency domain if you don't like to.


This seems all rather strange. The group delay basically is the derivative of the frequency response's phase over frequency. But for a linear-phase delay it is indistinguishable from the phase delay (basically phase divided by frequency).

So why bother with group delay in the first place? And when you are doing linear phase, why bother with a Fourier transform? Why not just delay the signal?

But this is supposed to be a lowpass filter, so it is obviously not linear phase. So just at what frequency is there supposed to be a particular group delay?

In other words: it seems like the information you provide about the task is just a bit too incomplete to create a valid answer from it.


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.