シュトレーレ回路 (1) -- シュトレーレ PWM (1)

まず、タイトルの「シュトレーレ回路」というのは、そういう名前の回路があるわけではなく、回路自体は特に珍しくもない一般的な回路で、その回路定数の決定に以前の記事で触れた「シュトレーレ近似」を使うものと定義します。
以前の記事 (→こちら) の内容を簡単に説明すると、1 オクターブの範囲内の 2 を底とする指数関数
\qquad\qquad f(x) = 2^x   \qquad (0 \le x \le 1)
の近似式のひとつに、簡単な整数値係数を持つ有理関数 (分数) の形式の「シュトレーレ (Strehle) の近似式」と呼ばれるものがあると言う話です。
有理関数 (分数) 形式ですから、その計算には除算が必要で、以前の記事ではアナログ乗除算回路の NJM4200 を使った回路を回路図だけ示しました。
実際に回路を組むのは面倒なので、実験は行っていませんでしたが、除算回路を使用しなくても実質的に除算が行われる回路で実験することにしました。
それは、

  • PWM 回路
  • OP アンプによる反転増幅回路

です。
PWM では、PWM のカウンタの周期を N、PWM デューティーの設定を M とすると、フィルタで平滑され、直流になった電圧値は (M / N) に比例することになりますから、カウンタの周期 N に対しては「除算」が行われることになります。
また、OP アンプを使った反転増幅回路では、入力と OP アンプの反転入力との間の抵抗を R1、OP アンプの反転入力と出力の間のフィードバック抵抗を R2 とすると、この回路のゲインは -(R2 / R1) で表され、R1 については「除算」が行われることになります。
まずは、PWM を使う方式について説明します。
シュトレーレの近似式は (0 \le x \le 1) に対して
\qquad\qquad f(x) = \frac{(24 + 10 \cdot x)}{(24 - 7 \cdot x)}
ですが、その値は当然、 1 から 2 の間の数になります。
PWM で出力できるのはデューティー 0 % からデューティー 100 % までで、「2」は出力できませんから、元の式の分子を 2 で割って、0.5 から 1 までを出力範囲とします。
さらには、カウンタの周期やデューティーレジスタの値は整数に限られますから、そのことを考慮する必要があります。
この近似が有効なのは 1 オクターブの範囲ですから、半音を単位として x をスケーリングし、x = 0, 1, 2, ... , 12 の整数値を取るものとします。
x の元の定義の 0 から 1 の範囲に戻すには 12 で割れば良いですから、新しい x で表現すると、
\qquad\qquad \frac{f(x/12)}{2} = \frac{(12 + 5 \cdot (x/12))}{(24 - 7 \cdot (x/12))} = \frac{(144 + 5 \cdot x)}{(288 - 7 \cdot x)}
となります。
x = 0 では
\qquad\qquad \frac{(144+5\cdot 0)}{(288-7\cdot0)} = \frac{144}{288} = \frac{1}{2}
となり、たしかにデューティー 50 % になっています。
同様に、x = 12 では
\qquad\qquad \frac{(144+5\cdot 12)}{(288-7\cdot 12)} = \frac{204}{204} = 1
となり、たしかにデューティー 100 % になっています。
この式を計算して PWM 出力する Pakurino (Arduino) 用のスケッチを作って実験しました。
スケッチおよび結果は次回以降の記事で示します。