-
Notifications
You must be signed in to change notification settings - Fork 1
/
25.tex
273 lines (260 loc) · 7.54 KB
/
25.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
Class notes: 2-23-16
\subsection*{Symmetric Linear phase Filters, and other questions}
\begin{itemize}
\item{A question related to problem 1 of the hw. on page 225}
\item{
\textbf{What is the $\pi$ for?} I think it has to contribute to
wrapping? (Don't take my word for it I missed it.)
}
\item{
Question about allpass filters: \textbf{Reciprocal conjugate in
previous homeworks, in the book we raise
epsilon to the negative one. What happened to the conjugate?} When you
take the reciprocal, you get the conjugate. this is okay if they are real,
because they just swap places. Yes, it's a special case, but it's a special
case that we always do.
}
\item{
\textbf{Constant modulus algorithm:} rejects the noise in such away to push the modulus to 1.
it's a form a noise removal. Used in phase vocoders sometimes.
}
\item{
\textbf{How do you go about making a separation table?
Is it the same thing as a tuning table?}
This comes up talking about a the moogvcf. This comes up in the paper by Tim Stilson.
Apparently, they are two different things? Read up on this.
This comes down to frequency warping in the BLT. We normally reduce these things
(related to trig) in a table.
}
\item{ The extra delay we add in the transfer function messes up the orthagonality. The
separation table is a way of fixing this. }
\item{ If you're using the BLT: you will get some instabilities aroudn some of the frequencies. }
\item{ The moogvcf is an example of cases where the BLT isn't necessarily the best approach.
Other approache could be backward euler with oversampling.
}
\item{
What's really critical in a feedback system is the \textit{phase margin}.
}
\item{
You want to look at the overall stability with or without the delay.
}
\end{itemize}
\subsection*{Moogvcf in FAUST: Overview, and more questions}
\begin{itemize}
\item{
moogvcf is defined is it's natural topology
}
\item{
sent into 4 one pole filters
}
\item{
uses BLT
}
\item{
after the string of polls, we have our feedback
}
\item{
Corner freq, in Hz
}
\item{
The s family of functions use the BLT internally, which leads
to stability problems. This is fine for lower frequencies.
}
\item{
New improved moogvcf: first one julius learned about. Exactly the same way (follows natural topology)
except for way poles are digitized: Implemneted as a unity gain smoother.
}
\item{
K can go all the way up to 3.8, where 4 is the stability limit. The mapping between K and Q is
very significantly changed.
}
\item{
When you see the FFT, you can see the the Q melts down after each one. Correction table
fixes this.
}
\item{
With memory these days, you can practically implement algorithms that require infinite memory.
}
\item{
Think about massive parrallelism and enormous amounts of memory
(although they don't go together well).
}
\item{
In the old days: there were array processors: you'd ship your arrays to the array processors,
and they'd calculate blazingly fast. Even though the computation points are fast, the IO is slow.
We just need NVdia to care about audio!
}
\item{
With Q table, you fix the Q to have the same height and width... do you need a separate
gain table to set the peak gain?
}
\item{
Speech modelling is always done with allpole filters.
}
\item{
For constant Q: you will have set declines: no matter how you correct the Q it will stay there.
This might be on the final...
}
\item{
New Section Preview: Cepstrum, digitizing vocal tract, etc...
}
\end{itemize}
\subsection*{State Variable Filters}
\begin{itemize}
\item{
Normalized biquad (s has tilde and is normalized):
\begin{align*}
H(s) = \frac{1}{s^2 + \frac{1}{Q}s + 1}
\end{align*}
}
where $s (tilde) = \frac{s}{\omega c}$ and $j\omega (tilde) = j \frac{\omega}{\omega c}$
\item{
Where are the poles? $\pm j$ on the omega axis.
}
\item{
As Q comes down, we are going to get other cases
\paulhint{see picture taken at 16:09}
}
\item{
Poles: roots of $s ~ + ds ~ + 1, d \stackrel{\Delta}{=} 1/Q$
\paulhint{see picture taken at 16:11}
}
\item{
I want $d <= 2$ corresponds to $Q >= 1/2$
}
\item{
Now we can draw the poles in the s-plane, and get that poles are
$-d/2$ and ....
\paulhint{see picture taken at 16:12}
}
\item{
What is the Q for a butterworth? Where would things need to be for a butterworth?
}
\item{
We have a unit cirlce in the s-plane, poles in the LHP.
}
\item{
When d goes to zero, you get infinite Q and the poles reach the cirlce.
}
\item{
What's the Butterworth case? You need to look at the whole circle and
uniformly space them around the whole circle. $H(s)H(-s)$ give you
the uniform distribution around the circle.
}
\item{
$H(j\omega)H(-j\omega)$ is hermetian symmetric... we are assuming that it's
a real filter. if it were a complex filter, it wouldn't be true.
}
\item{
$\vert H(j\omega) \vert^2 = G^2(j]omega)$
}
\item{
Select the LHP via \textit{spectral factorization}: it's a buzzword! google it.
}
\item{
Poles are easy enough to specify in closed form: just cut up the circle in even pieces.
Not the case for elliptic function poles.
}
\item{
So we've found the poles, and they are on the unit cirlce. Now
\begin{align*}
H(s) = \frac{1}{s ~ + 1/Qs ~ + q}
\end{align*}
What is our corner freq?
\begin{align*}
H(j\omega_c) = \frac{1}{j^2 ~ + 1/Qj ~ + j}
\end{align*}
Therefore
\begin{align*}
G(\omega_c) = \vert H(j\omega_c) \vert = Q
\end{align*}
}
\item{
The gain is determined by the bandwidth in an allpole filter.
}
\item{
It's a very elegant formula, we know how to make the cutoff anywhere we want.
Life is good.
}
\item{
What would it take to turn this into a highpass filter?
}
\end{itemize}
\subsection*{High Pass Variation}
\begin{itemize}
\item{
Place two zeros at DC (one zero (s) would be a bandpass:
\begin{align*}
H(s) = \frac{s^2}{s ~ + 1/Qs ~ + q}
\end{align*}
}
\item{
In the time domain, swapping between the LP,BP,HP is just differentiating.
}
\end{itemize}
\subsection*{State Variable Realization}
\begin{itemize}
\item{
\paulhint{see diagram taken at }
}
\item{
It's good to have (numerical) ones on the "superdiagonal"
}
\item{
Our input signal is $u(t)$ (not the step function, unavoidable collision of symbols)
}
\item{
We want to realize this thing, so let's start with the general situation.
}
\item{
\textit{State feedback:} it's a magic term. Realized in some state-based form,
it can be used to move the poles of the signal anywhere you want.
}
\item{
}
\item{
x2 feeds back through -a2
}
\item{
How to write a transfer function of a state space model in terms of it's matrices?
\begin{align*}
H(s) &= C(sI - A)^{-1}B
\end{align*}
This works out for matrices for any size. This *is* the transfer function.
\paulhint{Working stuff out: picture at 16:34}
}
\item{
\paulhint{See picture taken at 16:44}
}
\item{
How do we digitize this?
}
\item{
All of the filters are happening here, but where we "tap" determines
which filter we hear.
}
\item{
We are just adding zeros.
}
\item{
A differentiator pushed through the system "cancels"... \paulhint{(little vague here sorry)}
}
\paulhint{
\item
{
"Let's do a hail mary on how to digitize" ...wut?
}
}
\item{
BE: $s = \frac{1 - z^{-1}}{T} $
BE: $s = \frac{1 - z^{-1}}{T} $
etc etc \paulhint{see picture taken at 16:51}
}
\item{
Use forward Euler with backward Euler for this. It works really well!
Alternatve Forward/Backward Euler.
}
\item{
Chamberlain Form... yes we are here.
}
\end{itemize}