Following shows the discrete time Fourier transform of an ideal low pass filter with cutoff frequency $$\omega_c$$: $$H\left(e^{j\omega}\right) = \begin{cases} 1, & \text{if |\omega| \le \omega_c} \\ 0, & \text{otherwise} \end{cases}$$ Taking inverse discrete time Fourier transform would result in following infinite support impulse response: $$h[n] = \frac{\omega_c}{\pi} \operatorname{sinc}\left(\frac{\omega_c n}{\pi}\right)$$ If we want to filter out high frequency components of a finite support sequence $$x[n]$$ in time domain, we have to compute the convolution product of $$x[n]$$ and $$h[n]$$. Since $$h[n]$$ is of infinite length, it is not possible to implement it for example in a computer program and we must use a truncated version of it. But in frequency domain, we can simply multiply $$X(e^{j\omega})$$ (i.e. discrete time Fourier transform of $$x[n]$$) with $$H(e^{j\omega})$$ and then take inverse discrete time Fourier transform to evaluate filtered version of sequence $$x[n]$$. In brief, my question is why don't researchers and engineers employ frequency response of ideal low pass filters and instead, they have developed a vast body of literature on filter design?

In other words, $$h[n]$$ is ideal but its frequency response $$H(e^{j\omega})$$ is practical and realistic.

• Very much related: this question. Aug 5, 2020 at 19:21

This might work with pencil and paper, but not with real-world signals represented in a computer or processor. In order to multiply $$X(z)$$ and $$H(z)$$ the spectra need to be sampled in frequency as well. I.e you have to pick a sampling interval in frequency as well or you get time-domain aliasing. Multiplication of discrete spectra is circular convolution, not linear convolution.
In other words, $$h[n]$$ is ideal but its frequency response $$H(e^{jω})$$ is practical and realistic.
This is not true. To compute $$H(e^{j\omega})$$, you must evaluate the summation $$\sum_{n=-\infty}^{\infty}h[n]e^{-j\omega n}$$. A real system can't do this because $$h[n]$$ is not finite length.
Say you choose to use a rectangular window $$w[n]$$ (with length $$2M+1$$) to force $$h[n]$$ to a finite length and the summation becomes $$\sum_{n=-\infty}^{\infty} h[n]w[n]e^{-j\omega n} =\sum_{n=-M}^M h[n] e^{-j\omega n}$$. There is still the problem of $$\omega$$ being a continuous variable. For example, a computer can represent $$h[n]w[n]$$ in an array, but how is a computer supposed to store $$H(e^{j\omega})$$ in memory? It should have to store all function values between $$-\pi$$ and $$\pi$$ of which there are infinite.
• @Pirooz Yes what is? What filter are you talking about that implements $H(e^{j\omega})$? Aug 6, 2020 at 12:22