Subtractive Synthesis. Describing a Filter. Filters. CMPT 468: Subtractive Synthesis

Similar documents
Digital Filters. Linearity and Time Invariance. Implications of Linear Time Invariance (LTI) Music 270a: Introduction to Digital Filters

Waveshaping Synthesis. Indexing. Waveshaper. CMPT 468: Waveshaping Synthesis

Continuous vs. Discrete signals. Sampling. Analog to Digital Conversion. CMPT 368: Lecture 4 Fundamentals of Digital Audio, Discrete-Time Signals

Filters. Phani Chavali

Brief Introduction to Signals & Systems. Phani Chavali

Multirate Digital Signal Processing

B.Tech III Year II Semester (R13) Regular & Supplementary Examinations May/June 2017 DIGITAL SIGNAL PROCESSING (Common to ECE and EIE)

CMPT 318: Lecture 4 Fundamentals of Digital Audio, Discrete-Time Signals

CMPT 368: Lecture 4 Amplitude Modulation (AM) Synthesis

FIR/Convolution. Visulalizing the convolution sum. Convolution

Linear Frequency Modulation (FM) Chirp Signal. Chirp Signal cont. CMPT 468: Lecture 7 Frequency Modulation (FM) Synthesis

CMPT 468: Frequency Modulation (FM) Synthesis

Digital Filters IIR (& Their Corresponding Analog Filters) Week Date Lecture Title

SMS045 - DSP Systems in Practice. Lab 1 - Filter Design and Evaluation in MATLAB Due date: Thursday Nov 13, 2003

Laboratory Assignment 4. Fourier Sound Synthesis

FIR/Convolution. Visulalizing the convolution sum. Frequency-Domain (Fast) Convolution

FX Basics. Filtering STOMPBOX DESIGN WORKSHOP. Esteban Maestre. CCRMA - Stanford University August 2013

Flanger. Fractional Delay using Linear Interpolation. Flange Comb Filter Parameters. Music 206: Delay and Digital Filters II

George Mason University ECE 201: Introduction to Signal Analysis Spring 2017

Design of FIR Filters

Project 2 - Speech Detection with FIR Filters

CMPT 468: Delay Effects

Final Exam Practice Questions for Music 421, with Solutions

Electrical & Computer Engineering Technology

GEORGIA INSTITUTE OF TECHNOLOGY SCHOOL of ELECTRICAL and COMPUTER ENGINEERING. ECE 2025 Fall 1999 Lab #7: Frequency Response & Bandpass Filters

DSP First. Laboratory Exercise #7. Everyday Sinusoidal Signals

The University of Texas at Austin Dept. of Electrical and Computer Engineering Midterm #1

The University of Texas at Austin Dept. of Electrical and Computer Engineering Final Exam

ELEC-C5230 Digitaalisen signaalinkäsittelyn perusteet

PROBLEM SET 6. Note: This version is preliminary in that it does not yet have instructions for uploading the MATLAB problems.

ECE503: Digital Filter Design Lecture 9

ECE438 - Laboratory 7a: Digital Filter Design (Week 1) By Prof. Charles Bouman and Prof. Mireille Boutin Fall 2015

ECE 203 LAB 2 PRACTICAL FILTER DESIGN & IMPLEMENTATION

Digital Processing of Continuous-Time Signals

Digital Processing of

Design IIR Filters Using Cascaded Biquads

Lecture 17 z-transforms 2

Biomedical Signals. Signals and Images in Medicine Dr Nabeel Anwar

ELEC3104: Digital Signal Processing Session 1, 2013

Concordia University. Discrete-Time Signal Processing. Lab Manual (ELEC442) Dr. Wei-Ping Zhu

DFT: Discrete Fourier Transform & Linear Signal Processing

(i) Understanding of the characteristics of linear-phase finite impulse response (FIR) filters

Filter Banks I. Prof. Dr. Gerald Schuller. Fraunhofer IDMT & Ilmenau University of Technology Ilmenau, Germany. Fraunhofer IDMT

