rily が 2026年05月17日11時38分30秒 に編集
コメント無し
本文の変更
様々な波形を三角関数で近似できるフーリエ変換ですが、周波数成分や直流成分などを可視化することが可能になります。今回はただただ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}$$ と定義しておきますね。 今回展開する波形がこちら  こんな感じの波形とします。周期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')})=\tan^{-1}(\csc(n\theta')+\cot(n\theta'))}$$ ただcot(nθ')が発散するときがあるので注意です。 さらに $${\sqrt{(\beta_n)^2+(\alpha_n)^2}=\sqrt{(1-\cos(n\theta'))^2+\sin^2(n\theta')}=\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}(\csc(n\theta')+\cot(n\theta'))}$$ となりました。位相がわかりやすくなりましたね!もう一度言いますが、位相成分のcot(nθ')が無限大に発散するときがあるので要注意です。 さてこれを時間空間上の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)})}$$ 位相Φがわかりやすい形に整理できましたね。
$${\phi=\tan^{-1}(\csc(2\pi Dn)+\cot(2\pi Dn))}$$ 位相Φがわかりやすい形に整理できましたね。再度再度言いますが、位相成分のcot(2πDn)が無限大に発散するときがあるので要注意です。
そしてこのV(t)から第二項目以降を取り除いた直流項V0は $${V_0(D)=vD}$$ のよく見る形になりましたね。つまりフィルターで交流成分をカットオフすれば、元の直流電圧vをデューティ比Dで可変できるというわけですね。 さらに整理(位相がわかりにくくなります) - 先程、無限大に発散しちゃう問題がありましたので、、、整理しつつ表記を変えてみますね。 $${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次近似で計算してみます。  いい感じじゃないですか〜