INTRODUCTION TO DIGITAL FILTERS
WITH AUDIO APPLICATIONS
JULIUS O. SMITH III
Center for Computer Research in Music
and Acoustics (CCRMA)
Department of Music,
Stanford University, Stanford, California 94305 USA
- Preface
- The Simplest Lowpass Filter
- Introduction
- The Simplest Lowpass Filter
- Finding the Frequency Response
- An Easier Way
- 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
- Software Implementation in C++
- Software Implementation in Faust
- Impulse Response
- Transfer Function
- Frequency Response
- Amplitude Response
- Phase Response
- Pole-Zero Analysis
- Alternative Realizations
- Summary
- Linear Time-Invariant Filters
- Definition of a Signal
- Definition of a Filter
- Examples of Digital Filters
- Linear Filters
- Time-Invariant Filters
- Showing Linearity and Time Invariance
- Dynamic Range Compression
- 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
- FIR Digital Filters
- Transient and Steady State Response
- Summary and Conclusions
- Time Domain Representation Problems
- Transfer Function Analysis
- The Z Transform
- Existence of the Z Transform
- Shift and Convolution Theorems
- Z Transform of Convolution
- Z Transform of Difference Equations
- Factored Form
- Series and Parallel Transfer Functions
- Partial Fraction Expansion
- Problems
- Frequency Response Analysis
- Frequency Response
- Amplitude Response
- Phase Response
- Polar Form of the Frequency Response
- Frequency Response as a Ratio of DTFTs
- Phase and Group Delay
- Frequency Response Analysis Problems
- Pole-Zero Analysis
- Filter Order = Transfer Function Order
- Graphical Amplitude Response
- Graphical Phase Response
- Stability Revisited
- Bandwidth of One Pole
- Time Constant of One Pole
- Unstable Poles--Unit Circle Viewpoint
- Poles and Zeros of the Cepstrum
- Conversion to Minimum Phase
- Hilbert Transform Relations
- Pole-Zero Analysis Problems
- Implementation Structures
- Filters Preserving Phase
- Linear-Phase Filters
- Zero-Phase Filters
- Odd Impulse Reponses
- Symmetric Linear-Phase Filters
- 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
- Minimum Phase Means Fastest Decay
- Minimum-Phase/Allpass Decomposition
- Linear Phase Audio Filters
- Creating Minimum Phase
- Conclusion
- Background Fundamentals
- Signal Representation and Notation
- Complex and Trigonometric Identities
- Sinusoids as Eigenfunctions of LTI Systems
- Elementary Audio Digital Filters
- Elementary Filter Sections
- Allpass Filter Sections
- DC Blocker
- Low and High Shelving Filters
- Peaking Equalizers
- Time-Varying Two-Pole Filters
- Elementary Filter Problems
- Allpass Filters
- Laplace Transform Analysis
- Existence of the Laplace Transform
- Analytic Continuation
- Relation to the z Transform
- Laplace Transform Theorems
- Laplace Analysis of Linear Systems
- Analog Filters
- Example Analog Filter
- Capacitors
- Inductors
- RC Filter Analysis
- RLC Filter Analysis
- Relating Pole Radius to Bandwidth
- Quality Factor (Q)
- Analog Allpass Filters
- Matrix Filter Representations
- Introduction
- General Causal Linear Filter Matrix
- General LTI Filter Matrix
- Cyclic Convolution Matrix
- Inverse Filters
- State Space Realization
- Time Domain Filter Estimation
- State Space Filters
- Markov Parameters
- Response from Initial Conditions
- Complete Response
- Transfer Function of a State Space Filter
- 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
- Repeated Poles
- Digital Waveguide Oscillator Example
- References
- State Space Problems
- Linear Time-Varying Filters
- Recursive Digital Filter Design
- Lowpass Filter Design
- Butterworth Lowpass Design
- Bilinear A/D Transformation
- Equation-Error Filter Design
- 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
- Partial Fraction Expansion: residued.m
- Parallel SOS to Transfer Function: psos2tf.m
- Group Delay Computation: grpdelay.m
- Matlab listing: fold.m
- Matlab listing: clipdb.m
- Matlab listing: mps.m and test program
- Signal Plots: swanalplot.m
- Frequency Response Plot: swanalmainplot.m
- 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 a LADSPA Plugin via Faust
- Generating a VST Plugin via Faust
- Generating a MIDI Synthesizer for PD
- MIDI Synthesizer Test Patch
- Links to Online Resources
- Bibliography
- Index for this Document
- About this document ...