SSブログ

PWM+ローパスで擬似D/A - その2 [Pi Pico]

PWMの波形を工夫してローパスの半田付けを怠けられないか、という話の続き。前回のコメントで面白い話を入れてもらった。ダイナミックなアルゴリズムで低い周波数成分がかなり減らせて余分な成分を高い周波数に持っていけそう、という雰囲気はわかったんだけど、周波数成分を計算しようと思うと結構難しくてあまり進んでいない。

それとは別に僕が最初考えてたごくごぐ誰でも考えそうなアプローチを先に進めてみる。考え方はスタティックなのでわりと簡単なんだけど、どのくらい効果があるかというと難しいところ。

どうでもいいけどMathJaxって\hdotsを解釈してくれないのね。\hdotsってAMSじゃなかったっけ?

2.1  とりあえずすぐ思いつくパターン

wrapの値、つまり何クロックで基本波1周期にするか、という値を$w$と書いて、そのうち何クロックを1にするか、を$n$と書くことにする。デューティ比というか、基本波の中の1の出現確率を$r$とすると \begin{equation} r = \frac{n}{w} \end{equation} である。基本波1周期の中の01の並びを$[... 1010 ... ]$などと書くことにする。

$n$の少ない場合をまず考えてみる。

$n=1$の場合は基本波にひとつだけなので、位相を無視すれば一通りしかない。$n=2$の場合は、PWMでは$[11000 ... ]$だけど、基本波成分を減らすには$[100... 100... ]$として同じパターンの繰り返しにすれば基本波成分は減る。$w$が2の倍数の場合には基本波成分は0になる。

$n=3$の場合も$[10... 10... 10... ]$となるようにすれば基本波成分は減る。つまり$n$の小さな場合は1がなるべく孤立して、その間を0が同じ数だけ埋めるようにすればいい、と思いつく。

しかし、$n$が$w$を割り切れば簡単だけど、そうでない場合は0の並びが同じではなくなる。例えば$w=8$で$n=3$の場合は$[10010010]$とするしかない(位相の違いを無視して)。

とりあえず1と0のパターンを表す記号を作っておく。先頭が1でそのあと0が続いて全体で$s$個になるパターンを$R(s)$と書くことにする。 \begin{equation} R(s) = \overbrace{1\underbrace{00 0... 0}_{\textstyle s-1個}}^{\textstyle s 個} \nonumber \end{equation} たとえば、$[1010101]$のパターンは \begin{equation} R(2)R(2)R(2)R(1) \nonumber \end{equation} みたいに書くことにする。$R(1)$は単独の1ひとつで、$R(0)$は0だけとする。しかし$R(0)$を許すと書き方が何通りにもできてしまうので、とりあえず$R(0)$は式の中には現れてはいけないことにする。

同じパターンが連続するときは \begin{equation} R(2)^3R(1) \equiv R(2)R(2)R(2)R(1) \equiv 1010101 \nonumber \end{equation} みたいに書く。

また、wrap値$w$で1の出現数$n$のパターンの1周期分を$W[w:n]$と書くことにする。$w$は正の整数でかつ$0\le n \le w$である。こう書くと例えば \begin{align} W[w:0] &= \underbrace{000 ...}_{\textstyle w 個} \\ W[w:w] &= \underbrace{111 ...}_{\textstyle w 個} \end{align} である。この2つのパターンはトリビアルで、パターンの並びを考えようとした時にこのふたつはいつも同じなので議論からは除いて、今後$W[w:n]$と書くと$1 \le n \le w-1$についてだとみなす。この$W[w:0]$と$W[w:w]$以外は1種類とは限らなくて、${}_wP_n = w!/(n!(w-n)!)$通りある(位相の違いを同一視しない場合。位相を無視すると数えるのめんどくさいのでやめる)。これをなんらかの規則で決めて基本波成分が少ないのを探す問題とみなす、というわけである。

なんか前置きだけで長くなったので、別項にする。
nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。