ゆくゆくは有へと

おかゆ/彼ノ∅有生 の雑記

和音ってなんなんだろな

厳密には「コードシンボルってなんなんだろな」だが。

まあでも元をたどれば、トライアド(三和音)の名付けの仕方に到達するので、「和音ってなんなんだ」でも変わらんな。

トライアド、まずルートがあって、そこから第三音と第五音を決めるという感じだが、

だからといってルートが最低音である必要はなく(!)、いわゆるその転回形もまた同じ和音として扱われる。

もっと言うと、オクターブ上の音も、音高が同じであれば、いくらそこに加えても(厳密にはちょっと違うっぽいけど)同じ種の和音である。

となると、「ルート」と、他の音の「ルートからの度数」、という要素は和音を生成する最小条件ではあるが、

これが、あるひとつのコードネームで表される和音すべてを網羅している、というわけではなさそうだ。

つまり、十分条件を探したい。

以下はメモ。

結局、ヴォイシングの話である。「ルート」と、他の音の「ルートからの度数」というのはあくまでヴォイシングの1つのやり方であって、

確かにそれによって和音を決定することはできるんだが、他のヴォイシングによる同等の和音について触れることができていないでいる。

じゃあ、和音 C とはなんなのかと言うと。

ドとミとソからなる。

・・・でもいいんだが、これに加えて音の響きを表す(つまり、何度と何度と…)風に言うと

f:id:waraby0ginger:20190729003931p:plain

よりモダンに、クロマチックで書けば、

f:id:waraby0ginger:20190729003936p:plain

のスキームに従うヴォイシングでできあがる和音のことを、「メジャー」と呼ぶ、というわけである。

で。このヴォイシングスキームに名前をつけるにあたって、なんかしらの忖度を行うことで、(ドミソの場合)「C」とするわけだ。

まあしかし、和音というのは難儀な話で、単に「音の響き」だけを意味しているのではなく、

「他の和音とのつながり」、つまり「コード進行」ありきで命名されているんだろう、というところがまたうざったい話である。

・・・ミス

f:id:waraby0ginger:20190729005243p:plain

自身のオクターブ上への移行を忘れてた。

さて、一周するとオクターブになるので、+12n になるはずだ。外回りは +12, 内回りは +24 に確かになっている。

さらに、「行って戻ってくる」を行うことでもオクターブ上にならざるをえないので、同じノード間をつなぐ2つの矢印の和は +12 になる。

となれば、まず、内回りの矢印の大きさは、外回りのそれぞれの矢印の大きさに完全に依存する: x + y = 12 それに加えて、外回りの矢印も、1周すれば +12 になるので、構成音よりも自由度は1つ少ない。

…当たり前ながら、トライアドの場合は、(相対しない)矢印の大きさを 2つ決めてやれば、和音が決定する。

かつ、そのふたつの矢印

結局自作エフェクター用のどの電子部品をどこで買うのがいいのかを列挙したリストをつくりたい

ですね。

論点は、

の3点かなあ。「とりあえずブツがほしい!」っていうんなら、プライム会員ならAmazonが一番安い気がする。

エフェクターペダルには2つある

エフェクターペダルには2つあるということに気づいた:

「アンプライク」と「アンプありき」だ

昔のエフェクターはほぼすべて「アンプありき」に分類していいと思う。「アンプに機能を足す」と言ってもいい。

昔は大抵のアンプは真空管アンプで、「アンプの音はそもそも割といい」というのがあったはずで、

その上で「でもあまり歪まない」とか「空間系がな」という課題が発生して、それに対応したのが昔のエフェクターなんだと思う。

いずれにせよ、そのトーンはあくまで良い真空管アンプで鳴らすのを前提としていて、根本の音作りはアンプによってなされるという想定がある。

一方で、最近はソリッドステートアンプが(家庭なら)ほぼ主流で、良くも悪くも「フラット」な音が出るようになった。

でもギターってそもそも「フラットなトーン」だと「ダサい」音なんだよな。ミドルが変に突き出てて、音楽的じゃないというか。

だから、昔のエフェクターを今の(よくも悪くも)素直なアンプにつなげても、「アンプが仕事をしてない」分、変な音になる。

昔は「アンプも楽器」だったが、いまは、アンプは単なる「電気信号を音に変換するインタフェースデバイス」になりつつある。

そうなると、アンプではないところ、エフェクターの段階で「音楽的なトーン」を作り上げる必要が出てくるわけで、そりゃ「アンプライク」が台頭してくるのは当然になる。

ここでいう「音楽的なトーン」は乱暴に言えば、「ドンシャリ」のことだ。

