Search JOS Website
JOS Home Page
JOS Online Publications
Index of terms in JOS Website
Index: Introduction to Digital Filters with Audio Applications
Preface
Search JOS Website
JOS Home Page
JOS Online Publications
Index of terms in JOS Website
Index: Introduction to Digital Filters with Audio Applications
Preface
Next
|
Index
|
JOS Index
|
JOS Pubs
|
JOS Home
|
Search
I
NTRODUCTION TO
D
IGITAL
F
ILTERS
WITH
A
UDIO
A
PPLICATIONS
J
ULIUS
O. S
MITH
III
Center for Computer Research in Music and Acoustics (CCRMA)
Preface
Outline
Book Series Overview
Acknowledgments
Errata
The Simplest Lowpass Filter
Introduction
What is a Filter?
Why learn about filters?
The Simplest Lowpass Filter
Definition of the Simplest Low-Pass
Finding the Frequency Response
Sine-Wave Analysis
Mathematical Sine-Wave Analysis
Amplitude Response
Phase Response
An Easier Way
Complex Sinusoids
Complex Amplitude
Phasor Notation
Complex Sinusoids as Circular Motion
Rederiving the Frequency Response
Summary
Elementary Filter Theory Problems
Matlab Filter Analysis
Matlab Filter Implementation
Matlab Sine-Wave Analysis
Complex Sine-Wave Analysis
Practical Frequency-Response Analysis
Elementary Matlab Problems
Analysis of a Digital Comb Filter
Difference Equation
Signal Flow Graph
Software Implementation in Matlab
Sample-Level Implementation in Matlab
Software Implementation in C++
Software Implementation in Faust
Impulse Response
Transfer Function
Frequency Response
Amplitude Response
Phase Response
Pole-Zero Analysis
Alternative Realizations
First-Order Parallel Sections
Parallel, Real, Second-Order Sections
Parallel Second-Order Signal Flow Graph
Series, Real, Second-Order Sections
Summary
Linear Time-Invariant Filters
Definition of a Signal
Definition of a Filter
Examples of Digital Filters
Linear Filters
Scaling:
Superposition:
Real Linear Filtering of Complex Signals
Time-Invariant Filters
Showing Linearity and Time Invariance
Dynamic Range Compression
Why Dynamic Range Compression is Nonlinear
A Musical Time-Varying Filter Example
Analysis of Nonlinear Filters
Conclusions
Linearity and Time-Invariance Problems
Time Domain Representations
Difference Equation
Signal Flow Graph
Causal Recursive Filters
Filter Order
Direct-Form-I Implementation
Impulse-Response Representation
Filter Stability
Impulse Response Example
Implications of Linear-Time-Invariance
Convolution Representation
Convolution Representation Summary
FIR Digital Filters
FIR impulse response
Convolution Representation of FIR Filters
The ``Finite'' in FIR
Causal FIR Filters
FIR Transfer Function
FIR Order
FIR Software Implementations
Transient and Steady State Response
FIR Example
IIR Example
Transient and Steady-State Signals
Decay Response, Initial Conditions Response
Complete Response
Summary and Conclusions
Time Domain Representation Problems
Transfer Function Analysis
The
Z
Transform
Existence of the
Z
Transform
Shift and Convolution Theorems
Shift Theorem
Convolution Theorem
Z
Transform of Convolution
Z
Transform of Difference Equations
Factored Form
Series and Parallel Transfer Functions
Series Case
Parallel Case
Series Combination is Commutative
Partial Fraction Expansion
Example
Complex Example
PFE to Real, Second-Order Sections
Inverting the Z Transform
FIR Part of a PFE
Example: The General Biquad PFE
Alternate PFE Methods
Repeated Poles
Dealing with Repeated Poles Analytically
Example
Impulse Response of Repeated Poles
So What's Up with Repeated Poles?
Alternate Stability Criterion
Summary of the Partial Fraction Expansion
Software for Partial Fraction Expansion
Example 2
Polynomial Multiplication in Matlab
Polynomial Division in Matlab
Problems
Frequency Response Analysis
Frequency Response
Amplitude Response
Phase Response
Polar Form of the Frequency Response
Separating the Transfer Function Numerator and Denominator
Frequency Response as a Ratio of DTFTs
Frequency Response in Matlab
Example LPF Frequency Response Using
freqz
Phase and Group Delay
Phase Delay
Phase Unwrapping
Group Delay
Derivation of Group Delay as Modulation Delay
Group Delay Examples in Matlab
Vocoder Analysis
Numerical Computation of Group Delay
Frequency Response Analysis Problems
Pole-Zero Analysis
Filter Order = Transfer Function Order
Graphical Amplitude Response
Graphical Phase Response
Stability Revisited
Computing Reflection Coefficients
Step-Down Procedure
Testing Filter Stability in Matlab
Bandwidth of One Pole
Time Constant of One Pole
Unstable Poles--Unit Circle Viewpoint
Geometric Series
One-Pole Transfer Functions
Poles and Zeros of the Cepstrum
Conversion to Minimum Phase
Hilbert Transform Relations
Pole-Zero Analysis Problems
Implementation Structures
The Four Direct Forms
Direct-Form I
Two's Complement Wrap-Around
Direct Form II
More about Potential Internal Overflow of DF-II
Transposed Direct-Forms
Numerical Robustness of TDF-II
Series and Parallel Filter Sections
Series Second-Order Sections
Matlab Example
Parallel First and/or Second-Order Sections
First-Order Complex Resonators
Real Second-Order Sections
Implementation of Repeated Poles
Formant Filtering Example
Butterworth Lowpass Filter Example
Summary of Series/Parallel Filter Sections
Pole-Zero Analysis Problems
Filters Preserving Phase
Linear-Phase Filters
Zero-Phase Filters
-Phase Filters
Phase
in the Stopband
Example Zero-Phase Filter Design
Elementary Zero-Phase Filter Examples
Odd Impulse Reponses
Symmetric Linear-Phase Filters
Simple Linear-Phase Filter Examples
Software for Linear-Phase Filter Design
Antisymmetric Linear-Phase Filters
Forward-Backward Filtering
Phase Distortion at Passband Edges
Minimum-Phase Filters
Definition of Minimum Phase Filters
Minimum-Phase Polynomials
Maximum Phase Filters
Example
Minimum Phase Means Fastest Decay
Minimum-Phase/Allpass Decomposition
Linear Phase Audio Filters
Creating Minimum Phase
Conclusion
Background Fundamentals
Signal Representation and Notation
Units
Sinusoids
Spectrum
Complex and Trigonometric Identities
Complex Numbers
The Exponential Function
Trigonometric Identities
Trigonometric Identities, Continued
Half-Angle Tangent Identities
Sinusoids as Eigenfunctions of LTI Systems
Proof Using Trigonometry
Proof Using Complex Variables
Phasor Analysis
Elementary Audio Digital Filters
Elementary Filter Sections
One-Zero
One-Pole
Two-Pole
Resonator Bandwidth in Terms of Pole Radius
Two-Zero
Complex Resonator
Two-Pole Partial Fraction Expansion
The BiQuad Section
Biquad Software Implementations
Allpass Filter Sections
The Biquad Allpass Section
Allpass Filter Design
DC Blocker
DC Blocker Frequency Response
DC Blocker Software Implementations
Low and High Shelf Filters
Exercise
Peaking Equalizers
Time-Varying Two-Pole Filters
Normalizing Two-Pole Filter Gain at Resonance
Constant Resonance Gain
Peak Gain Versus Resonance Gain
Constant Peak-Gain Resonator
Four-Pole Tunable Lowpass/Bandpass Filters
Elementary Filter Problems
Allpass Filters
Allpass Examples
Paraunitary Filters
MIMO Allpass Filters
Paraunitary MIMO Filters
MIMO Paraconjugate
MIMO Paraunitary Condition
Properties of Paraunitary Systems
Properties of Paraunitary Filter Banks
Paraunitary Filter Examples
Allpass Problems
Laplace Transform Analysis
Existence of the Laplace Transform
Analytic Continuation
Relation to the
z
Transform
Laplace Transform Theorems
Linearity
Differentiation
Laplace Analysis of Linear Systems
Moving Mass
Mass-Spring Oscillator Analysis
Analog Filters
Example Analog Filter
Capacitors
Mechanical Equivalent of a Capacitor is a Spring
Inductors
Mechanical Equivalent of an Inductor is a Mass
RC Filter Analysis
Driving Point Impedance
Transfer Function
Impulse Response
The Continuous-Time Impulse
Poles and Zeros
RLC Filter Analysis
Driving Point Impedance
Transfer Function
Poles and Zeros
Impulse Response
Relating Pole Radius to Bandwidth
Quality Factor (Q)
Q of a Complex Resonator
Q of a Real Second-Order Resonator
Critical Damping and Related Terms
Damping Ratio
Decay Time is Q Periods
Q as Energy Stored over Energy Dissipated
Analog Allpass Filters
Lossless Analog Filters
Matrix Filter Representations
Introduction
General Causal Linear Filter Matrix
General LTI Filter Matrix
Cyclic Convolution Matrix
Inverse Filters
State Space Realization
State Space Filter Realization Example
Time Domain Filter Estimation
Effect of Measurement Noise
Matlab System Identification Example
State Space Filters
Markov Parameters
Response from Initial Conditions
Complete Response
Transfer Function of a State Space Filter
Example State Space Filter Transfer Function
Transposition of a State Space Filter
Poles of a State Space Filter
Difference Equations to State Space
Converting to State-Space Form by Hand
Signal Flow Graph to State Space Filter
Controllability and Observability
A Short-Cut to Controller Canonical Form
Matlab Direct-Form to State-Space Conversion
State Space Simulation in Matlab
Other Relevant Matlab Functions
Matlab State-Space Filter Conversion Example
Similarity Transformations
Modal Representation
Diagonalizing a State-Space Model
Finding the Eigenvalues of A in Practice
Example of State-Space Diagonalization
Properties of the Modal Representation
Repeated Poles
Jordan Canonical Form
Digital Waveguide Oscillator Example
Finding the Eigenstructure of A
Choice of Output Signal and Initial Conditions
References
State Space Problems
Linear Time-Varying Filters
Introduction
Derivation
Summary
Recursive Digital Filter Design
Lowpass Filter Design
Butterworth Lowpass Design
Butterworth Lowpass Poles and Zeros
Example: Second-Order Butterworth Lowpass
Bilinear A/D Transformation
Bilinear Transformation
Frequency Warping
Analog Prototype Filter
Examples
Equation-Error Filter Design
Equation Error Formulation
Error Weighting and Frequency Warping
Stability of Equation Error Designs
An FFT-Based Equation-Error Method
Prony's Method
The Padé-Prony Method
Matlab Utilities
Time Plots:
myplot.m
Frequency Plots:
freqplot.m
Saving Plots to Disk:
saveplot.m
Frequency Response Plots:
plotfr.m
Partial Fraction Expansion:
residuez.m
Method
Example with Repeated Poles
Partial Fraction Expansion:
residued.m
Method
Parallel SOS to Transfer Function:
psos2tf
Group Delay Computation:
grpdelay.m
Matlab listing:
fold.m
Matlab listing:
clipdb.m
Matlab listing:
mps.m
and test program
Matlab listing:
mps.m
Matlab listing:
tmps.m
Matlab diary:
tmps.d
Signal Plots:
swanalplot.m
Frequency Response Plot:
swanalmainplot
Digital Filtering in Faust and PD
A Simple Faust Program
Generating Faust Block Diagrams
Testing a Faust Filter Section
A Look at the Generated C++ code
Generating a Pure Data (PD) Plugin
Generating the PD Plugin
Generating a PD Plugin-Wrapper Abstraction
A PD Test Patch for the Plugin Wrapper
Generating a LADSPA Plugin via Faust
Generating a VST Plugin via Faust
Bypassing Windows
Generating a MIDI Synthesizer for PD
MIDI Synthesizer Test Patch
Links to Online Resources
Bibliography
Index for this Document
About this document ...
Next
|
Index
|
JOS Index
|
JOS Pubs
|
JOS Home
|
Search
[How to cite this work]
[Order a printed hardcopy]
[Comment on this page via email]
``
Introduction to Digital Filters with Audio Applications
'', by
Julius O. Smith III
, (September 2007 Edition)
Copyright ©
2024-09-03
by
Julius O. Smith III
Center for Computer Research in Music and Acoustics (CCRMA),
Stanford University