1
交流信号と共振回路再実験補足
(最終改訂 2016/04/27)
再実験では、作業時間の制約から2節と7節の作業を省略し(註1参照)、WaveGene /WaveSpectra の設定を変更する6節の作業を最後に回して5、3、4、6節の順で行うものとし、レポート考察の便宜 のため LCR 回路の他、CR 回路、LR 回路についても sweep0dB.wav を WaveGene で再生して WaveSpectraで録音した音声ファイルを保存することとする(註2参照)。
再実験レポートは本実験レポートと同等に評価する(再実験であることを理由に減点されることはな い)ため、表紙交付基準も本実験と同じである。また同等な評価には同等な学修時間の確保が求められ ることから、本実験との作業時間の差を補うためレポートではテキストp. 23の「レポート作成につい て」の指示に、以下の補充作業の結果についての報告を加える。
註1:音声入出力のレベル設定は、録音の設定を「マイク100 マイクブースト 0.0dB」、再生音量を
45(D582/G の個体差を考えてもクリップしない安全な音量)とする。7節の作業は下記の補充作業手
順に記述するMATLABプログラムによる作業(位相差が±π/4になる周波数を読み取る)に代える。
註2:テキストでは、p. 23「画像合成について」でWaveSpectraの画面キャプチャから共振周波数と 半値幅を求める手順について記述したが、課題Ⅱ②のために用意したスペクトル表示のMATLABプロ グラムを用いればより正確な値を容易に得ることができる。
補充作業手順
この作業は実験時間外に行うこと
0.必要なファイルをMATLABの作業フォルダーに置く。
課題Ⅱ②のテキスト([オシロスコープ編]、[信号処理編]の両方)とMATLAB_sample.zipをダウ ンロードし、MATLAB_sample.zipを解凍して得られるplotspec.m、LCR_test.m(これ以外のファ イルは今回使用しない)の2個のファイルをMATLABの作業フォルダー(1年前期の情報学基礎セミ ナー受講以後設定を変更していなければS:¥Documents¥MATLAB)にコピーする(手順は[オシロス コープ編]p.3 0節参照)。
1.plotspec.m を実行して共振周波数と半値幅を求める。
MATLABはLocal PCにはインストールされていないので、第1、第4演習室の自由時間に行う場合 はVirtual Desktopでログインすること。MATLABを起動して、コマンドウィンドウに以下の様に入 力する(またはスクリプトとしてMファイルを作成してファイル名を指定する)。ここで「⏎」はEnter キーを示す。MATLAB の実行および plotspec の仕様については[信号処理編]テキスト参照)。初 めにLCR回路で録音した音声ファイルのスペクトルを表示する。
clear; close all;⏎ 【ワークスペースをクリアし、Figure を削除する】
[y,Fs]=audioread('name');⏎ 【ファイル名を指定して WaveSpectra で録音した音声ファイル
(nameは拡張子を含む音声ファイル名)を読み込む。信号が行列y、標本化周波数がFsに格納される:
セミコロンを忘れないこと(以下同様)】
z = y(1:11025,:);⏎ 【最初の 1 周期分を取り出す(p. 3備考参照)】
Z=plotspec(z,Fs,[20 Fs/2 -10^-2+10^-4*i -3+i]);⏎ 【フーリエ係数を行列Zに格納し、
スペクトルを表示する:p. 2図 1 に抜粋】
2
図 1 読み込んだ音声ファイルの最初の 1 周期の補正済振幅スペクトルと位相
ここでは、plotspecのパラメータで周波数範囲を20HzからNyquist周波数まで、左右の位相表示 の振幅閾値を 10-2(註参照)、位相差表示の振幅閾値を 10-4、位相の軸の値をπradian 単位とし、振幅 スペクトルの対数軸のレンジを60dB でグリッド表示有、振幅補正を+10dB/decade としている(詳細 は[信号処理編]テキストpp. 19-20参照)。
共振周波数を読み取るには、両チャンネルのレベル差が最小となり位相差が0となる周波数付近(図 1で橙色枠の部分)を指定してズームインで拡大すればよい(興味があれば行列Zに格納されたフーリ エ係数から共振周波数付近の要素の位相差を求め、これに最小自乗法を適用して位相差が0となる周波 数を推定する)。[y,Fs]=audioread('name');⏎で読み込むファイルを CR回路、LR回路で録音し たファイルを指定して同様にスペクトルを表示すること。
註:この例では、共振点付近の左チャンネルの振幅よりも少し大きく取り、左チャンネルの位相の表示 で共振周波数付近に空隙を作る様に(右チャンネルは全域で抑止しているが要素を選んでプロットしな いことはできないので値0でプロットされる)設定しているが、備考の図3~5の様に位相差のみを表 示したければ振幅閾値を例えば1とすればよい。
振幅スペクトルの Figure から両チャンネルのレベル差が最小の周波数、この周波数でのレベル差に
3.01dBを加えたレベル差(振幅比では共振周波数での振幅比を√2倍した値)の周波数を読み取ること
は困難である。位相のFigure のメニューで「ズームイン」( )をクリックして位相差が 0、±π/4
(図の軸表示では±0.25)となる付近を指定する。範囲を適切に選べなかった場合は、編集⇒「ズーム インを元に戻す(U) Ctrl+Z」で戻してやり直す。
図2 共振周波数付近(左)、半値幅両端付近(中、右)の位相差のズームイン結果
3 2.LCR_test.mを実行して比較する。
初めに、LCR_test.mの15行の変数Cの値を共振周波数から計算で求めたキャパシタの静電容量の 値(SI単位系)に変更する。コマンドウィンドウに以下の通り入力してLCR_test.mを実行し、前節 でLCR、CR、LR各回路で録音した音声ファイルを読み込んでplotspecで表示した結果と比較する。
LCR_test⏎ 【LCR_test.mを実行する(大文字と小文字は区別される)】 CR⏎ 【回路構成を入力する(小文字でも可。既定はLCR)】
⏎ 【左チャンネル測定対象を入力する。ここでは既定(回路全体)】
⏎ 【右チャンネル測定対象を入力する。ここでは既定(GND側素子であるR)】
回路構成の入力プロンプトでは、3~5節の回路に対応してそれぞれ「CR⏎」、「LR⏎」、「⏎」と入力す る(LCR_testの仕様については[信号処理編]テキストpp. 26-27参照)。
備考
課題Ⅰ②で使用する高速周波数スイープ信号の1周期は250ms(11025標本)で、周波数分解能はそ の逆数の 4Hz となる。このため、共振周波数を確認する 6 節の作業ではスイープ信号ではなく WaveGeneの「サイン波」を使用しWaveSpectraのFFTの設定で「サンプルデータ数」を32768(周波 数分解能約1.3Hz)として精度を約3倍上げて測定した。
もし、サウンドカードの雑音が測定対象の信号とは無相関であるならば、WaveSpectraで録音した音 声ファイルを用いて全区間の周波数分析または同期加算により(有意なフーリエ係数は周波数が 4Hz の倍数に限られ分解能そのものが上がる訳ではないが、4Hz単位の各データの精度が上がれば内挿結果 の)精度の向上が期待される。WaveGene の「ユーザー波形」に登録した音声ファイルの再生は、ファイ ルの終端の標本に達すると ギャップ無しに最初の標本に戻る完全 なループ再生 であることと、
WaveSpectraの録音時間が0.5秒(スイープ信号2周期)の整数倍に設定されていることで、録音した 音声ファイルの全区間を無駄なく利用できる。
実際、テキストの図41~47(pp.29-32)で使用した平衡入出力のあるオーディオインタフェース(出 力インピーダンスが高いのでほぼ定電流源)の例では、図3~5右2個のズームイン結果を比較して分 る通り、ノイズによる変動が小さくなり位相差はきれいに直線に乗ることが分る。
図3 高速スイープ1周期250msの補正済振幅スペクトルと位相差(オーディオインタフェース)
図4 全区間30.5秒122周期の補正済振幅スペクトルと位相差(オーディオインタフェース)
4
図5 122回同期加算した信号の補正済振幅スペクトルと位相差(オーディオインタフェース)
残念ながら、本実験で使用したPCのサウンドカードでは、課題Ⅱ②オシロスコープ編で特性を計測 して分る通り、再生される信号に規則的なスパイクノイズが重畳されている。このため、図 6~8 に見 る様にノイズと信号との比は全区間での分析または同期加算により改善されることはなく、250ms分の データと変らず、補充作業1節ではスイープ1周期での分析としている。
図6 高速スイープ1周期250msの補正済振幅スペクトルと位相差(PC内蔵サウンドカード)
図7 全区間32秒128周期の補正済振幅スペクトルと位相差(PC内蔵サウンドカード)
図8 128回同期加算した信号の補正済振幅スペクトルと位相差(PC内蔵サウンドカード)