LPFの周波数特性
モチベーション
電気ふりかえり
キルヒホッフの第1法則
回路中の任意の分岐点において、流入する電流の和は流出する電流の和に等しい
電流が一箇所に集まっていったら怖いもんね
キルヒホッフの第2法則
回路内の閉路を一周したら、起電力の和は電圧降下の和に等しい
すべり台のやつだね
オームの法則
$ V = IR
$ Vは電位差
$ Iは電流
$ Rは抵抗値
コンデンサの静電容量
$ Q = CV
$ Vは電位差
$ Qは蓄えられた電荷
$ Cはコンデンサの電気容量
電荷ってなんだっけ
電流の時間微分だね
$ I = \frac{dQ(t)}{dt}
ラプラス変換
何に使うかよく分かんねえ!でもなんか便利らしい!
$ F(s) = \mathcal{L} \lbrack f(t) \rbrack = \int_0^\infty f(t) e^{-st} dt
実践上、ラプラス変換表ってのを見ながら変換していくと良さそう
周波数伝達関数
伝達関数$ G(s)の$ sに$ j \omegaを入れると、周波数伝達関数になる
ここは電気の世界なので、$ jは虚数だよ
$ |G(j \omega)|(長さ)がゲイン
$ \arg G(j \omega)(偏角)が位相 伝達関数
よくわからないけどたぶん僕はこれが知りたいんだと思う
$ G(s) = \frac{Y(s)}{X(s)} = \frac{\mathcal{L} \lbrack y(t) \rbrack}{\mathcal{L} \lbrack x(t) \rbrack}
LPFの周波数特性
シンプルなRCフィルタ
https://gyazo.com/9031db80d620c2240f95a92381a97a34
入力の電圧を$ x(t)
コンデンサの電位差が$ \frac{Q}{C}
抵抗の電位差が$ IR
とする
キルヒホッフ第2法則より、
$ x(t) - \frac{Q}{C} - IR = 0
$ x(t) - \frac{Q}{C} - \frac{dQ(t)}{dt} R = 0
知りたいのはコンデンサの電位差っぽいので、$ \frac{Q}{C} = y(t)とおく
$ \frac{dQ(t)}{dt} = C \dot y(t)もできるね
$ x(t) - y(t) - RC \dot y(t) = 0
$ \dot y(t) = -\frac{1}{RC} y(t) + \frac{1}{RC} x(t)
でこれにラプラス変換ってのをするんですか
$ \frac{1}{RC} = \omega_cとする
$ \mathcal{L} \lbrack \dot f(t) \rbrack = s F(s) - f(0)より、
$ y(0) = 0と仮定すると$ \mathcal{L} \lbrack \dot f(t) \rbrack = s F(s)になってくれるので、
$ sY(s) = -\omega_c Y(s) + \omega_c X(s)
$ (s + \omega_c) Y(s) = \omega_c X(s)
$ G(s) = \frac{\omega_c}{s + \omega_c}
$ sに$ j \omegaを入れると周波数伝達関数になるので
$ G(j \omega) = \frac{1}{1 + j \omega RC}
おお~
こいつの長さと偏角を求めるとそれぞれゲイン・位相になるらしい
ちょっと変形
$ G(j\omega) = \frac{1}{1 + \frac{j \omega}{\omega_c}} = \frac{1 - \frac{j \omega}{\omega_c}}{1 + (\frac{\omega}{\omega_c})^2}
$ |G(jw)| = \frac{\sqrt{(1 - \frac{j \omega}{\omega_c})^2}}{1 + (\frac{\omega}{\omega_c})^2} = \frac{\sqrt{1 + (\frac{\omega}{\omega_c})^2}}{1 + (\frac{\omega}{\omega_c})^2} = \frac{1}{\sqrt{1 + (\frac{\omega}{\omega_c})^2}}
$ \arg G(j \omega) = \tan^{-1} \left( \frac{\frac{\omega}{\omega_c}}{1} \right) = \tan^{-1} \left( -\frac{\omega}{\omega_c} \right)
https://gyazo.com/d5606ff6dee976b76660504a6445e945
優勝
その他
2-polar, 4-polar
ラダーフィルタ
出力をフィードバック回路で入力に戻してやる
むずかしそう!!!やりたくない!!!!
ラダーフィルタ
$ G(s) = \frac{1}{k + (1 + s)^4}
$ |G(j \omega)| = \frac{1}{\sqrt{(k + \omega^4 - 6 \omega^2 + 1)^2 + (4\omega (\omega^2 - 1))^2}}
$ \arg G(j \omega) = \tan^{-1} (k + \omega^4 - 6 \omega^2 + 1, 4 \omega(\omega^2 - 1))
https://gyazo.com/8708418eab65fdcc6d4e4d88f1084aa7
code:glsl
/**
* Generate saw wave with 4 pole ladder filter using additive synthesis
*/
vec2 filterSaw( float freq, float phase, float cutoff, float reso ) {
vec2 sum = vec2( 0.0 );
for ( int i = 1; i <= 96; i ++ ) {
float fi = float( i );
float freqp = freq * fi;
float omega = freqp / cutoff;
float omegaSq = omega * omega;
float a = 4.0 * reso + omegaSq * omegaSq - 6.0 * omegaSq + 1.0;
float b = 4.0 * omega * ( omegaSq - 1.0 );
float r = 1.0 / sqrt( a * a + b * b );
float phi = atan( a, b );
sum += 0.66 * sin( fi * phase * TAU - phi ) / fi * r;
}
return sum;
}
2-pole
いわゆるSVF(State variable filter)ってのらしいですよ
$ G(s) = \frac{1}{s^2 + 2Rs + 1}
$ |G(j \omega)| = \frac{1}{\sqrt{4 R^2 \omega^2 + (1 - \omega^2)^2}}
$ \arg G(j \omega) = \tan^{-1} (-2R \omega, 1 - \omega^2)
https://gyazo.com/87cf5661ef98b0589f2e30757be79b3d
Razorさん
LPFとBPFを組み合わせているっぽいです 位相の変化はなさそう
そんなもんか!
srtuss - acid jam
$ cをカットオフのハーモニクスの倍率、
$ kをハーモニクスの倍率としたとき、
$ l = \max(k - c, 0)
$ b = |k - c|
とおき
$ 0.5 \ e^{-0.005 l^2} + 2.2 \ e^{-0.2 b^2}
https://gyazo.com/5a9d36caff8cf653141ee15ca9358590
雑ではあるがしっかりAcidしている