rily が 2026年05月15日19時26分52秒 に編集
初版
タイトルの変更
PWM信号をフーリエ変換してみる
タグの変更
フーリエ変換
PWM制御
記事種類の変更
セットアップや使用方法
本文の変更
様々な波形を三角関数で近似できるフーリエ変換ですが、フーリエ級数の形にすると周波数成分や直流成分を特定することが可能になります。今回はただただ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(\theta'))}$$ $${\beta_n=\frac{v}{\pi n}(1-\cos(\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(\theta')}$$ $${\alpha_n=\frac{v}{\pi n}\sin(\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=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')))\}}$$ となりましたとさ。ちゃんちゃん。なんかきれいな級数にはなりませんね。 さてこれを時間空間上のtの関数V(t)にしてあげましょう。 $${\theta=2\pi ft}$$ $${\theta'=2\pi fTD=2\pi D}$$ なので $${V(t)=v\{\frac{2\pi D}{2\pi}+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(2\pi ftn)-\sin(n(2\pi ft-2\pi D)))\}=v\{D+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(2\pi ftn)-\sin(2\pi n(ft-D)))\}}$$ $${V(t)=v\{D+\frac{1}{\pi}\sum_{n=1}^\infty \frac{1}{n}(\sin(2\pi ftn)-\sin(2\pi n(ft-D)))\}}$$ なんかイマイチぱっとしないですが、第二項目以降を取り除いた直流項V0は $${V_0=vD}$$ のよく見る形になりましたね。つまり元の直流電圧vをデューティ比Dで電圧を可変することができるというわけですね。 式の検証 - 念の為導出した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近似ぐらいで計算してみます。  いい感じじゃないですか〜