For a comb filter of delay K samples, we can calculate the magnitude and phase without using an FFT.
A delay of T seconds creates a null at a frequency of 1/2T. The peak is:
\[ \frac{n}{T} \] \[ \frac{2n+1}{T} \]For example, a delay of 10ms gives a null at 50Hz.
N = 1024;
n = 0:(N-1)
w = (2*pi) .* (n/(N-1));
alpha = 1;
H = 1 + alpha * exp(-i * w * K);
Code language: Matlab (matlab)
Hr = 1 + alpha * cos(w*K);
Hi = - alpha * sin(w*K);
Code language: Matlab (matlab)
magnitude = sqrt( (1 + alpha^2) + 2 * alpha * cos(w*K));
Code language: Matlab (matlab)
n = 0:(N-1);
m = (2*pi*K) / (N-1);
phase = -wrapToPi(m .* n) / 2;
Code language: Matlab (matlab)