Corso di DATI e SEGNALI BIOMEDICI 1. Carmelina Ruggiero Laboratorio MedInfo

Lab S-5: DLTI GUI and Nulling Filters. Please read through the information below prior to attending your lab.

(i) Understanding of the characteristics of linear-phase finite impulse response (FIR) filters

Digital Filters IIR (& Their Corresponding Analog Filters) 4 April 2017 ELEC 3004: Systems 1. Week Date Lecture Title

Project I: Phase Tracking and Baud Timing Correction Systems

Discrete-Time Signal Processing (DTSP) v14

GEORGIA INSTITUTE OF TECHNOLOGY. SCHOOL of ELECTRICAL and COMPUTER ENGINEERING. ECE 2026 Summer 2018 Lab #8: Filter Design of FIR Filters

EE 422G - Signals and Systems Laboratory

Lab 4 An FPGA Based Digital System Design ReadMeFirst

DSP Laboratory (EELE 4110) Lab#10 Finite Impulse Response (FIR) Filters

Team proposals are due tomorrow at 6PM Homework 4 is due next thur. Proposal presentations are next mon in 1311EECS.

ECE 201: Introduction to Signal Analysis

Digital Filters FIR and IIR Systems

Signal Processing for Speech Applications - Part 2-1. Signal Processing For Speech Applications - Part 2

Signal Processing. Introduction

Structure of Speech. Physical acoustics Time-domain representation Frequency domain representation Sound shaping

Lab 4 Fourier Series and the Gibbs Phenomenon

Lab 8: Frequency Response and Filtering

Acoustics, signals & systems for audiology. Week 4. Signals through Systems

ECE 5650/4650 Exam II November 20, 2018 Name:

