Ideal Filters ============= .. ipython:: python :suppress: from matplotlib.pylab import * w = logspace(1,5); Hlp = w<1000 subplot(2,2,1) semilogx(w, Hlp, linewidth=3) xlabel(r'\$\omega\$') ylim(-0.1, 1.1) title("Low Pass") #axis('off') Hlp = w>1000 subplot(2,2,2) semilogx(w, Hlp, linewidth=3) xlabel(r'\$\omega\$') ylim(-0.1, 1.1) title("High Pass") #axis('off') Hbp = logical_and(w>500, w<5000) subplot(2,2,3) semilogx(w, Hbp, linewidth=3) xlabel(r'\$\omega\$') ylim(-0.1, 1.1) title("Band Pass") #axis('off') Hbr = logical_or(w<500, w>5000) subplot(2,2,4) semilogx(w, Hbr, linewidth=3) xlabel(r'\$\omega\$') ylim(-0.1, 1.1) title("Band Reject") #axis('off') @savefig idealfilters.png show() .. image:: idealfilters.png The basic ideal filters specified with their frequency responde are sketched in the figure below: - **Ideal Low Pass Filter.** All frequencies below $w_c$ are left unchanged and all amplitudes of the frequencies larger then $w_c$ are set to zero: .. math:: H(j\omega) = \begin{cases} 1 &: \omega\leq\omega_c\\ 0 &: \text{elsewhere} \end{cases} - **Ideal High Pass Filter.** A high pass filter is the opposite of the low pass filter: .. math:: H(j\omega) = \begin{cases} 1 &: \omega>\omega_c\\ 0 &: \text{elsewhere} \end{cases} - **Ideal Band Pass Filter.** The band pass filter passes the frequencies between $\omega_L$ and $\omega_H$ and suppresses all other frequencies: .. math:: H(j\omega) = \begin{cases} 1 &: \omega_L\leq\omega\leq\omega_H\\ 0 &: \text{elsewhere} \end{cases} - **Ideal Band Reject Filter.** The band reject filter is the opposite of the band pass filter: .. math:: H(j\omega) = \begin{cases} 0 &: \omega_L\leq\omega\leq\omega_H\\ 1 &: \text{elsewhere} \end{cases} In practical applications often a band pass filter is designed to suppress one specific frequency. Such a very narrow band bass filter is often called a **notch filter**.