rily が 2026年10月10日23時42分55秒 に編集
コメント無し
本文の変更
様々な波形を三角関数で近似できるフーリエ変換ですが、周波数成分や直流成分などを可視化することが可能になります。今回はただただPWM信号のフーリエ展開をするだけの記事になります。
様々な波形を **三角関数で近似** できる **フーリエ変換** ですが、**周波数成分や直流成分などを可視化する** ことが可能になります。今回はただただPWM信号のフーリエ展開をするだけの記事になります。
- ちなみに波を扱います。波って周波数だけじゃなくて位相とかいろんな関連用語を使って説明します。 - つまりスピリチュアル業界の **「波動が高い」** ってメチャクチャ頭悪い用語ですね、波の何を示しとんねん!!??と。今回は周波数をメインに **「位相」** や **「波高」** なども使用するので、そんなナメたヤツには見られたくないですね。 いざフーリエ展開 = さてフーリエ級数$F(\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}})}$$ そして各フーリエ係数は $${\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\theta=2\pi$ですね。ちなみにデューティ比Dを絡めると、$\theta'=2\pi D$になります。 では$\alpha_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}}$$ 積分区間のうち$[\theta' \to 2\pi]$の区間は$0$ですね。なので以降の$\beta_n$と$\alpha_n$でも飛ばします。 続いて$\beta_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'))}$$ 次に$\alpha_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}))\}}$$ となりました。$\theta'$の進み速度が$n$倍されるに反比例して波高が減衰していくのが分かります。 また、交流成分を三角形で表すとこうなりますよね。  なので以下の式に変形することができます。 $${\beta_n\sin(\theta)+\alpha_n\cos(\theta)=|\vec{\beta_n}+\vec{\alpha_n}|\sin(\theta+\phi)}$$ $${\phi=\arctan(\frac{\alpha_n}{\beta_n})}$$ ここで **三平方の定理** を用いて $${|\vec{\beta_n}+\vec{\alpha_n}|=\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'))}}$$ また位相差$\phi$は $${\phi=\arctan(\frac{\alpha_n}{\beta_n})=\arctan(\frac{\sin(n\theta')}{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=\arctan(\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=\arctan(\frac{\sin(2\pi Dn)}{1-\cos(2\pi Dn)})}$$ 位相差Φがわかりやすい形に整理できましたね。再度再度言いますが、**位相差成分の三角比が無限大に発散したり不定形** になることがあるので **要注意** です。 そしてこの$V(t)$から **第二項目以降を取り除いた** 直流項$V_0$は $${V_0(D)=vD}$$ のよく見る形になりましたね。つまり **フィルターで交流成分をカットオフ** すれば、元の直流電圧vを **デューティ比Dで可変** し、**任意の電圧を生成できる** というわけですね。 三角比が発散したり不定形になったときの位相差 - 何度も位相の三角比が発散や不定形になると言いましたね。 例えば$n_{\theta'}=2\pi$のときは $${\phi=\arctan(\frac{\sin(2\pi)}{1-\cos(2\pi)})=\arctan(\frac{0}{0})}$$ 0/0は不定形なので、ロピタルの定理を使って分母分子を微分の上で数式を無理やりしばきます。 $${\frac{\frac{d}{d\theta}\sin(\theta)}{\frac{d}{d\theta}(1-\cos(\theta))}=\frac{\cos(\theta)}{\sin(\theta)}}$$ つまり $${\phi=\arctan(\frac{\sin(2\pi)}{1-\cos(2\pi)})\to \arctan(\frac{\cos(2\pi)}{\sin(2\pi)})=\arctan(\infty)=\frac{\pi}{2}}$$ 極限を使わず手荒に計算しましたが、$\arctan$の値域は$-\frac{2}{\pi}$から$\frac{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')))\}}$$ となりましたとさ、ちゃんちゃん。これじゃ位相が分からないですね。 式の検証 -
念の為導出したF(θ)が合っているのか[wolframalpha](https://www.wolframalpha.com)で検証しましょう。
念の為導出した$F(\theta)$が合っているのか[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次近似で計算してみます。  いい感じじゃないですか〜