オペアンプの回路を勉強して回路を分かったような気分になったところで、今回は回路の話からちょっと離れて信号というものがどのように成り立っているのかを見ていこうと思う。
やる夫:
うーん、実際の回路の話じゃないといまいち「回路作れるようになってる」感が無くてやる気が出ないお・・・
やらない夫:
まぁそう言うな。今回は難しい式を使った式を使った解説は抜きにして、感覚的な話だけをしていく。理解するのもそう難しくはない。
やる夫:
そういう事なら少しくらいは付き合ってやってもいいお。
やらない夫:
誰のためにやってると思ってるんだよ・・・
1.信号の要素
やらない夫:
さて、まずは一番身近な信号である「音」を例にとって考えてみよう。
「音」の要素というのは3つある。
「音」の要素というのは3つある。
1.大きさ
2.高さ
3.音色
2.高さ
3.音色
これらがどのようにして決まるのか分かるか?
やる夫:
お、なんかこれは中学校の理科の授業でやった事あるお。弦を弾いて音を出す実験だったお。
確か、音の大きさは振幅によって決まるんだお。で、音の高さは周波数によって決まるんだお。
確か、音の大きさは振幅によって決まるんだお。で、音の高さは周波数によって決まるんだお。
やらない夫:
やる夫:
OKだお。でも音色がどうやって決まるのか分からないお。
やらない夫:
それは多分学校の授業でやってないからな。
音色というのは、波形によって決まる。これは実際に聞き比べてみよう。
①Sin波 ②矩形波 ③三角波 ④ノコギリ波
①Sin波
②矩形波
③三角波
④ノコギリ波
音色というのは、波形によって決まる。これは実際に聞き比べてみよう。
①Sin波 ②矩形波 ③三角波 ④ノコギリ波
①Sin波
②矩形波
③三角波
④ノコギリ波
やる夫:
おお、全部音の高さは同じ。でも音色が違うお!
やらない夫:
こんな感じで、あらゆる信号は振幅と周波数と波形によって決まっているという訳だ。
2.信号の周波数成分
やる夫:
信号には、振幅、周波数、波形っていう3つの要素があることは分かったお。でも、波形の違いというのが具体的にどういう事なのかが分からないお。
やらない夫:
それを学ぶのが今回の最大の目的だ。
信号というのは何も先に示した4種類のような単純なものに限られている訳ではない。無限大の波形が存在する。でも驚くべき事に、どんな波形(周期信号)もsin波の組み合わせから作られるんだ。
信号というのは何も先に示した4種類のような単純なものに限られている訳ではない。無限大の波形が存在する。でも驚くべき事に、どんな波形(周期信号)もsin波の組み合わせから作られるんだ。
やる夫:
は?そんなバカな事あるはずないないナイアガラだお!Sin波みたいな滑らかな波形が集まって矩形波みたいなカクカクの波形ができるはずないお!
やらない夫:
そう思う気持ちも分からんでもない。
これは実際にsin波から矩形波を作ってみればわかってもらえるだろう。
エクセルを使って図形を作成してみるぞ。 あるsin波に、周波数が3倍のもの5倍のもの7倍のもの・・・と足し合わせていく。つまり奇数倍の周波数のsin波を足しまくっていく。
これは実際にsin波から矩形波を作ってみればわかってもらえるだろう。
エクセルを使って図形を作成してみるぞ。 あるsin波に、周波数が3倍のもの5倍のもの7倍のもの・・・と足し合わせていく。つまり奇数倍の周波数のsin波を足しまくっていく。
やる夫:
おおお!だんだんと矩形波になってるお!これを無限に続ければ矩形波になるのかお!?
やらない夫:
そういう事だ。これで、矩形波がsin波の集合体であることが視覚的に分かったと思う。
今度は聴覚的に、矩形波と、sin波を4つ足し合わせた波形を聞き比べてみよう。
1.1kHz矩形波
2.sin波 1kHz+3kHz+5kHz+7kHz
今度は聴覚的に、矩形波と、sin波を4つ足し合わせた波形を聞き比べてみよう。
1.1kHz矩形波
2.sin波 1kHz+3kHz+5kHz+7kHz
やる夫:
おお!かなり近い音がするお!本当に、矩形波はsin波の集合で作られてるんだお!
やらない夫:
他の波形も、同様にしてsin波を足し合わせる事で作ることができる。
この「あらゆる波形は、異なった周波数のsin波の足し合わせによって作られている」 という感覚は信号を扱う回路設計をする上で非常に大切なんだ。
例えば、回路に入力された矩形波を忠実に出力したかったらどんな事に気を付ければいいと思う?
この「あらゆる波形は、異なった周波数のsin波の足し合わせによって作られている」 という感覚は信号を扱う回路設計をする上で非常に大切なんだ。
例えば、回路に入力された矩形波を忠実に出力したかったらどんな事に気を付ければいいと思う?
やる夫:
sin波を高周波まで足せば足すほど矩形波になるって話だったお。つまり、矩形波の持ってる高周波成分が無くなると元のsin波の形に戻ってきてしまうんだお。だから、矩形波を忠実に出力したければ、回路で高周波成分が失われないようにするべきなんだお!
やらない夫:
その通り。回路の信号伝達経路でローパスになっちゃいけないなー とかそんな事を考えられるようになる。
今話した「信号を忠実に出力する」という要素は、オーディオなどの信号伝達回路の評価指標の一つにもなる。この後項でそれに触れていこう。
今話した「信号を忠実に出力する」という要素は、オーディオなどの信号伝達回路の評価指標の一つにもなる。この後項でそれに触れていこう。
3.FFT(高速フーリエ変換)
やる夫:
ところで、ある波形がどんな周波数成分から成り立っているかを調べるにはどうすればいいんだお?
やらない夫:
それにはフーリエ変換というのを使うんだ。
やる夫:
うわあああラプラス変換に続き、また難しそうな名前のやつが出てきたお!
やらない夫:
まぁ落ち着け、ここでは計算はしないでフーリエ変換がどういうものなのかをざっくり知っておくだけにしよう。
フーリエ変換でできる事というのは「ある波形がどのような周波数成分を持っているのか」を知ることだ。
たとえば矩形波をフーリエ変換(フーリエ級数展開)すると
sinx + 1/3 sin3x + 1/5 sin5x + …
という結果になる。今回取り上げているような基本波形なら手計算でできるが、実際の回路で扱うような波形だととても手計算なんてやってられない。だから計算は出来なくてもとりあえずは大丈夫だろう。
フーリエ変換でできる事というのは「ある波形がどのような周波数成分を持っているのか」を知ることだ。
たとえば矩形波をフーリエ変換(フーリエ級数展開)すると
sinx + 1/3 sin3x + 1/5 sin5x + …
という結果になる。今回取り上げているような基本波形なら手計算でできるが、実際の回路で扱うような波形だととても手計算なんてやってられない。だから計算は出来なくてもとりあえずは大丈夫だろう。
やる夫:
それを聞いて安心したお・・・でも、計算しないのだったらどうやってフーリエ変換をするんだお?
やらない夫:
基本的に、シミュレータであれば出力結果の波形をFFTする。実際の回路の測定であれば、スペクトラムアナライザを使って周波数成分を見る。
やる夫:
FFT?なんだおそれは?
スペルマ?アナライザ?下ネタかお?
スペルマ?アナライザ?下ネタかお?
やらない夫:
本当にしょうがないやつだな・・・
FFTというのはFast Fourier Transformの略。高速フーリエ変換というものだ。離散値を扱う離散フーリエ変換の演算をプログラムの工夫で高速処理できるようにしたものだ。まぁ、単純にフーリエ変換のプログラムと思っておけばいい。
FFTというのはFast Fourier Transformの略。高速フーリエ変換というものだ。離散値を扱う離散フーリエ変換の演算をプログラムの工夫で高速処理できるようにしたものだ。まぁ、単純にフーリエ変換のプログラムと思っておけばいい。
やる夫:
まぁよく分からないけど、とりあえず周波数成分が分かるものだと思っておくお。
で、実際どんな感じになるんだお?
で、実際どんな感じになるんだお?
やらない夫:
やる夫:
これを見れば矩形波がどんな周波数成分を持っているか一目瞭然だお!
1kHzの矩形波は1k, 3k, 5k, 7kHz…っていう成分を持ってるって事だお。さらに、1kHzの成分が一番大きい事もわかるお!
1kHzの矩形波は1k, 3k, 5k, 7kHz…っていう成分を持ってるって事だお。さらに、1kHzの成分が一番大きい事もわかるお!
やらない夫:
趣味レベルの回路設計だったら、どんな周波数成分があるか、大きさはどのくらいかを見るだけだから、何も難しい事はない。
ただ、一応言っておくと、FFTの計算の中には窓関数というものが存在していて、状況によってどんな窓関数を使うのか使い分けが必要だ。しかも、その窓関数の選択によって微妙に出力結果が変わったりする。この辺の詳しいことはフーリエ変換の勉強をちゃんとしてくれ。
ただ、一応言っておくと、FFTの計算の中には窓関数というものが存在していて、状況によってどんな窓関数を使うのか使い分けが必要だ。しかも、その窓関数の選択によって微妙に出力結果が変わったりする。この辺の詳しいことはフーリエ変換の勉強をちゃんとしてくれ。
やる夫:
やる夫は数学の勉強とか面倒だからそんなことはいいお。とりあえず、なんちゃってで分かればいいお。
4.非線形回路の歪と周波数成分
やる夫:
FFTがどんなものかは大体わかったお。でも矩形波とかFFTしててもあんまり面白くなくなってきたお。実際の回路の出力をFFTしてみたいお。
やらない夫:
じゃあ、ここからはFFTの結果を回路の評価にどのように使うのかを見ていこう。
簡単な増幅回路を使って1つ実例を見てみよう。 (シミュレーションにはLTSpiceを使っています)
これは「エミッタ接地増幅回路」というバイポーラトランジスタを使った基本増幅回路の一つだ。今は動作とかはどうでもいい。
ここに1[kHz]のsin波を入力する。
簡単な増幅回路を使って1つ実例を見てみよう。 (シミュレーションにはLTSpiceを使っています)
これは「エミッタ接地増幅回路」というバイポーラトランジスタを使った基本増幅回路の一つだ。今は動作とかはどうでもいい。
ここに1[kHz]のsin波を入力する。
やる夫:
トランジスタとやらの動作は分からないけど、増幅回路っていうからにはsin波が増幅されて出てくるんだお。
やらない夫:
それでOKだ。ただし、この回路は反転増幅回路だから信号がひっくりかえって出てくる事をあらかじめ知っておいてくれ。
入力波形と出力波形を見てみよう。(見やすくするためにDC成分はカットしました)
この波形から、入力のsin波が増幅されて出力されている事が分かる。まぁ当たり前だ。
さて、ここからが本題だ。入力と出力をFFTして周波数成分を見るとどうなるだろうか。
入力波形と出力波形を見てみよう。(見やすくするためにDC成分はカットしました)
この波形から、入力のsin波が増幅されて出力されている事が分かる。まぁ当たり前だ。
さて、ここからが本題だ。入力と出力をFFTして周波数成分を見るとどうなるだろうか。
やる夫:
入力はsin波なんだから、1kHzのsin波なら1kHzの成分しか持ってないはずだお。
やらない夫:
やる夫:
出力は増幅されてるから、1kHzの成分は大きくなるお。でも、sin波だから相変わらず1kHzの成分しか持ってないはずだお。
やらない夫:
やる夫:
あ…ありのまま今起こった事を話すぜ
俺はsin波の波形を見ていると思ったら
いつの間にかsin波を見ていなかった
な… 何を言ってるかわからねーと思うが
俺も何をされたのか分からなかった
,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| |i i| }! }} //| |l、{ j} /,,ィ//| i|:!ヾ、_ノ/ u {:}//ヘ |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人 /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} V:::::ヽ // 二二二7'T'' /u' __ /:::::::/`ヽ /'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ / // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ ノ ' / ノ:::::`ー-、___/:::::// ヽ } _/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ
やらない夫:
スタンドなんか使ってないぞ。
まぁでも驚くのも分かる。見た目には完璧なsin波だが、周波数成分を見ると1kHz以外の成分がある。
これは、出力波形は純粋なsin波に見えて実は回路によって信号が歪んでしまっているからなんだ。
まぁでも驚くのも分かる。見た目には完璧なsin波だが、周波数成分を見ると1kHz以外の成分がある。
これは、出力波形は純粋なsin波に見えて実は回路によって信号が歪んでしまっているからなんだ。
やる夫:
見てわからないくらいに、微妙に形が変わってるって事かお!?なんでそんな事になるんだお!
やらない夫:
どんな回路も、入力された信号の形をそのままに増幅するなんて事はできない。これは、回路の非線形性によるものなんだ。
やる夫:
非線形性?・・・・何なんだお、それは
やらない夫:
線形、非線形という言葉は回路設計で非常に頻繁に出てくる言葉だから、ここで簡単に説明しよう。
「線形」というのは、簡単に言えば「直線」である事だ。 例えば一次関数、これは直線のグラフになるよな?だから一次関数は線形であると言える。
やる夫:「線形」というのは、簡単に言えば「直線」である事だ。 例えば一次関数、これは直線のグラフになるよな?だから一次関数は線形であると言える。
線形=直線 ってことかお。じゃあ非線形っていうのは直線じゃないってことかお?
やらない夫:
やる夫:
で、それがさっきの歪となんの関係があるんだお。
やらない夫:
簡単な例を見てみよう。
ある関数のxを入力,yを出力としよう。線形である一次関数に入った入力は、そのままの形で出力されていることが図を見てわかるだろう。ここでは傾き1の一次関数にしているが、これが例えば3になったとしても、振幅が大きくなるだけで形は崩れない。
しかし、非線形の関数に入力すると出力の形が崩れてしまっていることが分かる。非線形の関数はxの値によって傾きが違って、例えば今回の例だとxが大きいとたくさん増幅し、xが小さいとあまり増幅しないというようになっている。
これが非線形性によって信号が歪むということだ。
やる夫:ある関数のxを入力,yを出力としよう。線形である一次関数に入った入力は、そのままの形で出力されていることが図を見てわかるだろう。ここでは傾き1の一次関数にしているが、これが例えば3になったとしても、振幅が大きくなるだけで形は崩れない。
しかし、非線形の関数に入力すると出力の形が崩れてしまっていることが分かる。非線形の関数はxの値によって傾きが違って、例えば今回の例だとxが大きいとたくさん増幅し、xが小さいとあまり増幅しないというようになっている。
これが非線形性によって信号が歪むということだ。
なるほど、そういう事かお。こんな現象がさっきの増幅回路では起きてたってことかお。
やらない夫:
さっきの増幅回路では、バイポーラトランジスタが非線形の特性を持っていて、それが回路の非線形性として出ていている。ちなみに、この前学んだオペアンプはトランジスタの組み合わせで作られている。つまり、少なからず非線形の特性を持っているということだ。
やる夫:
ってことは、トランジスタやオペアンプを使う以上、常に非線形性と戦わなくちゃいけないってことかお!戦わなければ生き残れないお!
やらない夫:
まぁ、オーディオにおいては線形性がいいことだけがすべてという訳ではないんだけどな。絶妙な非線形性だったらそれが聞き手にとっては「味」として受け取られたり。でも現代のHi-Fiオーディオ目指すんだったら確実に線形性は重要だから、高線形性を目指すという方針でいいだろう。
5.線形性の評価指標とノイズ
やらない夫:
やる夫:
1kHzのsin波が回路によって歪んで2k, 3k・・・の成分が出てきてるんだったお。
やらない夫:
実は、そいつらには名前がついている。信号の基本成分である1kHzは「基本波」、2kHzの成分は「2次高調波」、3kHzは「3次高調波」。非線形性による歪はこのように高調波が出てくる歪である事から「高調波歪」と呼ばれたりもする。
やる夫:
4kHzは4次高調波かお。基本波の整数倍の成分が高調波ってことだお。
やらない夫:
やる夫:
すぷりあすふりーだいなみっくれんじ?
やらない夫:
スプリアスというのはここでは高調波成分の事だ。SFDRとは基本波と一番大きい高調波成分の比を現したものだ。つまり、このスペクトルでいうと、SFDRは約27[dB]となる。
やる夫:
縦軸がdbだから、基本波のデシベル値と高調波のデシベル値を引き算すればSFDRが求まるお。簡単だお。でも、今回の例では基本波と2次高調波しか見てないお。他の高調波成分はどうでもいいのかお?
やらない夫:
もちろんそんな事はない。他の高調波成分も含んだ評価指標として全高調波歪:THD(total harmonic distortion)という評価指標がある。オーディオなどに記載されてるスペックとしてはこちらのほうが多いだろう。まぁ最終的なスペックを出すときはTHDが良いに決まってるが、設計検討段階であればパッと見てわかるSFDRで話をしたほうが簡単になるだろう。
やる夫:
ふーんだお。で、SFDRはどのくらいあればいいんだお?
やらない夫:
それは回路や目指すスペックに依るとしか言いようがないが・・・まぁでも、SFDR=80[dB]くらいあると結構線形性がいいと言えるな。90[dB], 100[dB]あるとかなりの高線形性の回路と言っていい。
やる夫:
ふーんだお。で、SFDRはどのくらいあればいいんだお?
やらない夫:
それは回路や目指すスペックに依るとしか言いようがないが・・・まぁでも、SFDR=80[dB]くらいあると結構線形性がいいと言えるな。90[dB], 100[dB]あるとかなりの高線形性の回路と言っていい。
やる夫:
じゃあやる夫はSFDR=200[dB]を目指すお!
やらない夫:
簡単に言ってくれるな・・・高調波成分がなくなったところで、まだ別の敵がいる事に気が付かないか?
やる夫:
わかったお。一番下の方に溜まってるやらない夫のチン毛みたいなやつだお!
やらない夫:
やる夫:
やる夫知ってるお!ノイズはSN比で評価するんだお!オーオタたちが事ある毎にSNSN言ってるお!
やらない夫:
よく知ってたな。SN比はSNR(Signal to Noise Ratio)とも呼ばれるノイズの評価指標だ。名前から分かる通り信号とノイズの比を示すものだ。
やる夫:
ってことは、SFDRと同じように周波数スペクトルのグラフで基本波とノイズフロアの差をとればいいんだお!
やらない夫:
そう考える気持ちはよくわかるが、実はそれはよくある間違いだ。
やる夫:
え!?そうなのかお!?
やらない夫:
SNRの定義をもう少しちゃんと言うと、「基本波のパワーと有効帯域内のノイズの総パワーの比」だ。つまり、SNRの計算に使う「ノイズ」は帯域内のノイズの積分値であるという事だ。さっきのスペクトルの帯域を10kHzだとすると、0Hzから10kHzまでのノイズの積分値を使わなくてはいけない。
やる夫:
うーん、よくわからないけどとりあえず単純に差をとるだけじゃいけない事は分かったお。
やらない夫:
SFDRと同じようにやってはいけない一番大きな理由は、ノイズフロアはFFTの設定によって変わるというところにある。つまり、全く同じ設定のFFTであれば、ノイズフロアの大小でノイズの大きさを比較してもいいが、違う設定のFFTのノイズフロアを比較することはNGなんだ。
やる夫:
つまり、こういうことだお。
「周波数スペクトルからSNRを算出するにはFFTを正しく理解しなくてはいけない!」
「周波数スペクトルからSNRを算出するにはFFTを正しく理解しなくてはいけない!」
やらない夫:
その通り。ちゃんとした理系の教育受けてる人からすれば難しくないんだが、ここに一から書いていくと長くなるので、「ノイズを見るときは気をつけなくちゃいけないよ」という事だけ知っておいてくれればいい。
やる夫:
なんかすっきりしないけど、勉強するのは面倒だからよしとするお。
やらない夫:
今回はここまでだ。次回は実際の回路の話に戻って、トランジスタについて見ていこうと思う。
TOP-目次
0 件のコメント:
コメントを投稿