Signal Processing Design of Integrated Analog and Digital
FiltersProf. Paul Hasler
Types of Integrated Filters
Integrated Filters
Digital Filters(Binary valued)
Analog Filters(Continuous or multivalued)
AnalogContinuous-Time
Filters
AnalogSampled-Data
Filters
Where to divide Analog and Digital?
A/DConverter
Realworld(analog)
DSPProcessor
Computer(digital)
Realworld(analog)
DSPProcessor
Computer(digital)ASP
ICA/D
Specialized A/D
Analog-Digital ComparisonLow SNR: Analog / High SNR: Digital
[Sarpeskar 1997]
Analog-Digital Comparison
16bitA/D F
FT
DSP
10 bit A/D10
10 bit A/D10
10 bit A/D10
10 bit A/D10
filter
filter
filter
filter
Input
Input
DSPApplication
Program
DSPApplication
Program
DSP
SNR < 10bits
• What if exponentially spaced FFT?
Practical Interpretation of CostLow SNR: Analog / High SNR: Digital
[Sarpeskar 1997]
Circuit Issues for FiltersProgrammability / Tunability: flexibility and complexity
Available for digital (clocks/ crystals) as well as some analog (e.g. Floating-Gate) filters
Circuit Issues for Filters
High Signal-to-Noise Ratio (resolution):Ratio of the largest signal and the smallest signal
Largest signal: Harmonic Distortion (continuous-time filters), Range limitationsSmallest Signal: Noise
Programmability / Tunability: flexibility and complexityAvailable for digital (clocks/ crystals) as well as
some analog (e.g. Floating-Gate) filters
Circuit Issues for Filters
High Signal-to-Noise Ratio (resolution):Ratio of the largest signal and the smallest signal
Largest signal: Harmonic Distortion (continuous-time filters), Range limitationsSmallest Signal: Noise
Insensitivity to environmental fluctuations: Power-supply:Power Supply Rejection Ratio (PSRR)Temperature, etc.
Programmability / Tunability: flexibility and complexityAvailable for digital (clocks/ crystals) as well as
some analog (e.g. Floating-Gate) filters
Not a problem for digital filters, but can be the cause of severalproblems to other analog circuits
Circuit Issues for Filters
High Signal-to-Noise Ratio (resolution):Ratio of the largest signal and the smallest signal
Largest signal: Harmonic Distortion (continuous-time filters), Range limitationsSmallest Signal: Noise
Insensitivity to environmental fluctuations: Power-supply:Power Supply Rejection Ratio (PSRR)Temperature, etc.
Programmability / Tunability: flexibility and complexityAvailable for digital (clocks/ crystals) as well as
some analog (e.g. Floating-Gate) filters
Not a problem for digital filters, but can be the cause of severalproblems to other analog circuits
Typically, sampling in amplitude / time results in, • the more complexity is needed ( S/H blocks, anti-aliasing filters), • more power / lower-frequency / area
Design of Analog Filters
• Find the transfer function for a given filter
• “Partition” the transfer function, or an approximation, into simple parts that can be implemented.
• Implement the transfer function in a particular circuit technology
Design of Analog Filters
• Find the transfer function for a given filter
• “Partition” the transfer function, or an approximation, into simple parts that can be implemented.
• Implement the transfer function in a particular circuit technology
H(s) or H(z)
H1(s) H2(s) H3(s)
GND
V1[n]Vout[n]
GND
GND
Design of Analog Filters
H(s) or H(z)
H1(s) H2(s) H3(s)
GND
V1[n]Vout[n]
GND
GND
As basic building blocks we have • integrators, delay elements• first-order (low-pass / bandpass)• second order functions
(low-pass / bandpass / highpass)
The “circuit” design question is how to make these functionswhat inputs / outputs / internal variables
should be voltages / currents, etc.
Design of Analog Filters
H(s) or H(z)
H1(s) H2(s) H3(s)
GND
V1[n]Vout[n]
GND
GND
Design style constrainspartition
Design styleconstrainschoice of transfer function
Choosing H(s) or H(z) for a filter
Ideal lowpass filter• we can get other filters from lowpass
|H(s)|
frequency
Gain in db = 20 log10( amplitude )= 10 log10(signal power)
fpb
Passband
H(s) or H(z) for a lowpass filterLowpasslog |H(s)|
log(frequency)fpb fsb
Tpb
Tsb
1
Passband
Tra
nsiti
on R
egio
n
Stopband
H(s) or H(z) for a lowpass filterLowpasslog |H(s)|
log(frequency)fpb fsb
Tpb
Tsb
1Normalized gain
StopBand FrequencyPassBand Frequency
StopBandMinimum
Gain
PassBandMinimum
Gain
Passband
Tra
nsiti
on R
egio
n
Stopband
H(s) or H(z) for a Highpass filterHighpasslog |H(s)|
log(frequency)fpbfsb
Tpb
Tsb
1Normalized gain
StopBand Frequency PassBand Frequency
StopBandMinimum
Gain
PassBandMinimum
Gain
Stopband
Tra
nsiti
on R
egio
n
Passband
H(s) or H(z) for a Highpass filterBandpasslog |H(s)|
log(frequency)fpb1fsb1
Tpb
Tsb
1Normalized gain
Low StopBandFrequency
Low PassBandFrequency
StopBandMinimum
Gain
PassBandMinimum
Gain
fsb1
High StopBandFrequency
fpb2
High PassBandFrequency
PassbandT
rans
ition
Reg
ion
Tra
nsiti
on R
egio
n
Four Canonical Cont-Time Filters
Butterworth: Maximally flat in passband…moderate rolloff
Chebyshev : Faster rolloff by allowing ripples in passband or stopband
Elliptic: Fastest rollff by appowing ripples in both passband and stopband
Bessel: Near linear phase, slow rolloff
Classic Analog Filters (IIR digital filters):
Four Canonical Cont-Time Filters
Butterworth: Maximally flat in passband…moderate rolloff
Chebyshev : Faster rolloff by allowing ripples in passband or stopband
Elliptic: Fastest rollff by appowing ripples in both passband and stopband
Bessel: Near linear phase, slow rolloff
Other FIR (digital) filters….Other filter design (H(s) or H(z)) techniques: Optimization approaches
Should we choose H(s) or H(z) for our representation?Partially due to particular circuit tradeoffs
(tunability? tools? continuous tunability? Accuracy? power consumption?)
Classic Analog Filters (IIR digital filters):
What happens if we just cascade first order stages?
T(s) = 1
(1 + j sτ)N
What happens if we just cascade first order stages?
T(s) = 1
(1 + j sτ)N
102 103 10410-3
10-2
10-1
100
Frequency (Hz)
Filte
r gai
n
N=1N=9
N=33
17
25
Corner shifts with N
Rolloff is not initiallysharp…..
Butterworth Filter Design
Tpb = √
1
1 + ε2
Definition of ε:Transfer Function: (low-pass)
T(s) = 11 + (-1)N+1 ε sNτN
Tpb = 1/ √2 for ε = 1
(fsb τ = 2π )
√1
1 + ε2 ω2Nτ2N|T(jω)| =
Butterworth Filter Design
Tpb = √
1
1 + ε2
Definition of ε:Transfer Function: (low-pass)
T(s) = 11 + j(-1)N+1 ε2 sNτN
Tpb = 1/ √2 for ε = 1
Need to solve to meet the specification of Tsb at fsb : Filter Order (N)
(fpb τ = 2π )
Tsb2 ( 1 + ε2(fsb / fpb )2N ) = 1
√1
1 + ε2 ω2Nτ2N|T(jω)| =
To meet specifications, one choosesthe next largest integer
Butterworth Filter Design
Tpb = √
1
1 + ε2
Definition of ε:Transfer Function: (low-pass)
T(s) = 11 + j(-1)N+1 ε2 sNτN
Tpb = 1/ √2 for ε = 1
Need to solve to meet the specification of Tsb at fsb : Filter Order (N)
(fsb τ = 2π )
Tsb2 ( 1 + ε2(fsb / fpb )2N ) = 1
√1
1 + ε2 ω2Nτ2N|T(jω)| =
To meet specifications, one choosesthe next largest integer
Pole locations: (ε = 1)
1/τk = (1/τ)(sin( (2k-1)π/(2N) ) + j cos( (2k-1)π/(2N) ) ), k=1…N
T(jω) = 1
(1 + s τ1 ) (1 + s τ2 ) … (1 + s τN )
Butterworth Filter Design
102 103 10410-1
100
101
Frequency (Hz)
Sub
-Filt
er g
ain
τ = 1.5915e-005
Q = 3.83, 1.31, 0.821, 0.630, 0.541, 0.504
Specs: ε = 1, fpb =1e4, fsb =1.5e4, Tsb = 1e-2
102 103 10410-6
10-5
10-4
10-3
10-2
10-1
100
Frequency (Hz)
Filte
r gai
n
N = 12
Chebyshev Filter Design
Tpb = √
1
1 + ε2
Definition of ε:
Tpb = 1/ √2 for ε = 1
(fpb τ = 2π )
Transfer Function(low-pass)
√1
1 + ε2 cos2( N cos-1( ωτ ) )|T(jω)| = ωτ >1
√ 1 + ε2 cosh2( N cosh-1( ωτ ) )= ωτ <1
Chebyshev Filter Design
Tpb = √
1
1 + ε2
Definition of ε:
Tpb = 1/ √2 for ε = 1
(fsb τ = 2π )
Transfer Function(low-pass)
Need to solve to meet the specification of Tsb at fsb : Filter Order (N)
√1
1 + ε2 cos2( N cos-1( ωτ ) )|T(jω)| = ωτ >1
√ 1 + ε2 cosh2( N cosh-1( ωτ ) )= ωτ <1
( 1 + ε2 cosh2( N cosh-1(fsb / fpb ) ) ) Tsb = 1
Chebyshev Filter Design
Tpb = √
1
1 + ε2
Definition of ε:
Tpb = 1/ √2 for ε = 1
(fsb τ = 2π )
Transfer Function(low-pass)
Need to solve to meet the specification of Tsb at fsb : Filter Order (N)
Pole locations:
Where k goes from 1, 2, ….N
√1
1 + ε2 cos2( N cos-1( ωτ ) )|T(jω)| = ωτ >1
√ 1 + ε2 cosh2( N cosh-1( ωτ ) )= ωτ <1
( 1 + ε2 cosh2( N cosh-1(fsb / fpb ) ) ) Tsb2 = 1
1/τk = (1/τ)(sin( (2k-1)π/(2N) ) sinh( (1/N) sinh-1(1/ ε) )
+ j cos( (2k-1)π/(2N) ) cosh( (1/N) sinh-1(1/ ε) ) )
Chebyshev Filter Design
102 103 10410-3
10-2
10-1
100
Frequency (Hz)
Filte
r gai
n
102 103 10410-2
10-1
100
101
Frequency (Hz)
Sub
-Filt
er g
ain
Specs: ε = 1, fpb =1e4, fsb =1.5e4, Tsb = 1e-2
N = 6
τ = 22.034µs, Q = 3.4645
τ = 16.288µs, Q = 12.804
τ = 53.433µs, Q = 1.0459
Fewer stages, higher Qs….
Transformations between s and z
z-1 = e-sTSimple Transformation
s ~
z-1 ~ 1 - sT
(1 - z-1 ) T
1
T = sampling period
Transformations between s and z
Bilinear transform
s ~ ~
z-1 ~
1 - z-1
1 + z-1
1 – s T 1 + s T
T
1
z-1 = e-sT
~ s
1 - e-sT
1 + e-sTT
1
1 - ( 1 – sT + 0.5*(sT)2 -…)
1 + 1 – sT + 0.5*(sT)2 -… T
1
Simple Transformation
s ~
z-1 ~ 1 - sT
(1 - z-1 ) T
1
T = sampling period
~
General Filter Topology
1st OrderΣ 1st OrderΣ 1st OrderΣ 1st OrderΣ… VoutVin
General Filter Topology
N*N parameters
N poles, N zeros for N-th order filter
Problem is underspecified…therefore can optimizefor SNR, complexity, etc…
Partitioning H(s) for Circuit Implementation
“Partition” the transfer function into simple parts
• Factorization into first order and second order terms• Nearest neighbor feedback (~LC ladder filter network)• Addition of factors
(maybe out of an approximation of an FIR filter)• Additional feedback / feedforward terms
Similar for either H(s) or H(z)
Typical Filter Topologies
2nd Order 2nd Order 2nd Order 2nd Order 1st OrderVin Vout
Cascade of First and Second-Order Sections
Typical Filter Topologies
2nd Order 2nd Order 2nd Order 2nd Order 1st Order
Vout
Vin
1stO
rder
1st OrderΣ 1st OrderΣ 1st OrderΣ 1st OrderΣ
Σ
Σ
1stO
rder
1stO
rder
Σ
Σ
1stO
rder
1stO
rder
Σ
Σ
1stO
rder
…
…
Vout
Vin
Nearest Neighbor Feedback (Inspired by LC ladder network filters)
VinVout
Cascade of First and Second-Order Sections
Conclusions
Basic directions for integrated circuit filters
• Continuous or Discrete: Time and/or Amplitude
• High level specifications of filters
• Obtaining a filter function (H(s) or H(z))
• Implementing the filter function into basic blocks(first and second-order filter sections, integrators, delays, etc.)