昔はアンプがドンシャリにしてくれていたが、今はアンプがフラットになってしまって、相対的に「ミドルが出過ぎ」な設計になっている。

だから、「アンプライク」なエフェクターは自身で音を「ドンシャリ」にする必要が出てくる。そうするとユーザーが嬉しいからね。

話を戻すと、エフェクターには2つ種類があって、

  • アンプ(あるいはその先のプリアンプペダル)によって「ドンシャリ」を想定した上で、歪ませたりミドルをちょっと持ち上げたりするペダル
  • 自身で音楽のトーンに仕上げようとするペダル。つまり、音を「ドンシャリ」気味にするペダル

というわけだ。TS系のミドルのもちあがりを「気持ちいい」と感じるためには、ドンシャリのアンプトーンがなくてはならない。

単語長分布シミュレーションのツイート

iuk.hateblo.jp

gist.github.com

バイポーラトランジスタのエミッタ接地増幅回路に関する諸計算

ほぼメモ。随時更新の形をとっています。

BJTのエミッタ接地増幅回路における直流・交流それぞれのゲイン、また、交流増幅のヘッドルームを計算する。

多くの増幅回路で、エミッタ抵抗に並列でコンデンサをつなげて交流的に接地することが多いので、それを考慮した計算を行う。

ネットでこの類の計算を見つけられなかったので自力で計算した。

※追記:近いことを書いているサイトを見つけた。

http://doku.bimyo.jp/bipoler/

計算

f:id:waraby0ginger:20190503192607p:plain

直流成分。


\overline{V_i}^{*} = \overline{V_i} - V_{be}^{sat} = (R_b + (1+\beta)R_e) \overline{I_b}

交流成分。


\Delta V_i = (R_b^{\Delta} + (1+\beta)R_e^{\Delta}) \Delta I_b

ここで仮定として、直流バイアスを十分にとり、ベースエミッタ間の順方向電圧は直流成分のみでまかなえるとしている。


V_o = V_p - \beta R_c \overline{I_b} - \beta R_c^{\Delta} \Delta I_b = V_p - g \overline{V_i}^{*} - g^{\Delta} \Delta V_i

ここで、


g = \frac{\beta R_c }{R_b + (1+\beta) R_e}

 g^\Deltaも交流成分として同様に定義される。

 V_p - g \overline{V_i}^{*} が直流バイアスによる出力電圧の中心点であることに注意。

また、交流によるゲインは -g^\Deltaである。

さて、コレクタエミッタ間電圧については、


V_p - V_{ce} = (\beta R_c + (1+\beta) R_e) \overline{I_b} + (\beta R_c^{\Delta} + (1+\beta) R_e^{\Delta}) \Delta I_b = \epsilon \overline{V_i}^{*} + \epsilon^{\Delta} \Delta V_i

ここで、


\epsilon = \frac{\beta R_c + (1+\beta) R_e}{R_b + (1+\beta)R_e} = \frac{g}{\alpha}


\alpha = \frac{\beta R_c}{\beta R_c + (1+\beta) R_e}

である。これより、


\frac{\alpha^\Delta}{\alpha} \left( \alpha (V_p - V_{ce}^{sat}) - g \overline{V_i}^{*} \right) \geq g^{\Delta} \Delta V_i


\frac{\alpha^\Delta}{\alpha} \left(  \overline{V_o} - ((1-\alpha) V_p + \alpha V_{ce}^{sat}) \right) \geq g^{\Delta} \Delta V_i

\overline{V_o} - ((1-\alpha) V_p + \alpha V_{ce}^{sat}) は、

直流成分の出力点と最小出力電圧  \overline{V_{o, \mathrm{min}}} までの範囲を表している。

これを踏まえて、交流成分における最小出力電圧(負側の最大)は直流成分における範囲の \frac{\alpha^\Delta}{\alpha}倍となる。


R_b^{(\Delta)} = R_c^{(\Delta)} = R_e = 1 \mathrm{k \Omega}


R_e^{\Delta} = 20 \mathrm{\Omega}


\beta = 200, V_p=10 \mathrm{V}, V_{ce}^{sat}=0.1 \mathrm{V}

このとき、各パラメータは


g \approx 1, g^{\Delta} \approx 40


\alpha  \approx 0.5, \alpha^{\Delta} \approx 1

直流成分での下限値は


(1-\alpha) V_p + \alpha V_{ce}^{sat} = 0.5 \cdot 10 + 1.0 \cdot 0.1 \approx 5 \mathrm{V}

 \alpha^{\Delta} / \alpha = 2 なので、バイアス点を X とすれば、出力電圧範囲は

 X - 2(X-5) から  V_p=10 \mathrm{V} までになる。

