Filter Overview
Author
Mirko Kunze
Last Updated
10 years ago
License
Creative Commons CC BY 4.0
Abstract
continuous and discrete transfer functions for low pass, high pass, band pass and band stop filters
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage[left=3cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage{upquote}
\title{Filter Overview}
\author{Mirko Kunze}
\begin{document}
\pagestyle{empty}
\section*{Notes}
\begin{align*}
T &- \text{sampling time}\\
\omega_c &- \text{cutoff frequency}\\
\omega_r &- \text{resonance frequency}\\
\omega_l &- \text{lower band width limit}\\
\omega_h &- \text{higher band width limit}
\end{align*}
\hspace{3cm} Discrete forms use Euler derivative ($s\rightarrow\frac{1-z^{-1}}{T}$)
\section*{Low pass}
\begin{align*}
\omega_c &= \frac{1}{RC}\\
H_{LP}(s) &= \frac{1}{RCs+1}
= \frac{1}{\frac{1}{\omega_c}s+1}\\
H_{LP}(z) &= \frac{\frac{T}{RC}}{[\frac{T}{RC} +1] - z^{-1}}
= \frac{\omega_cT}{[\omega_cT +1] - z^{-1}}
\end{align*}
\section*{High pass}
\begin{align*}
H_{HP}(s) &= 1-H_{LP}(s)\\
H_{HP}(s) &= \frac{RCs}{RCs+1}
= \frac{\frac{1}{\omega_c}s}{\frac{1}{\omega_c}s+1}\\
H_{HP}(z) &= \frac{1-z^{-1}}{[\frac{T}{RC} + 1] - z^{-1}}
= \frac{1-z^{-1}}{[\omega_cT + 1] - z^{-1}}
\end{align*}
\section*{Band pass}
\begin{align*}
\omega_r &= \frac{1}{\sqrt{LC}}
= \sqrt{\omega_l \omega_h}\\
B &= \frac{R^2C}{L}
= \frac{\omega_h}{\omega_l}\\
H_{BP}(s) &= \frac{RCs}{LCs^2 + RCs + 1}
= \frac{\frac{\sqrt{B}}{\omega_r}s}{\frac{1}{\omega_r^2}s^2 + \frac{\sqrt{B}}{\omega_r}s + 1}\\
H_{BP}(z) &= \frac{1-z^{-1}}{[\frac{L}{RT}+\frac{T}{RC}+1] - [\frac{2L}{RT}+1]z^{-1} + \frac{L}{RT}z^{-2}}\\
&= \frac{1-z^{-1}}{[\frac{1}{\omega_rT\sqrt{B}}+\frac{T}{\omega_r\sqrt{B}}+1] - [\frac{2}{\omega_rT\sqrt{B}}+1]z^{-1} + \frac{1}{\omega_rT\sqrt{B}}z^{-2}}
\end{align*}
\section*{Band stop\,/\,Notch}
\begin{align*}
H_{BS}(s) &= 1-H_{BP}(s)\\
H_{BS}(s) &= \frac{LCs^2 + 1}{LCs^2 + RCs + 1}
= \frac{\frac{1}{\omega_r^2}s^2 + 1}{\frac{1}{\omega_r^2}s^2 + \frac{\sqrt{B}}{\omega_r}s + 1}\\
H_{BS}(z) &= \frac{[\frac{T^2}{LC}+1] -2z^{-1} + z^{-2}}{[\frac{T^2}{LC}+\frac{RT}{L}+1] - [\frac{RT}{L}+2] z^{-1} + z^{-2}}\\
&= \frac{[\omega_r^2T^2+1] -2z^{-1} + z^{-2}}{[\omega_r^2T^2+\omega_rT\sqrt{B}+1] - [\omega_rT\sqrt{B}+2] z^{-1} + z^{-2}}
\end{align*}
\newpage
\section*{MATLAB-Test}
\begingroup
\fontsize{9pt}{11pt}\selectfont
\begin{verbatim}
T = 0.001;
wc = 10;
wl = 1;
wh = 100;
disp('Low pass')
RC = 1/wc;
HLPs1 = tf(1, [RC, 1]) %#ok<*NOPTS>
HLPs2 = tf(1, [1/wc, 1]) %#ok<*NASGU>
HLPz1 = tf([T/RC, 0], [T/RC+1, -1], T)
HLPz2 = tf([wc*T, 0], [wc*T+1, -1], T)
disp('High pass')
HHPs1 = 1-HLPs1
HHPs2 = tf([RC, 0], [RC, 1])
HHPs3 = tf([RC, 0], [1/wc, 1])
HHPz1 = 1-HLPz1
HHPz2 = tf([1, -1], [T/RC+1, -1], T)
HHPz3 = tf([1, -1], [wc*T+1, -1], T)
disp('Band pass')
wr = sqrt(wl*wh);
B = wh/wl;
L = 0.123456;
C = 1/L/wr^2;
R = sqrt(B*L/C);
HBPs1 = tf([R*C, 0], [L*C, R*C, 1])
HBPs2 = tf([sqrt(B)/wr, 0], [1/wr^2, sqrt(B)/wr, 1])
HBPz1 = tf([1, -1, 0], [L/R/T+T/R/C+1, -(2*L/R/T+1), L/R/T], T)
HBPz2 = tf([1, -1, 0], ...
[1/wr/T/sqrt(B)+T/wr/sqrt(B)+1, -(2/wr/T/sqrt(B)+1), 1/wr/T/sqrt(B)], T)
disp('Band stop')
HBSs1 = 1-HBPs1
HBSs2 = tf([L*C, 0, 1], [L*C, R*C, 1])
HBSs3 = tf([1/wr^2, 0, 1], [1/wr^2, sqrt(B)/wr, 1])
HBSz1 = 1-HBPz1
HBSz2 = tf([T^2/L/C+1, -2, 1], [T^2/L/C+R*T/L+1, -(R*T/L+2), 1], T)
HBSz3 = tf([wr^2*T^2+1, -2, 1], ...
[wr^2*T^2+wr*T*sqrt(B)+1, -(wr*T*sqrt(B)+2), 1], T)
figure('name', 'Low Pass and High Pass')
hold('on')
bode(HHPs1)
bode(HLPs1)
bode(HLPz1)
bode(HHPz1)
figure('name', 'Band Pass and Band Stop')
hold('on')
bode(HBPs1)
bode(HBPz1)
bode(HBSs1)
bode(HBSz1)
chld = get(gcf, 'children');
set(chld(3), 'ylim', [-50, 0]);
\end{verbatim}
\endgroup
\end{document}