y(n)= Aa n u(n)+bu(n) b m sin(2πmt)= b 1 sin(2πt)+b 2 sin(4πt)+b 3 sin(6πt)+ m=1 x(t)= x = 2 ( b b b b

Problem Set 1 (Solutions are due Mon )

Music 270a: Fundamentals of Digital Audio and Discrete-Time Signals

DIGITAL FILTERS. !! Finite Impulse Response (FIR) !! Infinite Impulse Response (IIR) !! Background. !! Matlab functions AGC DSP AGC DSP

Signal Processing. Naureen Ghani. December 9, 2017

Chapter-2 SAMPLING PROCESS

AUDIO SIEVING USING SIGNAL FILTERS

DSP First Lab 08: Frequency Response: Bandpass and Nulling Filters

On the Most Efficient M-Path Recursive Filter Structures and User Friendly Algorithms To Compute Their Coefficients

Copyright S. K. Mitra

Experiments #6. Convolution and Linear Time Invariant Systems

Final Exam. EE313 Signals and Systems. Fall 1999, Prof. Brian L. Evans, Unique No

NH 67, Karur Trichy Highways, Puliyur C.F, Karur District DEPARTMENT OF INFORMATION TECHNOLOGY DIGITAL SIGNAL PROCESSING UNIT 3

Lecture 3 Review of Signals and Systems: Part 2. EE4900/EE6720 Digital Communications

Digital Signal Processing Lecture 1 - Introduction

ESE531 Spring University of Pennsylvania Department of Electrical and System Engineering Digital Signal Processing

Problem Point Value Your score Topic 1 28 Discrete-Time Filter Analysis 2 24 Improving Signal Quality 3 24 Filter Bank Design 4 24 Potpourri Total 100

Michael F. Toner, et. al.. "Distortion Measurement." Copyright 2000 CRC Press LLC. <

Laboration Exercises in Digital Signal Processing

1. page xviii, line 23:... conventional. Part of the reason for this...

Module 9: Multirate Digital Signal Processing Prof. Eliathamby Ambikairajah Dr. Tharmarajah Thiruvaran School of Electrical Engineering &

Lab 4 Digital Scope and Spectrum Analyzer

Lecture 2 Review of Signals and Systems: Part 1. EE4900/EE6720 Digital Communications

Laboratory Assignment 5 Amplitude Modulation

Octave Functions for Filters. Young Won Lim 2/19/18

A102 Signals and Systems for Hearing and Speech: Final exam answers

2.1 BASIC CONCEPTS Basic Operations on Signals Time Shifting. Figure 2.2 Time shifting of a signal. Time Reversal.

1. In the command window, type "help conv" and press [enter]. Read the information displayed.

Infinite Impulse Response Filters

PROBLEM SET 5. Reminder: Quiz 1will be on March 6, during the regular class hour. Details to follow. z = e jω h[n] H(e jω ) H(z) DTFT.

ELT COMMUNICATION THEORY

AUDL Final exam page 1/7 Please answer all of the following questions.

Basic Signals and Systems

Digital Filtering: Realization

EEM478-WEEK8 Finite Impulse Response (FIR) Filters

George Mason University ECE 201: Introduction to Signal Analysis

EECE 301 Signals & Systems Prof. Mark Fowler

Transcription:

Subtractive Synthesis CMPT 468: Subtractive Synthesis Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University November, 23 Additive synthesis involves building the sound by summing desired frequency components. In subtractive synthesis, new signals/sounds are created by removing or subtracting spectral components from a source. Any sound can be used as a source for subtractive synthesis (such as the sounds we ve been synthesizing), but it is also very common to use a broadband source such as noise or a pulse. CMPT 468: Subtractive Synthesis 2 Filters Describing a Filter Any medium through which a signal passes may be regarded as a filter. Typically however, we view a filter as something which modifies the signal in some way. Examples include: stereo speakers our vocal tract our musical instruments A digital filter is one that operates on digital signals (such as the ones we ve been looking at). It is a formula for going from one digital signal to another. x(n) Figure : A black box filter. y(n) The characteristic of a filter is described by its frequency response which consists of:. The Response (or magnitude frequency response): Describes the gain of a filter at every frequency: a positive gain boosts the signal while a negative gain attenuates the signal. Determined by the ratio of the peak output amplitude to the peak input amplitude at a given frequency. 2. The Phase Response: Describes the delay of a filter at every frequency. Determined by subtracting the input phase from the output phase at a particular frequency. A frequency response describes how the amplitude and phase of a sound s spectral components is changed by the filter. CMPT 468: Subtractive Synthesis 3 CMPT 468: Subtractive Synthesis 4

Determining the Frequency Response Linear Time Invariant (LTI) Filters The Frequency Response may be determined using the following two approaches:. Sinewave Analysis: checking the behaviour of the filter at every possible frequency between and f s /2 Hz. 2. Obtaining the Impulse Response: use an input signal that contains all of those frequencies, and then we only have to do the checking operation once. An input signal with the broadest possible spectrum is a unit impulse, a signal which equals at time zero and elsewhere: {, n = δ(n) =, n The output of the filter in response to the impulse is called an impulse response. The spectrum of the impulse response gives the frequency response of the filter from DC to the Nyquist limit. CMPT 468: Subtractive Synthesis 5 Any LTI system may be completely characterized by its impulse response. That is, its output can be calculated in terms of the input and the impulse response. A filter is linear if. the amplitude of the output is proportional to the input amplitude (scaling property), H{gx ( )} = gh{x ( )} 2. the output due to a sum of input signals is equal to the sum of outputs due to each signal alone (superposition property). H{gx ( ))+gx 2 ( )} = gh{x ( )}+gh{x 2 ( )} Time-invariant means that the filter behaviour does not change over time (it is not time dependent). An LTI filter can only attenuate or boost the amplitude and/or modify the phase of the input spectral components. It does not introduce frequency components to the input signal. CMPT 468: Subtractive Synthesis 6 Four Simple Filter Types Specifying the Filter magnitude (db) magnitude (db) There are four (4) basic types of filters: 3 3. low-pass 2. high-pass, 3. band-pass 4. band-reject Low Pass Bandpass fc frequency magnitude (db) magnitude (db) 3 3 High Pass fc Band reject (notch) frequency A low-pass filter permits frequencies below a cutoff frequency f c to pass with little change while attenuating or rejecting frequencies above f c. Conversely, a high-pass filter permits frequencies above f c to pass while attenuating those frequencies which fall below. A filter which passes frequencies within a certain frequency band (the pass band) is called a band-pass filter. A filter which attenuates frequencies with a certain frequency band (the stop band) is called a band-reject (or notch) filter. fc BW frequency fc BW frequency Figure 2: Different filter types. CMPT 468: Subtractive Synthesis 7 CMPT 468: Subtractive Synthesis 8

An Ideal Lowpass Filter Characteristics of a Filter A lowpass filter is one that allows low frequencies to pass, while attenuating anything above a specified cutoff frequency f c. The amplitude response of an ideal low-pass filter is shown below. Gain Frequency fc fs/2 Figure 3: Response for an ideal low-pass filter. Such an ideal amplitude response is not realizable in digital signals. How close we come depends on the complexity of the filter. No digital filter is ideal and will always have a smooth (rather than a clearly defined) transition between the pass and stop bands at the cutoff frequency f c. The cutoff frequency is typically defined as the frequency at which the power transmitted by the filter drops to one-half (by -3 db) of the maximum power transmitted in the passband. A pass-band filter is characterized by its quality factor Q which is inversely proportional to its bandwidth: Q = f c BW, where f c is the center frequency of the band. A high quality factor (a high Q) denotes a filter with a narrow bandwidth and a low Q denotes a filter with a wide bandwidth. CMPT 468: Subtractive Synthesis 9 CMPT 468: Subtractive Synthesis A Simple Lowpass Filter Intuitive Analysis of LP Filter The simplest low-pass filter (and therefore furthest from ideal) is given by the difference equation y(n) = x(n)+x(n ). The corresponding system diagram is x(n) z + where z means delay by sample. y(n) Recall that if a signal can be expressed in the form x(t) = s(t t ), x(t) is a time-shifted version of s(t), where a positive t is a time delay (right shift on the time axis), a negative t is a time advance (left shift on the time axis). This filter is really just a running averager (2-point averager) with a factor of two. That is, it takes the average of two adjacent samples. The running average of an input signal with little or no variation from sample to sample is very close to the input signal. The running average of an input signal with significant variation from sample to sample will be quite different than the input signal. So why low-pass? Consider an input x (n) to this filter at the lowest possible frequency Hz (DC). This signal doesn t alternate and has a single amplitude value over time: yielding an output of x (n) = [A,A,A,...], y(n) = x (n)+x (n ) = 2A, for n >. The filter therefore applies a gain of 2 at the lowest possible frequency. CMPT 468: Subtractive Synthesis CMPT 468: Subtractive Synthesis 2

Why is this a Low-Pass Filter? What about at f s /4? Consider a second input x 2 (n) to this filter at the highest possible frequency, f s /2 (the Nyquist limit). Such a signal is say to be critically sampled and will swing ever more drastically from sample to sample, x 2 (n) = [A, A,A,...], for a cosine of amplitude A, yielding an output of y(n) = x 2 (n)+x 2 (n ) = A A =, for n >. This filter therefore, in addition to boosting low frequencies as shown in the previous slide, attenuates (stops) components at higher frequencies. A cosine with frequency f = f s /4 and amplitude A would have sample values yielding an output of x 2 (n) = [A,, A,,A,...], y(n) = x 2 (n)+x 2 (n ) = [A,, A,,A,...]+ [,A,, A,,A,...] = [A,A, A, A,A,A,...]. Though this may not appear to be sinusoidal, it is in fact a cosine with amplitude of 2.4, with a phase delay π/4..5.5.5.5 5 5 2 25 3 Figure 4: Filter response to unit amplitude (A = ) input sinusoid at f = fs/4. CMPT 468: Subtractive Synthesis 3 CMPT 468: Subtractive Synthesis 4 Simple Low-Pass Impuse Response Matlab Low-pass Filter Implementation Recall that we may find the frequency response of the filter by checking the behaviour of the filter at every possible frequency between and f s /2 Hz, or by obtaining its impulse response. If the input is a unit impulse: then the output is δ(n) = [,,,,...], h(n) = δ(n)+δ(n ) = [,,,,...]+ [,,,,,...] = [,,,,,...]. Notice how the impulse response is equal to the coefficients of the filter (we ll see this again later). Exercise: Take the DFT of impulse response h(n) to obtain frequency response H(ω). CMPT 468: Subtractive Synthesis 5 One possible implementation in Matlab (though we ll see a better one later) for the filter N = 24; y(n) = x(n)+x(n ),n =,2,3,...,N % signal length x = [ zeros(, N-)]; % impulse y = zeros(, N); % output buffer y() = x(); for n=2:n y(n) = x(n)+x(n-); % impulse response end % plot spectrum Y = fft(y); % frequency response Y = abs(y); % amplitude response fn = [:N/2]/N; % normalized frequency axis subplot(2); plot(fn, Y); grid; set(gca, XLim, [.5]); title( Response y(n) = x(n) + x(n-) ); xlabel( ); ylabel( ); subplot(22); plot(fn, 2*log(Y)); grid; xlabel( ); CMPT 468: Subtractive Synthesis 6

ylabel( Magnitude (db) ); Other simple non-recursive filters Magnitude (db) 2.5.5 Response y(n) = x(n) + x(n ).5..5.2.25.3.35.4.45.5 2 2 4 6.5..5.2.25.3.35.4.45.5 Figure 5: Frequency response for the filter y(n) = x(n) + x(n-). Test the filter y(n) = x(n) x(n ) with DC and the Nyquist limit. What conclusions do you draw? It can be similarly verified that the filter y(n) = x(n)+x(n 2) passes both DC and the Nyquist limit. An input signal at a frequency equal to a quarter of the sampling rate, x(n) = [A,, A,,A,, A,...], however produces no output. We may therefore assume this is a band-reject, or notch filter, with a notch at f s /4. The filter y(n) = x(n) x(n 2) rejects both DC and Nyquist limit frequencies yet boosts frequencies at f s /4. What kind of filter is it? CMPT 468: Subtractive Synthesis 7 CMPT 468: Subtractive Synthesis 8 Plots of simple filters Generalized FIR. Response for y(n) = x(n)+x(n ) 2.5.5..2.3.4 Response for y(n) = x(n)+x(n 2) 2.5.5..2.3.4 Response for y(n) = x(n) x(n ) 2.5.5..2.3.4 Response for y(n) = x(n) x(n 2) 2.5.5..2.3.4 Figure 6: Responses for simple filters CMPT 468: Subtractive Synthesis 9 It should be clear by now that several different nonrecursive filters can be made by changing the delay (and thus the order) of the filter, and the filter coefficients. The general equation for an FIR (Finite Impulse Response) filter is given by y(n) = M b k x(n k) k= where M is the order of the filter. It should also be evident that a filter can be defined simply on a set of coefficients. For example if b k = [,3,3,] we have a third order filter (M = 3) which expands into the difference equation y(n) = x(n)+3x(n )+3x(n 2)+x(n 3); When the input to the FIR filter is a unit impulse sequence, the output is the unit impulse response. CMPT 468: Subtractive Synthesis 2

A Better Matlab Implementation Matlab s filter function Previously, we implemented an FIR filter in Matlab using a for loop. This was done only to give insight into how to implement the filter. Loops are very slow in Matlab and therefore should be avoided if possible. Matlab has a function called filter which will do the filtering operation as implemented by the loop in the previous implementation. The Matlab implementation for the filter is most easily accomplished using the filter function y = filter(b, A, x). The filter function takes three (3) arguments:. feedforward coefficients B, 2. feedback coefficients A (set to for an FIR filter), 3. and the input signal x. If the filter doesn t have feedback coefficients, as is the case with an FIR filter, we must still set A =. An Nth order filter will have a delay of N. Our simple filter y(n) = x(n)+x(n ) is, therefore, a first order filter and has a length of two (2), where the values for each of the coefficients is set to B = [, ]. CMPT 468: Subtractive Synthesis 2 CMPT 468: Subtractive Synthesis 22 Sinewave Proof (to do in class) Increasing the Filter Order In class examples. Create the following filter in Matlab: B = [ ]; A = ; y = filter(b, A, x); Input a sinusoid at DC. Input a sinusoid with frequency f s /2. Input a frequency with frequency f s /4; Let s return now to the simple low-pass filter y(n) = x(n)+x(n ) which is just a two point running average (with a factor of 2). If we increase the number of samples averaged, i.e. increase the filter order, y(n) = x(n)+x(n )+x(n 2), the waveform will be smoothed (with a more gentle slope to zero), which corresponds to a lowered cutoff frequency. 2.8.6 Producing new filters with a cascade of simple low pass filters first order second order (scaled by /2) third order (scaled by /4) fourth order (scaled by /8).4.2.8.6.4.2.5..5.2.25.3.35.4.45.5 Figure 7: A Cascade of Simple Lowpass filters. CMPT 468: Subtractive Synthesis 23 CMPT 468: Subtractive Synthesis 24

Coefficients as Impulse Response Cascade Connection If we look at the contents of both the impulse x and the impulse response y we may see that the latter is merely the coefficients of our FIR (finite impulse response) filter. >> x(:) ans = >> y(:) ans = The order of the simple lowpass filter can be increased by placing several in a cascade (series connection). y(n) = x(n)+x(n ) y(n) = x(n)+x(n ) y(n) = x(n)+x(n ) y(n) = x(n)+x(n ) y(n) = x(n)+x(n ) x(n) = {,,,...} y(n) = {,,,...} y(n) = {, 2,,,,...} y(n) = {, 3, 3,,,,...} y(n) = {, 4, 6, 4,,,,...} y(n) = {, 5,,, 5,,,,...} Figure 8: A cascade of simple low-pass filters. CMPT 468: Subtractive Synthesis 25 CMPT 468: Subtractive Synthesis 26 Matlab LPF Cascade Implementation FIR Coefficients and Impulse response x = [ zeros(, N-)]; B = [ ]; A = []; % Cascade of filters y = filter(b, A, x); y2 = filter(b, A, y); y3 = filter(b, A, y2); y4 = filter(b, A, y3); y5 = filter(b, A, y4); % or equivalently % y = filter(b,a, filter(b,a, filter(b,a, filter(b,a, x)))); y = zeros(, N); B = [ 5 5 ]; A = []; y = filter(b, A, x); which is equivalent to... Let the input to the cascade be a unit impulse response. Each time we use the previous output y as the input to the same filter we have essentially created a new impulse response representing the characteristic of a new filter. Each time, the new output has a finite number of non-zero components (which is why this type of filter is called a finite impulse response FIR filter). Notice how each time we cascade another first order filter, the output impulse response increases by one more non-zero element. Each filter in the cascade is producing an output impulse response that is equivalent to the FIR coefficients of a new FIR filter. CMPT 468: Subtractive Synthesis 27 CMPT 468: Subtractive Synthesis 28

Transforming between low-pass and high-pass filters 35 3 Low pass and High pass filter transforms of each other 25 Given the coefficients of a low-pass filter this filter may be converted to a high-pass filter by multiplying every odd coefficient by - while leaving the even coefficients untouched (where coefficient indexing begins from zero). As an example, let s take the filter resulting from a cascade of 5 simple low-pass filters, with feedforward coefficients given by B =, 5,,, 5, and the feedback coefficient vector is A =. The Matlab implementation is given by N = 24; A = ; Blp = [ 5 5 ]; Bhp = [ -5-5 -]; x = [ zeros(, N-)]; ylp = filter(blp, A, x); yhp = filter(bhp, A, x); 2 5 5.5..5.2.25.3.35.4.45.5 Figure 9: Transforming a low-pass filter to a high-pass. CMPT 468: Subtractive Synthesis 29 CMPT 468: Subtractive Synthesis 3 FIR Approximation to the Ideal Lowpass The coefficients of an N th order non-recursive approximation to an ideal low-pass filter with a cutoff frequency of f c are given by b k = sin(2π(k 2 N)(f ( c/f s )) π(k 2 N).54+.46cos ( π(k 2 N) N )) Response for LP FIR filter (N=28 and f c = f s /4) Again, when implementing in Matlab, care must be taken for the possibility of a divide by. fs = 44; N = 28; Magnitude (db) 2 3 4 5 fc = fs/4; k = [:N-]; kern = pi*(k-n/2); kern(find(kern==)) = eps; b = sin(2.*kern.*(fc/fs))./... kern.*(.54+.46.*cos(kern./n)); 6.5..5.2.25.3.35.4.45.5 Normalized Frequency (cycles per sample) Figure : Approximate ideal low-pass FIR (non-recursive) filter with order N = 28 and a cut-off frequency of fs/4. CMPT 468: Subtractive Synthesis 3 CMPT 468: Subtractive Synthesis 32

Recursive Filters IIR plots Using FIR filters often requires significant computation and coefficients to reproduce a desired frequency response. It is often possible to reduce the number of feedforward coefficients needed to obtain a frequency response by introducing feedback coefficients. A simple example of a first order recursive low-pass filter is given by y(n) = b x(n)+a y(n ) The general difference equation for LTI filter therefore, is given by y(n) = b x(n) + b x(n )+ +b M x(n m) a y(n ) a N y(n N) Magnitude (db) Magnitude (db) 2 2 4 FIR Lowpass Filter 6..2.3.4.5.6.7.8.9 6 4 2 Normalized Frequency (π rad/sample) IIR Lowpass Filter 2..2.3.4.5.6.7.8.9 Normalized Frequency (π rad/sample) Figure : A simple non-recursive low-pass y(n) = x(n) + x(n-) (top) and a recursive low-pass y(n) = x(n) + y(n-) (bottom). CMPT 468: Subtractive Synthesis 33 CMPT 468: Subtractive Synthesis 34 IIR Lowpass To obtain a lowpass filter with a cut-off frequency of f c and an amplitude response of one () at DC, define an intermediate variable: The coefficients are then C = 2 cos(2π(f c /f s )). a = C 2 C b = +a fs = 44; fc = ; C = 2-cos(2*pi*fc/fs); A(2) = sqrt(c^2 - )-C; A() = ; B = +A(2); [H, w] = freqz(b, A); H = 2*log(abs(H)); plot(w/(2*pi)*fs/, H, fc/, -3, o ); title( Recursive Low-pass with f_c = khz ); xlabel( Frequency (k Hz) ); ylabel( Magnitude (db) ); Magnitude (db) 5 5 2 Recursive Low pass with f c = khz 25 5 5 2 25 Frequency (k Hz) Figure 2: Recursive low-pass. CMPT 468: Subtractive Synthesis 35 CMPT 468: Subtractive Synthesis 36

IIR High-Pass Filter Bi-quadratic Resonant Filter This filter can be made to have a hi-pass characteristic with the following change to the coefficients Magnitude (db) 5 5 2 a = C C 2 b = a Recursive Hi pass The difference equation for another bandpass filter is given by y(n) = x(n) Rx(n 2)+ 2Rcos(2πf c T)y(n ) R 2 y(n 2) where f c is the resonant (or center) frequency, and R, is set according to the desired bandwidth of the resonator using the following approximate relation R = e πb wt, where B w is the bandwidth at -3dB in Hz given by B w = f c Q, and T is the sampling period. 25 5 5 2 25 Frequency (k Hz) Figure 3: Recursive hi-pass. CMPT 468: Subtractive Synthesis 37 CMPT 468: Subtractive Synthesis 38 Biquad Helmholtz Resonator This function is often called bi-quadratic or simply a biquad because both the numerator and denominator of it s transfer function are quadratic polynomials. If more tuning is required, a higher order filter may be used by placing several such filters in series. If a resonator requires more than one mode, multiple bi-quad filters can be placed in parallel (one for each mode), with the overall output being the sum of the filter outputs. The two control parameters for this filter are. the center frequency f c 2. the quality factor Q (or alternatively, the bandwidth). These parameters determine the characteristic of the resonator, and can be changed in real-time, making this an efficient and ideal implementation for performance situations. CMPT 468: Subtractive Synthesis 39 Named after H. von Helmholtz (82-894), who used it to analyze musical sounds. S m V The resonant frequency of the Helmholtz resonator is given by f = S 2π VL. where S is the surface area of the hole, V is the volume and L is the length of the neck. Once the frequency of the Helmholtz resonator is known, it can be simulated using a simple two-pole two-zero resonant digital filter. CMPT 468: Subtractive Synthesis 4 L

Designing butterworth filter s using Matlab s butter function Sources BUTTER Butterworth digital and analog filter design. [B,A] = BUTTER(N,Wn) designs an Nth order lowpass digital Butterworth filter and returns the filter coefficients in length N+ vectors B (numerator) and A (denominator). The coefficients are listed in descending powers of z. The cutoff frequency Wn must be. < Wn <., with. corresponding to half the sample rate. A pulse waveform has significant amplitude only during a relatively brief time interval, called the pulse width. Unlike noise generators, pulse generators produce periodic waveforms at a repetition frequency f. Like noise, pulses have very broad spectra, making them good candidates for subtractive synthesis. The pulse is characterized by shape the ratio of its width to the period of the overall waveform. Narrower pulses contain a larger number of harmonics. CMPT 468: Subtractive Synthesis 4 CMPT 468: Subtractive Synthesis 42 Band-Limited Pulse Generator Creating a Pulse Generator Though pulses can take on many shapes, we should choose one that has a bandlimited spectrum to avoid aliasing..5 Pulse containing 3 harmonics.5.5.5 3 2 2 4.5 Pulse containing 7 harmonics.5.5.5 5 2 4 Pulse containing 7 harmonics.5.5.5.5 6 4 2 2 4 Pulse containing 45 harmonics.5.5.5.5 2 5 5 2 4 Let N be the number of harmonics. The spectrum of the pulse generator may be synthesized by the sum of harmonics: f(t) = A N cos(2πkf t). N k= There is however, a more efficient way which makes use of the following closed form expression. A N cos(2πkf t) = A ( ) sin((2n +)πf t). N 2N sin(πf t) k= Figure 4: Pulses bandlimited by N harmonics. We can design a pulse where the number of harmonics N in the spectrum is determined by ( ) fs N = int. 2f CMPT 468: Subtractive Synthesis 43 CMPT 468: Subtractive Synthesis 44

Possible Division by Zero Notice that though we got rid of the computational expensive summation, we are left with a possible division by zero which will either crash the program or create an undesirable NaN (not a number) output. We must check if there is a division by zero, and if so, use instead the equation f(t) = A ( ) (2N +)cos((2n +)πf t. 2N cos(πf t).8.6.4.2.2 Closed Form (N = 28): 35.62 ms to compute.4.5.4.3.2...2.3.4.5.8 Discrete Summation (N = 28): 72.599 ms to compute.6.4.2.2.4.5.4.3.2...2.3.4.5 Figure 5: The output of the closed form and discrete summation is the same, though the time to compute is drastically different. CMPT 468: Subtractive Synthesis 45 CMPT 468: Subtractive Synthesis 46 Matlab implementation The following Matlab implementation avoids the use of for loops. fs = 24; nt = -.5:/fs:.5-/fs; f = ; A = ; N = 7; DIV = sin(pi*f*nt); i = find(div~=); i2 = find(div==); x(i) = A/(2*N)*(sin((2*N+)*pi*f*nT(i))..../ DIV(i) -); x(i2) = A/(2*N)*((2*N+)*cos((2*N+)*pi*f*nT(i2))..../ cos(pi*f*nt(i2)) -); CMPT 468: Subtractive Synthesis 47