A
high-pass filter (
HPF) is an electronic filter that passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. The amount of attenuation for each frequency depends on the filter design. A high-pass filter is usually modeled as a linear time-invariant system. It is sometimes called a
low-cut filter or
bass-cut filter. High-pass filters have many uses, such as blocking DC from circuitry sensitive to non-zero average voltages or radio frequency devices. They can also be used in conjunction with a low-pass filter to produce a bandpass filter.
First-order continuous-time implementation
Figure 1: A passive, analog, first-order high-pass filter, realized by an RC circuit
The simple first-order electronic high-pass filter shown in Figure 1 is implemented by placing an input voltage across the series combination of a capacitor and a resistor and using the voltage across the resistor as an output. The product of the resistance and capacitance (
R×
C) is the time constant (τ); it is inversely proportional to the cutoff frequency
fc, that is,
![f_c = \frac{1}{2 \pi \tau} = \frac{1}{2 \pi R C},\,](https://wikimedia.org/api/rest_v1/media/math/render/svg/1d757e194870e5f5fda07aae24fc8fdf6da17379)
where
fc is in hertz,
τ is in seconds,
R is in ohms, and
C is in farads.
Figure 2: An active high-pass filter
Figure 2 shows an active electronic implementation of a first-order high-pass filter using an operational amplifier. In this case, the filter has a passband gain of -
R2/
R1 and has a cutoff frequency of
![f_c = \frac{1}{2 \pi \tau} = \frac{1}{2 \pi R_1 C},\,](https://wikimedia.org/api/rest_v1/media/math/render/svg/64c715b12b491eefefac51877b55c06eba075006)
Because this filter is active, it may have non-unity passband gain. That is, high-frequency signals are inverted and amplified by
R2/
R1.
Discrete-time realization
For another method of conversion from continuous- to discrete-time, see Bilinear transform.
Discrete-time high-pass filters can also be designed. Discrete-time filter design is beyond the scope of this article; however, a simple example comes from the conversion of the continuous-time high-pass filter above to a discrete-time realization. That is, the continuous-time behavior can be discretized.
From the circuit in Figure 1 above, according to Kirchhoff's Laws and the definition of capacitance:
![\begin{cases}
V_{\text{out}}(t) = I(t)\, R &\text{(V)}\\
Q_c(t) = C \, \left( V_{\text{in}}(t) - V_{\text{out}}(t) \right) &\text{(Q)}\\
I(t) = \frac{\operatorname{d} Q_c}{\operatorname{d} t} &\text{(I)}
\end{cases}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fa6a6b570b36cf9c7a4712cb0ef62142ab62c600)
where
![Q_c(t)](https://wikimedia.org/api/rest_v1/media/math/render/svg/898c57e8fe87cec8beca4bafb7fc8508848bfbf5)
is the charge stored in the capacitor at time
![t](https://wikimedia.org/api/rest_v1/media/math/render/svg/65658b7b223af9e1acc877d848888ecdb4466560)
. Substituting Equation (Q) into Equation (I) and then Equation (I) into Equation (V) gives:
![V_{\text{out}}(t) = \overbrace{C \, \left( \frac{\operatorname{d} V_{\text{in}}}{\operatorname{d}t} - \frac{\operatorname{d} V_{\text{out}}}{\operatorname{d}t} \right)}^{I(t)} \, R = R C \, \left( \frac{ \operatorname{d} V_{\text{in}}}{\operatorname{d}t} - \frac{\operatorname{d} V_{\text{out}}}{\operatorname{d}t} \right)](https://wikimedia.org/api/rest_v1/media/math/render/svg/6837f2d783f4d4a5886313a95f1954656f6cbf2a)
This equation can be discretized. For simplicity, assume that samples of the input and output are taken at evenly spaced points in time separated by
![\Delta_T](https://wikimedia.org/api/rest_v1/media/math/render/svg/de2ab103b073a960d85c061aeadaa5cb6d66dbc9)
time. Let the samples of
![V_{\text{in}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ca8c55d74535d4f8571e2fedf2406fd49b4cf9f1)
be represented by the sequence
![(x_1, x_2, \ldots, x_n)](https://wikimedia.org/api/rest_v1/media/math/render/svg/47d8b3ec62633086002489cad8df4214e9585880)
, and let
![V_{\text{out}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d38a086098d55dae8e7bb4b26c8947fa0c4c1a52)
be represented by the sequence
![(y_1, y_2, \ldots, y_n)](https://wikimedia.org/api/rest_v1/media/math/render/svg/7587115c16ab7833833e608358b3e93147a42005)
which correspond to the same points in time. Making these substitutions:
![y_i = R C \, \left( \frac{x_i - x_{i-1}}{\Delta_T} - \frac{y_i - y_{i-1}}{\Delta_T} \right)](https://wikimedia.org/api/rest_v1/media/math/render/svg/a87ecc82ac9e48a23eeed27cee6b1776cc9b207a)
And rearranging terms gives the recurrence relation
![y_i = \overbrace{\frac{RC}{RC + \Delta_T} y_{i-1}}^{\text{Decaying contribution from prior inputs}} + \overbrace{\frac{RC}{RC + \Delta_T} \left( x_i - x_{i-1} \right)}^{\text{Contribution from change in input}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/818c89cc155a30d4033651900e27ae9b9e4b1391)
That is, this discrete-time implementation of a simple continuous-time RC high-pass filter is
![y_i = \alpha y_{i-1} + \alpha (x_{i} - x_{i-1}) \qquad \text{where} \qquad \alpha \triangleq \frac{RC}{RC + \Delta_T}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f89de7c3de905b4083dda2c1681463883b233683)
By definition,
![0 \leq \alpha \leq 1](https://wikimedia.org/api/rest_v1/media/math/render/svg/9184b6c2088ccc2e9ac06bfb0964e264c9f6ba53)
. The expression for parameter
![\alpha](https://wikimedia.org/api/rest_v1/media/math/render/svg/b79333175c8b3f0840bfb4ec41b8072c83ea88d3)
yields the equivalent time constant
![RC](https://wikimedia.org/api/rest_v1/media/math/render/svg/c4ebb581b3f1eae9208a756cbb16c87831bb78c7)
in terms of the sampling period
![\Delta_T](https://wikimedia.org/api/rest_v1/media/math/render/svg/de2ab103b073a960d85c061aeadaa5cb6d66dbc9)
and
![\alpha](https://wikimedia.org/api/rest_v1/media/math/render/svg/b79333175c8b3f0840bfb4ec41b8072c83ea88d3)
:
.
Recalling that
so ![RC={\frac {1}{2\pi f_{c}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1c840c25b8fde278a607ae9122968e30c1f12ed9)
then
![\alpha](https://wikimedia.org/api/rest_v1/media/math/render/svg/b79333175c8b3f0840bfb4ec41b8072c83ea88d3)
and
![f_{c}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d2b64a46c31800830b9fecc59b22812390e18c05)
are related by:
![\alpha ={\frac {1}{2\pi \Delta _{T}f_{c}+1}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/30399e514e48f1240d11f4a037278371db4428cb)
and
.
If
![\alpha =0.5](https://wikimedia.org/api/rest_v1/media/math/render/svg/d1152b74ec1d0be1ceabb8d63499e80ed2d2479f)
, then the
![RC](https://wikimedia.org/api/rest_v1/media/math/render/svg/c4ebb581b3f1eae9208a756cbb16c87831bb78c7)
time constant equal to the sampling period. If
![\alpha \ll 0.5](https://wikimedia.org/api/rest_v1/media/math/render/svg/ba127425ecbe65fdfaffa8877bde99dd56f52842)
, then
![RC](https://wikimedia.org/api/rest_v1/media/math/render/svg/c4ebb581b3f1eae9208a756cbb16c87831bb78c7)
is significantly smaller than the sampling interval, and
![RC \approx \alpha \Delta_T](https://wikimedia.org/api/rest_v1/media/math/render/svg/ff01fec56f8c7ebddf787ba9724de061042abf4c)
.
Algorithmic implementation
The filter recurrence relation provides a way to determine the output samples in terms of the input samples and the preceding output. The following pseudocode algorithm will simulate the effect of a high-pass filter on a series of digital samples:
No comments:
Post a Comment