入力信号を正側最大値と負側最大値が等しいようなものとすると、

上側範囲は 10-Xであり、下側範囲は 2(X-5)であるから、

 X= 20/3 = 6.7 \mathrm{V}のとき、もっともヘッドルームが広くなる(片側  10/3 = 3.3 \mathrm{V}

交流ゲイン  g^{\Delta} = 40 であるから、最適バイアス時における入力上限は \pm 1/12 \mathrm{V} = \pm 83 \mathrm{mV}である。

最適バイアス点の一般化

上の例で計算した最適バイアス点を一般化しておく。

正側最大値と負側最大値が等しいような信号入力(正弦波など)の増幅において、

上側範囲は V_p - \overline{V_o}であり、下側範囲は \frac{\alpha^{\Delta}}{\alpha} \left(\overline{V_o} - \overline{V_{o, min}} \right)であるから、

最適バイアス点はその中点であり、


\overline{V_o} = \frac{\alpha}{\alpha^{\Delta} + \alpha} \left(V_p + \frac{\alpha^{\Delta}}{\alpha} \overline{V_{o, min}} \right)

になる。

もちろん、正側の最大値と負側の最大値が等しくないような波形の場合は、さらに適切なバイアス点があるが、一般性に欠けるため、そのような場合は別途チューニングしていくべきだ。方針としては、正側と負側の最大値の比を保つように上側・下側の範囲を決めてやれば良い(位相が反転するのに留意すること)。

補足:分圧回路を用いた場合

f:id:waraby0ginger:20190503193656p:plain

普通、バイアスをかけるときは電源電圧から分圧してベースに流す。

この場合の R_bは分圧回路に用いた2つの抵抗の並列和になる。

直観的には、分圧回路の出力インピーダンスがまさにその値であるので、ベースから見ると、その値の抵抗があるように見える。

愚直に計算してもいいが…、せっかく入出力インピーダンスの概念を開発しているので、わざわざやる必要も…ないよね?

交流回路については?

ベースからみると、このような構成における  R_b^{\Delta}は、 C_1, R_1, R_2 の並列になる。

 R_b = R_1 // R_2 であるので、 R_b^{\Delta} R_bにさらにコンデンサを並列でつないだものになるとも言える。

もちろんこれも分圧回路の出力インピーダンスから明らか。

補足すれば、交流成分については C_1 R_1 // R_2 によってハイパスフィルタが形成されている。

最適なバイアス点をとったときの定格出力範囲、入力範囲

上述の議論から、最適なバイアス点は


\overline{V_o} = \frac{\alpha}{\alpha^{\Delta} + \alpha} \left(V_p + \frac{\alpha^{\Delta}}{\alpha} \overline{V_{o, min}} \right)

となる。このとき、上側範囲と下側範囲は等しくなり、その両者を合わせた範囲は、


\Delta V_{o, pp} = 2 \frac{\alpha \cdot \alpha^{\Delta}}{\alpha + \alpha^{\Delta}} V_p^{*} = 2(\alpha // \alpha^{\Delta}) V_p^{*}

になる。ここで、 V_p^{*} := V_p - V_{ce}^{sat} である。よって、入力範囲は


\Delta V_{i, pp} =  \frac{2(\alpha // \alpha^{\Delta})}{g^{\Delta}} V_p^{*}

となる。(ppは peak-to-peakを意味する)

g と αの関係

計算のみ示す。


g = \frac{\beta R_c}{R_b + (1+\beta) R_e} = \frac{\beta R_c}{R_b -\beta R_c +\beta R_c + (1+\beta) R_e}


= \frac{\alpha}{1-(1-\frac{R_b}{\beta R_c})\alpha} = \frac{\alpha}{1-\lambda \alpha}

ここで、 \lambda := 1- \frac{R_b}{\beta R_c}である。 \lambda^{\Delta}も同様に交流的に定義される。

たいていの場合、 \lambda \approx 1 - \frac{1}{\beta}である。

λ, g, αについて

念の為、3つのパラメータの関係について書いておくと、


g = \frac{\alpha}{1-\lambda \alpha}

より、


\lambda = \frac{1}{\alpha} - \frac{1}{g}

である。

バイアス最適点の入出力範囲における安定性

実用では、バイアス最適点をいついかなるときも実現できるとは限らず、そこから少しズレた点でバイアスがかかるときがほとんどである。

最適点での入出力範囲がいかに優秀であっても、そこから少しズレた途端に極端に悪化するような設計は避けるべき。

というわけで、バイアス最適点  \overline{V_{i, optimal}} に対して、[\delta v]ズレたバイアスにおける入出力範囲の変化をみると、


\delta \Delta V_{o, \mathrm{above}} = -g \delta v


\delta \Delta V_{o, \mathrm{below}} = \frac{\alpha^{\Delta}}{\alpha} g \delta v

特に、下側範囲について、その絶対値をみると、


|\delta \Delta V_{o, \mathrm{below}}| = \frac{\alpha^{\Delta}}{\alpha} g \delta v \leq \frac{g}{\alpha} \delta v = (1+\lambda g) \delta v

ここで、


\alpha = \frac{g}{1+\lambda g}

を用いた。大抵の場合、 \lambda \approx 1 であるから、


|\delta \Delta V_{o, \mathrm{below}}| \leq (1+g) \delta v

であることが分かる。

概ね、入力バイアス電圧のズレに対して、上側・下側それぞれ g倍, 1+g倍だけ範囲がズレると考えるとよい。

ちなみに、バイアス電圧自体のズレはもちろんのこと、環境によるベースエミッタ飽和電圧の変化もこれで対応できる。

さらに現実的な話をすると、エミッタ抵抗にコンデンサを並列でつける場合、周波数によって最適バイアス点が少しずつズレていくので、その考慮も…と考えると結構馬鹿にならないパラメータである。

いずれにせよ、 gが支配的に効いてくる量なので、DC電圧の増幅度はできるだけ低めに設定したほうがいいことが分かる。

最適バイアス時の定格入出力範囲の関係

再掲する。


\Delta V_{o, pp} = 2 \frac{\alpha \cdot \alpha^{\Delta}}{\alpha + \alpha^{\Delta}} V_p^{*} = 2(\alpha // \alpha^{\Delta}) V_p^{*}


\Delta V_{i, pp} =  \frac{2(\alpha // \alpha^{\Delta})}{g^{\Delta}} V_p^{*}

ここで、 g =  \frac{\alpha}{1-\lambda \alpha}の関係を用いて整理すると、


\Delta V_{i, pp} =  \frac{2(\alpha // \alpha^{\Delta})}{g^{\Delta}} V_p^{*} = 2 \frac{\alpha}{\alpha + \alpha^{\Delta}} (1 - \lambda^{\Delta} \alpha^{\Delta})V_p^{*}


= 2 \frac{\alpha}{\alpha + \alpha^{\Delta}} V_p^{*} - \lambda^{\Delta} \Delta V_{o, pp}

よって、入出力範囲について次の関係がなりたつ:


\Delta V_{i, pp} + \lambda^{\Delta} \Delta V_{o, pp} = 2 \frac{\alpha}{\alpha + \alpha^{\Delta}} V_p^{*}

特に、 \lambda^{\Delta} \approx 1 かつ、 \alpha = \alpha^{\Delta} のとき、入出力範囲の和が V_p^{*} で保存する。

そこで、 V_p^{*}に対する \Delta V_{i, pp}, \Delta V_{o, pp}の比をそれぞれ x_i, x_oとすると


x_o = \frac{1}{\lambda^{\Delta}} \left( \frac{2 \alpha}{\alpha + \alpha^{\Delta}} - x_i \right)

増幅回路の設計ではこれを最大化するような \alpha^{(\Delta)}, \lambda^{\Delta}を求める必要がある。

ラムダの項を展開して、


x_o = \frac{g^{\Delta} \alpha^{\Delta}}{g^{\Delta} - \alpha^{\Delta}} \left( \frac{2 \alpha}{\alpha + \alpha^{\Delta}} - x_i \right)

について考えてもよい。

先の議論でもあった通り、実際には最適バイアス点の安定性についての考慮も必要である。結局、直流成分のパラメータはその安定性の確保のため自由が効かない。・・・つまり \alphaだ。

典型な場合

典型的な \beta, R_bにおいては、 \lambda \approx 1 であるから、


\alpha = \frac{g}{1+g}

あるいは


g = \frac{\alpha}{1-\alpha}

である。交流ゲインをできるだけ稼ぐ場合、 \alpha^{\Delta} \approx 1 になる。そうすると:


x_o \approx \frac{g^{\Delta}}{g^{\Delta} - 1} \left( \frac{2 \alpha}{\alpha + 1} - x_i \right) \approx \left( \frac{2 \alpha}{\alpha + 1} - x_i \right)

 \alpha はできるだけ高いほうがいいが、これを高くすると安定性が悪くなるというトレードオフがある。

たとえば、 g = 3くらいにしてみると、 \alpha = \frac{3}{4} であるから、


x_o \approx\frac{6}{7} - x_i

になる。たとえば、 V_p^{*} = 10 \mathrm{V} で、 \Delta V_{i, pp} = 1.5 \mathrm{V} とすれば、 x_i = 0.15 なので、


x_o \approx 0.857 - 0.15 = 0.6

6 V になる。ただし、安定性確保のために、バイアス変化±0.1Vを吸収するために、0.6Vだけ差っ引いて 5.4 V が実質的な範囲になる。ゲインは3.6倍程度になる。

 g = 1 にすると、 \alpha = \frac{1}{2} になるため、 x_o = \frac{2}{3} - 0.15 = 0.51 であるから、今の条件では出力範囲は 4.9 V になってさらに悪化する。安定性のことを考えれば、単純に悪化…とは言えないが。

何が悪いのか?という話

今の例では、交流に関してはほぼMAXのゲイン、およそ g^{\Delta} \approx \betaであった。…が、実際には数倍のゲインになってしまっている。

これはどういうことかといえば…、いや、まさにMAXのゲインにしてしまったがために、早々にサチってしまっていると考えたほうがいいだろう。

外部電源が 10V で、入力電圧が 1.5Vpp なら、せいぜい 6.6倍程度のゲインが稼げたら十分なわけで。

・・・というわけで、 g^{\Delta} = 6.5 でやってみよう。 \alpha^{\Delta} = 0.87 なので、 g = 3とすると、 \alpha = 0.75より


x_o = \frac{6.5 \cdot 0.87}{6.5 - 0.87} \left( \frac{1.5}{0.75 + 0.87} - 0.15 \right) = 1.0 \cdot (0.926 - 0.15) = 0.776

となるので、出力範囲は 7.7V、マージンをとれば 7.1 V となり、4.7倍くらいのゲインになる。さっきよりも改善した。

フィルタ回路の接続に関する注意

単純なRCローパスフィルタ、それを2つ繋げた複合フィルタ回路の話。

f:id:waraby0ginger:20190426195753p:plain

out2 が単純なRCローパスフィルタ。念の為書いておくと、カットオフ周波数は


f_c = \frac{1}{2\pi R C}

である。計算実用上のことを考えると、R を kΩ単位、C を μF 単位として、


f_c \fallingdotseq \frac{160}{RC}

で覚えておくとよい。というわけで、out2 のカットオフ周波数は 1kHz。

周波数のゲイン特性を載せます:

f:id:waraby0ginger:20190426195758p:plain

カットオフ周波数の1kHz以前では水平線、それ以降は -6dB/Oct の勾配でゲインが下がっていくのが分かります。

ちなみに、この水平線と、-6dB/Oct の直線の交点がちょうどカットオフ周波数になります*1。 実際はちょうどカットオフ周波数のところでカクッといきなり勾配が変わらず、滑らかに推移するゆえに鈍るので、 結果として、カットオフ周波数の点ではゲインは少し下がって -3dB になります。厳密には  20 \log{\frac{1}{\sqrt{2}}}

で。

この回路を単純に2つ繋げると、カットオフ周波数 1kHz で、勾配が2倍の -12 dB/Oct になりそうだと予想できる。それがout1である。

で、実際にシミュレーションしてみると、確かに勾配が -12dB/Oct になっており、単一での使用よりも急速にハイが落ちるようになっている。

ただし、カットオフ周波数まわりの鈍り方を見てみると、out1out2では少し様子が違う。

これは、ローパスフィルタ回路の入出力インピーダンスのせいだ。

一般に、インピーダンス  Z_1, Z_2で構成される分圧回路(out2回路もこれのひとつ)の入出力インピーダンスは、


Z_{input} = Z_1 + Z_2


Z_{output} = Z_1 // Z_2 =\frac{Z_1 Z_2}{Z_1 + Z_2}

となる。 // は並列和を表す。

理想的な入出力インピーダンス*2をもってなければ、入出力インピーダンス由来の分圧によって電圧のロスが生じる。

つまり、単に2つのローパスフィルタ回路の特性に加えてout3回路によって生じる分圧も勘案しなければならない。

ゲイン特性図のout3を見てみると、カットオフ周波数付近で少しゲインが下がっているのが分かる。これが「鈍り」の原因。

おわり。

・・・・といきたいんだが、本当に大事なのは「この入出力インピーダンスのゲイン特性への影響は手計算で概算できんのか?」という話である。これのために最近は苦戦している・・・・・・・・。

*1:Octはオクターブ。-6dB/Octは、周波数が2倍になるとゲインは-6dB変わるということ。

*2:入力インピーダンスなら∞、出力インピーダンスなら0が理想