編集履歴一覧に戻る
rilyのアイコン画像

rily が 2026年05月19日11時03分40秒 に編集

コメント無し

本文の変更

様々な波形を三角関数で近似できるフーリエ変換ですが、周波数成分や直流成分などを可視化することが可能になります。今回はただただPWM信号のフーリエ展開をするだけの記事になります。 いざフーリエ展開 = さてフーリエ級数F(θ)は $${F(\theta)=\frac{1}{2}\alpha_0+\sum_{n=0}^\infty \beta_n \sin(\frac{2\pi n\theta}{T_{\theta}})+\alpha_n \cos(\frac{2\pi n\theta}{T_{\theta}})}$$ そして各フーリエ係数は $${\alpha_0=\frac{2}{T_{\theta}}\int_{T_{\theta}}f(\theta)d\theta}$$ $${\beta_n=\frac{2}{T_{\theta}}\int_{T_{\theta}}f(\theta)\sin(\frac{2\pi n\theta}{T_{\theta}})d\theta}$$ $${\alpha_n=\frac{2}{T_{\theta}}\int_{T_{\theta}}f(\theta)\cos(\frac{2\pi n\theta}{T_{\theta}})d\theta}$$ と定義しておきますね。 今回展開する波形がこちら ![PWM波形](https://camo.elchika.com/c339c95ec10f3301b281d14b27be74738f8eee72/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f30623534623438322d646237382d346232382d386239642d6535323233303737643033612f33666639383165312d336636352d343538632d613230622d383761643435626664323530/) こんな感じの波形とします。周期Tθ=2πですね。ちなみにデューティ比Dを絡めると、θ'=2πDになります。 ではα0を求めます。 $${\alpha_0=\frac{2}{T_{\theta}}\int_{T_{\theta}}f(\theta)d\theta=\frac{2}{2\pi}(\int_0^{\theta'}vd\theta+\int_{\theta'}^{2\pi}0d\theta)=\frac{v\theta'}{\pi}}$$ 積分区間のうち[θ'→2π]の区間は0ですね。なので以降のβnとαnでも飛ばします。 続いてβnを求めます。 $${\beta_n=\frac{2}{T_{\theta}}\int_{T_{\theta}}f(\theta)\sin(\frac{2\pi n\theta}{T_{\theta}})d\theta=\frac{2}{2\pi}\int_0^{\theta'}v\sin(\frac{2\pi n \theta}{2\pi})d\theta=-\frac{v}{\pi n}[\cos(n\theta)]_0^{\theta'}=\frac{v}{\pi n}(1-\cos(n\theta'))}$$ $${\beta_n=\frac{v}{\pi n}(1-\cos(n\theta'))}$$ 次にαnを求めます。 $${\alpha_n=\frac{2}{T_{\theta}}\int_{T_{\theta}}f(\theta)\cos(\frac{2\pi n\theta}{T_{\theta}})d\theta=\frac{2}{2\pi}\int_0^{\theta'}v\cos(\frac{2\pi n \theta}{2\pi})d\theta=\frac{v}{\pi n}[\sin(n\theta)]_0^{\theta'}=\frac{v}{\pi n}\sin(n\theta')}$$ $${\alpha_n=\frac{v}{\pi n}\sin(n\theta')}$$ 次にフーリエ級数の式に当てはめます。 $${F(\theta)=\frac{1}{2}\alpha_0+\sum_{n=0}^\infty \beta_n \sin(\frac{2\pi n\theta}{T_{\theta}})+\alpha_n \cos(\frac{2\pi n\theta}{T_{\theta}})=\frac{v\theta'}{2\pi}+\frac{v}{\pi}\sum_{n=0}^\infty \frac{1}{n}((1-\cos(n\theta'))\sin(\frac{2\pi n\theta}{2\pi})+\sin(n\theta')\cos(\frac{2\pi n\theta}{2\pi}))}$$ $${F(\theta)=v\{\frac{\theta'}{2\pi}+\frac{1}{\pi}\sum_{n=0}^\infty \frac{1}{n}((1-\cos(n\theta'))\sin(\frac{2\pi n\theta}{2\pi})+\sin(n\theta')\cos(\frac{2\pi n\theta}{2\pi}))\}}$$ ここで位相φは $${\phi=\tan^{-1}(\frac{\alpha_n}{\beta_n})=\tan^{-1}(\frac{\sin(n\theta')}{1-\cos(n\theta')})}$$ う〜ん...三角比が発散したり不定形になる可能性があるので注意ですね。。。 さらに $${\sqrt{(\beta_n)^2+(\alpha_n)^2}=\frac{v}{\pi n}\sqrt{(1-\cos(n\theta'))^2+\sin^2(n\theta')}=\frac{v}{\pi n}\sqrt{2(1-\cos(n\theta'))}}$$ つまり $${F(\theta)=v\{\frac{\theta'}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{\sqrt{2(1-\cos(n\theta'))}}{n}\sin(n\theta+\phi)\}}$$ $${\phi=\tan^{-1}(\frac{\sin(n\theta')}{1-\cos(n\theta')})}$$ となりました。位相がわかりやすくなりましたね!もう一度言いますが、位相成分の三角比が無限大に発散したり不定形になることがあるので要注意です。 さてこれを時間空間上のtの関数V(t)にしてあげましょう。 $${\theta=2\pi f_ct}$$ $${\theta'=2\pi f_cT_cD=2\pi D}$$ つまり $${V(t)=v\{\frac{2\pi D}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{\sqrt{2(1-\cos(2\pi Dn))}}{n}\sin(2\pi f_cn+\phi)\}=v\{D+\frac{1}{\pi}\sum_{n=1}^\infty \frac{\sqrt{2(1-\cos(2\pi Dn))}}{n}\sin(2\pi f_cn+\phi)\}}$$ $${V(t)=v\{D+\frac{1}{\pi}\sum_{n=1}^\infty \frac{\sqrt{2(1-\cos(2\pi Dn))}}{n}\sin(2\pi f_cn+\phi)\}}$$ $${\phi=\tan^{-1}(\frac{\sin(2\pi Dn)}{1-\cos(2\pi Dn)})}$$ 位相Φがわかりやすい形に整理できましたね。再度再度言いますが、位相成分の三角比が無限大に発散したり不定形になることがあるので要注意です。 そしてこのV(t)から第二項目以降を取り除いた直流項V0は $${V_0(D)=vD}$$ のよく見る形になりましたね。つまりフィルターで交流成分をカットオフすれば、元の直流電圧vをデューティ比Dで可変できるというわけですね。 三角比が発散したり不定形になったときの位相 - 何度も位相の三角比が発散や不定形になると言いましたね。 例えばnθ'=2πのときは $${\phi=\tan^{-1}(\frac{\sin(2\pi)}{1-\cos(2\pi)})=\tan^{-1}(\frac{0}{0})}$$

-

0/0は不定形なので、ロピタルの定を使って分母分子を微分の上で数式を無理やりしばきます。

+

0/0は不定形なので、ロピタルの定を使って分母分子を微分の上で数式を無理やりしばきます。

$${\frac{\frac{d}{d\theta}\sin(\theta)}{\frac{d}{d\theta}(1-\cos(\theta))}=\frac{\cos(\theta)}{\sin(\theta)}}$$ つまり $${\phi=\tan^{-1}(\frac{\sin(2\pi)}{1-\cos(2\pi)})\to \tan^{-1} (\frac{\cos(2\pi)}{\sin(2\pi)})=\tan^{-1}(\infty)=\frac{\pi}{2}}$$ 極限を使わず手荒に計算しましたが、arctanの値域は(-2/π)から(2/π)なので無限大に飛ばすとこのような結果になります。 さらに整理(位相がわかりにくくなります) - 先程、無限大に発散しちゃう問題がありましたので、、、整理しつつ表記を変えてみますね。 $${F(\theta)=v\{\frac{\theta'}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(n\theta)-\cos(n\theta')\sin(n\theta)+\sin(n\theta')\cos(n\theta))\}}$$ ここで三角関数の積の公式より $${\sin(x)\cos(y)=\frac{1}{2}(\sin(x+y)+\sin(x-y))}$$ またsinは奇関数なのでsin(-x)=-sin(x)が成り立つので $${\sin(x)\cos(y)=\frac{1}{2}(\sin(x+y)+\sin(x-y))=\frac{1}{2}(\sin(x+y)-\sin(y-x))}$$ となります。そして $${-\cos(n\theta')\sin(n\theta)=-\frac{1}{2}(\sin(n(\theta+\theta'))+\sin(n(\theta-\theta')))}$$ $${\sin(n\theta')\cos(n\theta)=\frac{1}{2}(\sin(n(\theta+\theta'))-\sin(n(\theta-\theta')))}$$ つまり $${-\cos(n\theta')\sin(n\theta)+\sin(n\theta')\cos(n\theta)=-\sin(n(\theta-\theta'))}$$ なので $${v\{\frac{\theta'}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(n\theta)-\cos(n\theta')\sin(n\theta)+\sin(n\theta')\cos(n\theta))\}=v\{\frac{\theta'}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(n\theta)-\sin(n(\theta-\theta')))\}}$$ $${F(\theta)=v\{\frac{\theta'}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(n\theta)-\sin(n(\theta-\theta')))\}}$$ となりましたとさ、ちゃんちゃん。これじゃ位相が分からないですね。 式の検証 - 念の為導出したF(θ)が合っているのか[wolframalpha](https://www.wolframalpha.com)で検証しましょう。 といってもそのままの式では使えないので $${\theta'=\frac{\pi}{4}\simeq 0.785}$$ $${v=1}$$ とおいて $${\frac{1}{8}+\frac{1}{\pi}\sum_{n=1}^{40} \frac{1}{n}(\sin(n\theta)-\sin(n(\theta-\frac{\pi}{4})))}$$ 40次近似で計算してみます。 ![出力波形](https://camo.elchika.com/7249b7f1c798b6f0793e311cf406fef659f3c178/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f30623534623438322d646237382d346232382d386239642d6535323233303737643033612f62343737323765662d623832322d343630322d396232372d636231616565323530363330/) いい感じじゃないですか〜