放射線量計を作ろう 番外2  医療で使用される放射線の庶民的測定について

データの2次処理
(Audacityを用いた、積分、数値取得、曲線描画等の処理)

2014_04_20
Y.Utsunomia

このテキストでは多くの処理で"Audacity"というデジタルオーディオ ターミナルソフトを使用します。

 Audacityは最新版が以下からダウンロードできます。

<総合> http://audacity.sourceforge.net/?lang=ja

<Windows版> http://audacity.sourceforge.net/download/windows

注意: インストーラ型(EXE版)と、インストールを行わない実行ファイル型(ZIP版)があります。融通性ではZIP版が優れますが、フォルダ管理を意識しなければならない分、ほんの少し面倒ですが、私はZIP版を使用しています。
性能はどちらも変わりありません。
(英語版の詳細なマニュアルは、インストーラ版のみに付属しています)

 プラグインとして、LADSPA(エフェクト・プラグイン)とLAME(MP3エンコーダー)を用います。合わせて同ページからダウンロードし、組み込んで下さい。
(その他FFMPEGという、拡張圧縮ファイルのエンコーダー/デコーダーがよく使用されますが、このテキストでは使用しません)

 稀にWindows版が日本語OS環境で起動できない場合がありますが、その場合は「Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)」をダウンロードしインストールしてみてください。

http://www.microsoft.com/ja-jp/download/details.aspx?id=29

 音楽用途で読みやすくはありませんが、Audacityの使い方についての詳細な解説をアップしています。

http://www.utsunomia.com/y.utsunomia/text.html

 AudacityにはWindows版、Mac版、Linux版があり、いずれも同等の処理が可能です。

Audacity以外にWindows環境の方は、WaveSpectra(FFT、録音再生等)、WaveGene(各種テスト信号発生、デジタルフィルター処理)が利用できます。以下でダウンロード・入手が可能です。

http://efu.jp.net/

謝辞: これらの非常に有用なソフトウェアは一昔前なら数百万円相当の計測器にも匹敵する非常に高度な装置なのですが、それらを一切の対価なく提供していただき、本テキストのような計測がはじめて可能となります。また、計画そのものが、これらの使用を前提としたものでもあります。
深く感謝するとともに、御礼申し上げます。

処理の概要

ガイガーディテクタからの出力はパルス列出力で、X線やγ線の放射強度はパルス列密度で表される。

(注: このテキストでは読者の理解を容易にするために、便宜上線量当量・・(Sv/h)を使用していますが、測定そのもののオリジナルは全てパルス密度であり、主語はガイガーディテクタの検出で、線量当量はあくまで概略の相当量です。また、線量当量は身体組織の吸収線量であり、本稿のように、身体そのものの中から放射されるγ線と外部から照射されるX線を同一のディテクタで評価することには多少の無理がありますが、その点ご了解下さい

パルス列密度を計測する方法はいくつかあり、古くは検波・積分を行うことで、直流電圧値の変化に変換し、その電圧を表示する方法が、現在旬の技術では、一定時間のパルスそのものを計数し、その数値を統計的に処理する、2つの方法がある。
(ポアソン過程に従い一定の確度となるように、カウント数が一定数に達するまでの時間を計測する方法もある。また、最大の分解能を得るには、パルス毎の時間間隔を計測し、時間当たりの密度に変換する方法も有効)

☆それぞれの方法の得失

パルス列からその密度への変換は、マクロに眺めるとデータの圧縮であり、何に着目して圧縮を行うかで、得られる情報量が変化します。(注)

ガイガーディテクタからの出力は本来は「安定な0vベースライン上」にある+電圧(または-電圧)のパルスで、「個々のパルスは分離している」と考えられている。

パルス波形

波形整形

波形整形は、波形画像のように波形の一部を故意にクリップさせ、一定幅の波形に、DC伝送領域で処理を行う。この処理によって、比較的遅い計数速度のカウンタでも計数ミスを少なく計数することができ、またケーブルなどの引き回しに対しての雑音余裕度も向上します。

ベースライン(0v)と計測

もしパルス波形の一つ一つがベースラインを保った+側のみの方形であるなら、その個々はこの計測上の量子(最小単位)であり、それぞれは一定の電荷で表されるため、静電容量を用いて単純に積分を行うと、蓄積した電荷に比例した電圧を観測することができる。

この電荷の量はベースライン(0v)と波形のカーブに囲まれた部分の面積で表される。

電荷は波形の面積で表されること

パルスとはそういうものなのだが、安定な0vベースラインを保つためには記録再生などの伝送系の帯域が0Hz~(つまり直流伝送可能)でなければならない(あるいは0vベースラインを回復する特別なクランプ回路が必要)。

テレメトリーやデータレコーダの多くは直流伝送が可能だが、汎用の録音装置は音声が交流信号であることから、直流を排除する構造になっている。回路的には、増幅回路は必ずコンデンサによるの結合で1次の微分回路を構成してあり、パルス列のような+側のみ(あるいは-側のみ)のような信号はベースラインを失ってしまう。

オッシロスコープによる表示波形例

オッシロスコープによる残像つきの表示波形例

注記) オッシロスコープの場合は、入力結合の種類が、AC結合とDC結合から選択可能で、目的や用途に従って切り替えて使用する。パルス波形の場合は一般的にはDCを選択する。ACの場合はコンデンサによる1次の微分回路が挿入され、ベースラインが失われる(ベースラインを捨て、変化分のみを観測するためにAC切り替えがある)。

単純な検波積分ではベースラインとともにパルスの波高値が変化するため正確さが失われ、デジタル的なパルス計数では、そのパルス識別に必ず閾値が存在するが、その閾値の設定がベースラインの変動や波高値の変動で難しくなり、計数そのものが不確実になる。

録音装置を経由したパルス波形

低線量の場合、ガイガーディテクタからのパルス出力頻度は低く、確率論的にも個々のパルスが重なることは頻度は低いが、高線量ではパルス密度が高く、頻繁にパルスの重なりが観測される。

確率論的に重なりを推計し、補正することは可能ではあるが、ディテクタ固有の傾向などを加味する必要があり、それらの補正を行うことでそれらしい数値は得られるが、情報の鮮度そのものは失われていく。

飽和に近い状態のガイガー波形

汎用の音声用の録音装置を利用したパルス波の記録は、ベースラインが保存されないために、このように積分方式にとってもデジタル計数方式にとっても正確さを損なう結果に結びついてしまう。

☆ 微分回路を経由した(汎用録音装置を用いた)信号から、正確なエネルギー量を得るための工夫

汎用の音声用録音装置は、有効な音声が交流信号で成立していることからそれに最適化させる設計になっているのであるが、その性質は波形の正(+)の電荷と負(-)の電荷が等しくなるように動作している。

この性質に着目すると、正負の絶対値を取る検波(両波整流)のことで、もとのエネルギー量の復元ができることを意味している。

ちょうどパルスを氷山に見立てると、水面上に出ている部分と同じ質量の浮力分が水面下に隠れていることに類似している。

両波整流は実部品ではダイオードを用いて実現するが、ダイオードには順方向にも閾値があり、微小なレベルの信号では不正確な結果しか得られない。しかし、デジタル記録された波形データはワークステーション上のダイオードエミュレーションによって、高精度に両波整流可能で、上図はそれを表している。

この方法による復元は、パルスの数を計数する方法よりも優位性があることは、波形の処理状態の図から見てのとおり、容易に判断がつく。数でいうなら2倍になっている上、山の尖頭は不揃いで、しかも重なっている部分では計数ができない。

この方法が向いているのは検波積分する方式で、ガイガー管が飽和に近い動作状態の場合(パルスが重なり、連続して見えるような状態)でも、ある程度のエネルギー直線性を確保することができる。

Audacityによる積分処理の検証

検証: 実際にサンプルデータを読み込み、汎用録音機でガイガー出力パルスを録音した際に、+側エネルギーと-側エネルギーが釣り合っているかを、後述するリサンプル積分法によって確認します。

このグラフによると、どちらも-83.6dBの負のオフセットが生じているが、これはおそらくは処理系の問題ではなく、汎用録音機のADコンバータ固有のDCオフセットと思われます。

これを取り除くには、このDC分をサンプリングし、極性反転後に元信号に加算することでキャンセルすることができます。

それよりも問題は、赤色楕円で示した弱信号部分でのオフセット変動で、これは容易には取り除くことができません。

この検証により、記録系統の信頼は-80dB(10の4乗)程度と評価。

Audacity(DAW)を利用した両波整流の手順(ver,2.0.3以降)

サンプルデータは以下からダウンロードできます。

https://soundcloud.com/yasushi-utsunomiya/luster-of-positron-pet-ct

または「 こちら (zip形式 86.2MB) 」をクリック。

1) 波形データ(録音データ)を読み込む

作業は、Audacityの画面にデータをドロップすると自動的にファイルオープンする。
(または、Audacity実行ファイル、ショートカット上にドロップしてもファイルオープンします)

2) 処理を行う部分を選択する

読み込んだファイルがステレオの場合は、そのトラック左端のプルダウンメニューを開き、「ステレオからモノラルへ」を選びL/Rトラックを分離。

ステレオトラックの表示画面

トラック分離

多くの場合は、トラック全体を処理するため、トラック左端のトラックステータス部分をクリックし、トラックの背景色が濃くなることを確認。

トラックステータス部分の図示

3) 画面上「エフェクト」からDiode Processorを選択し、パラメータに「2」を代入し実行

ダイオードプロセッサのパラメータと実行

注意1: Diode processorはAudacityの拡張プラグイン「LADSPA」に含まれるエフェクトで、Audacityの初期状態には含まれていません。AudacityのサイトからLADSPAをダウンロードして、組み込みます。

http://audacity.sourceforge.net/download/windows

組み込み方法は、LADSPAインストーラを実行すると、インストールするフォルダロケーションを尋ねてきますので、使用するAudacityの実行ファイルがあるフォルダを指定し、OKします。

組み込まれるフォルダは、Plug ins フォルダなのですが、Plug insフォルダを指示しないでください。指示するとPlug insフォルダの中にさらにPlug insフォルダが作成され、その中に展開されます。

その場合には、ファイルを全選択し、一階層上のPlug insへ移動してください。

注意2: Diode processor、以降で述べる積分処理では、その処理に一定の時間がかかります。

長尺のデータの場合は相応の時間が費やされるので、必要部分のみ処理を行うことも有り得ますが、その場合は、波形部分をマウスでドラッグすることで「部分選択」し、その部分についてのみ処理を行うことができます。

処理時間はこのテキストで述べている、両波整流⇒ダウンリサンプル⇒アップサンプリング が最速です。

注意3: Audacityは2GB(4GB)を大きく超える長尺ファイルを取り扱うことができますが、その容量に応じたテンポラリー領域をHDD上に必要とします。

このテンポラリ領域はデフォルトではC:に自動作成されますが、作業の多くをデスクトップで行おうとすると、読み込むファイルのサイズとあいまって、C:がディスクフル・エラー状態になることがあります。この状態に陥ると、消去もできなくなるため、できるだけその危険を回避する必要があります。

ファイルを読み込む前に、そのファイル容量の3倍程度の空き容量があるか、確認して作業するように心がけます。

テンポラリ領域は手動でそのロケーションを変更設定可能で、その方法は、編集⇒設定⇒ディレクトリ で、十分な空き容量のあるパーテションを指定します。この設定は、一度Audacityを終了し、次回起動時から有効となります。

積分処理

実機回路では優れた特性のダイオードやコンデンサを駆使し実現するが、現在では高性能のDAW(デジタルオーディオ・ワークステーションソフトウェア)を利用することで、より高精度に容易に処理を行うことができる。

注意1: 実部品の組み合わせでは、ダイオードに固有の閾値(順方向電圧)があるため、低レベルでのダイナミックレンジの直線性が圧縮され、しかも比較的大きな負の温度特性を持つことから、実用的な回路は意外と面倒なものとなります。

またOPamp応用のダイオードシミュレーション回路では、一定の改善がありますが、一般的にDAWプラグインの処理の方が好結果になる傾向があります。

しかし、直接に積分エフェクトがあるわけではなく、積分を含むか、積分相当のことをやらせるか、のどちらかになります。具体的にはAudacityに標準装備のイコライゼーションを操作し、LPF(Low Pass Filter)を形成する、同じくAudacityのリサンプルを利用し、その中に含まれているアンチエリアッシングフィルターを利用することが有効と考えられます。

イコライゼーションを傾斜最大にした場合、このフィルタがFFTフィルターであることも関係するが、低域ほど最大傾斜は緩くなり、200HzLPFの場合で-120dB/oct程度、50HzLPFでは約-90dB/oct、20HzLPFでは-70dB/octが限界のようです。

☆イコライゼーションの積分への応用

イコライゼーション(LPF設定)を積分に見立てて、積分を実行する方法。適用する範囲(ドラッグによって範囲設定)またはトラック全体(波形左端のトラックステータス部分をクリック)を指定し、エフェクト⇒イコライゼーション で、次のような画面が現れ、その画面グラフ上に必要なカーブを書き込み「OK」で実行。

設定は、初期状態で0dBグリッド上の横1直線のラインにドットを打ち、そのドットをドラッグし、その折れ線でカーブを設定する。

使用者は折れ線で設定するが、得られるカーブは常にガウスカーブになるが、使用者の要求特性は青の折れ線で、実際に得られるカーブは緑のカーブの実現特性で予測表示される。

画面右下に「フィルター長」設定スライダーがあるが、このスライダーを左にすると緩やかなカーブに、右にすると急峻な実現特性になる。

積分用途で使用する場合は右いっぱいに設定。

上図の場合、カットオフは200Hz に設定されています。

このインターフェースは直感的で操作も容易なのですが、正確な周波数、正確な減衰レベルを設定するには、いささか大雑把なものと言わざるを得ません。

正確な数値入力をしたい場合は、おおまかなカーブを上記の方法で描き、Audacityのコンフィギュレーションファイルを直接書き換えることで、数値入力を高精度に行うことができます。

コンフィギュレーションファイルの場所は、無改造のAudacity(WindowsXP)の場合、C:\Documents and Settings\USER\Application Data\Audacityの"EQCurves.xml"ですが、\Application Dataが不可視属性ファイルなので、操作するためには不可視属性を表示できる設定にする必要があります。
(マッキントッシュの場合は ユーザ⇒ライブラリ⇒アプリケーションサポートのaudacity内に、目的の"EQCurves.xml"があるそうです。)

コンフィギュレーションはしばしば直接操作することもあるため、手に届きやすいところに置いておく設定もでき、その方法はAudacityの実行ファイル"Audacity.exe"があるフォルダに"portable settings"というフォルダを手動作成することで、その中にコンフィギュレーションが格納されるようになります。

EQCurves.xmlファイルはメモ帳などで開くことが可能で、書式は眺めていれば理解できると思います。

直接数値で入力することで、再現性のある高精度を実現することができます。詳しくは拙作"Audacity Professional Manyual"を参照ください。

http://www.utsunomia.com/y.utsunomia/Audacity.html

☆カットオフ周波数(積分定数)の設定

分析の目的によって設定は変化します。

詳細な細かな線量変化を追跡する場合には100~200Hz 程度、長時間の変化を比較的滑らかなカーブで表したい場合は20~50Hz以下が適切と考えます。

積分用途としては、もっと低い設定が欲しいですが、Audacity本来の目的から外れるためか設定はできません。

同様の処理をさらに低い周波数設定で行いたい場合、WaveGene(ver,1.50以上)の利用が可能で、フィルター長を16383に設定するとカットオフを1Hz に設定することが可能です。

☆リサンプルの積分処理への応用

リサンプルは、一見積分と無関係に思えますが、サンプリング周波数を変更する場合、とくに元よりも低いサンプリング周波数に変換する場合、そのままレート変換を行うと新たなサンプリング周波数よりも高い周波数成分が帯域内に折り返し雑音という形で現れるため、これを防止するために新たなサンプリング周波数の1/2の周波数で十分に減衰するような、強力なLPFを経由するような処理系になっています。

リサンプルした場合の音品位は、かなりの部分がこのLPFに依存し、実際に評価する場合、折り返し雑音の発生程度が評価尺度のひとつになります。

Audacityの特徴のひとつは、サンプリング周波数を自由に設定できることで、特別な工夫をしなくても、サンプリング周波数は1Hzから設定可能で、リサンプルを行う場合も新たなサンプリング周波数に1Hzを設定することも可能です。

サンプリング周波数を1Hzに設定した場合、アンチエリアッシングのLPFの特性は、ナイキスト周波数(サンプリング定理から)=1/2・サンプリング周波数となり、0.5Hzで最大減衰するように動作します。

注意1: Audacityでサンプリング周波数1Hzの設定は、あくまで論理的レベルの動作であり、通常のサンプリング周波数(32KHz~192KHz)のような安定な動作が得られない場合があります。

実際に1Hzfsは設定できて、動作もしますが、十分に注意しなければ容易にハングアップします。その不具合を避けるための要点を、先に示します。

  1Hzfs時(あるいは、1Hzfsのトラックを含み状態)で、むやみに再生しないこと。

再生時には高速リサンプルエンジンが動作し、MMEに引き渡すためにマシンハードのI/Fの要求するサンプリング周波数に高速変換されますが、変換する際にサンプリング周波数の比率が一定以上の場合、変換がリソースを使い切る、あるいは不条理処理になるなどの問題が生じやすいようです。

再生する場合は1Hzfsを含まない(10Hzfs以上なら安全なようです)ように注意します。

とくに1Hzfsトラック単独の場合、PCが異常低速に陥る場合があり注意を必要とします。

  積分処理を行ったトラックをファイル出力する場合、
画面左下の「プロジェクトのサンプリング周波数」も出力するファイルのサンプリング周波数に合わせ、確認・変更を実施し、ファイル出力が終了したなら、もとのサンプリング周波数に戻します。

  1Hzfsのファイルも上に従えば正常にファイル出力できますが、読み込みを行う際に、再生中などの場合、異常停止する場合があるので、ファイルフォーマットは最低でも10~1000Hzfsにすることを推奨します。

  サンプリング周波数を下げる方向の処理は、処理後のサンプリング周波数が1Hzであっても速やかに処理されますが、サンプリング周波数を上げる方向の処理については、そのサンプリング周波数の比率が過大な場合、制御が戻ってこない可能性があります。

アップサンプリングの上限は1:1000程度を上限と考えましょう。それ以上の変換比が必要な場合は、処理を複数回に分割します。

☆リサンプルの方法

適用するトラックを選択し(部分のリサンプルはできない)、画面上部の トラック⇒リサンプル⇒新しいサンプリング周波数の入力⇒OKで、実行されます。

各トラック左端のトラックメニューの中の「サンプリング周波数設定」はリサンプルではなく、そのデータ列を新たなサンプリング周波数として扱うという意味で、例えば元のサンプリング周波数が48000Hzのものを、この設定でサンプリング周波数100Hzに設定すると、尺が480倍に引き伸ばされます。
(つまり1時間分のデータなら、480時間に引き伸ばされます)

画面下の「プロジェクトのサンプリング周波数」を1Hz設定し、ファイル出力しても、目的は達成できそうですが、不条理処理となるようです。

注意2: Audacityは現在も開発が続行しているDAWですが、リサンプル部分はver,2.0.3以上とそれ未満では、性能が大きく異なります。

旧バージョンをご利用の方は、できるだけver,2.0.3(現在はver,2.0.5)以上をご利用ください。

Windows2000未満のOSの場合の最大のAudacityバージョンはver,2.0.0で、この改善されたリサンプルは利用できません。

注意3: Audacityに標準搭載のリサンプルでは、サンプリング周波数は1Hz(カットオフ0.5Hz )から設定可能ですが、変換後に1Hz サンプリングのファイルとして出力もできます。

しかし、1Hz サンプリングの入出力についての想定が十分ではないのか、48KHzのプロジェクト、同ファイルがあるところへ1Hzサンプリングのファイルを読み込み再生すろと、まれにハングアップを起こすことがあるようです。

この問題に対応するには、一旦1Hzサンプリングに変換した後、100Hz 程度にさらにリサンプルすることで、問題回避できます。この場合でも、一旦1Hzサンプリングを経由したデータは100Hzサンプリングに変換しても、カットオフ周波数は0.5Hzが保持されたままです。

リサンプルによる、積分と補間

注意4: Audacityのリサンプル品位設定
リサンプルはCPUの使用率の高い処理であるため、音楽用途では処理が重いと音が途切れるという問題の原因となるため、必要に応じて処理を簡略化して、処理を軽くする設定がある。

設定は、編集⇒設定⇒品質 にある、「高品質変換」設定がこれにあたり、設定は"Best Quality(Slowest)"を推奨します。

その下のディザリングは"無し"を推奨。

リサンプル後(またはイコライゼーション後)の処理

リサンプル後、そのままでも数値を読めなくはないものの、いくつかの処理を経ることで、さらに読み取りやニュアンスの表現が容易になります。

○レベルの正規化

積分(さらには補間)を行っても、もとのエネルギーはパルス列の波形面積分であるため、表示されるカーブはレベルが低く、最大でもパルス波高値にしか達しない。これを見やすく、表示幅に最大化するには、エフェクト⇒増幅 で、レベル正規化を行うと、自動的に波形の最大値が表示枠一杯になるように増幅が実行されます。

操作は、トラック(または範囲)の選択を行い、上記のように「増幅」命令を使用するが、増幅の起動時、自動的に入力窓には最大化に必要な数値が代入されてる。

波形の最大値が表示枠の「1」になるように代入されるが、この入力枠には-50~+50dBの任意の数値を入力することができる。しかし、その処理の結果波形が最大値の1を超える場合、警告として「OK」のボタンが押せなくなります。枠の「クリッピングを可能にする」チェックマークを入れることで、実行(結果として1を超えること)が可能になります。

注意1: Audacityはデフォルトの設定では、32bit浮動小数点演算なので、上記のような処理上のオーバーレベルは、内部的にはクリップせず結果が1を超えた状態で保存されるので、一時的にクリップ(例えば微小なレベルを観察するため)しても、再度増幅を実行することで、正規化がレベルが下がる方向に対しても自動アジャストできます。

注意2: Audacityには「増幅」と「正規化」の2つの機能があり、いずれもこの正規化作業に使用できそうですが、増幅では、増幅率を表示(または入力し指定)できますが、正規化ではその機能がありません。また、DCオフセットを自動で除去する機能がありますが、この機能は逆にこの作業にとって邪魔になります。「増幅」を用い、数値を入力しながら使用しましょう。

参考: 正規化(増幅)の意味と取り扱い

正規化(この場合は最大化でもある)を行う場合、観測のどこかで絶対値校正を行うことから、得られたデータは任意に増幅を行わず、手動で一定の数値を入力し、レベルスケールを一元化することが必要です。

正規化ではあるのですが、エフェクトの中にある「正規化」はこのような+側だけのような信号の処理には向いていません。これはオーディオデータとしてはDCオフセット分を取り除かないと、編集時などに段差ノイズの原因となるからなのですが、パルス波はそのデータの形がすべてDCオフセットであり、取り除いて(あるいは軽減したり)しまうと、データは意味を成さなくなります。

増幅を実施する場合は、必ず増幅率の数値もデータに付加する必要があります。

実際の運用は、その計測セッション全体の、もっとも高レベル部分が含まれる部分で増幅で自動推奨される数値の増幅を実行し、その数値を書き留め、他の部分にもそれを適用することが現実的で見やすいです。

また、既知の線量絶対値と照らせる場所を示しておく必要があります。

○絶対値校正

この記事では自作のガイガープローブを用い、連続した計測のグラフ化を行うことを目標としているが、入射線量に対する校正は含まれていない。絶対値の線量は、校正された個別の線量計から数値を照らし合わせることで、グラフ化されたデータに実質的な線量を与えることができる。

高線量域(100μSv/h程度、または計測された最大値・・計測可能ならば)、中線量域(10μSv/h程度)BG線量域の3点程度は必要。ただしBG域はガイガー管による計測とそれ以外では、宇宙線由来分(およそ0.06μSv/h 地表)程度の差があることを理解の上、できるだけ同方式のものを使用する。

○スケーリング(表示のカスタマイズ)

Audacityは他のDAWと異なり、表示縦軸を必要に応じて様々に可変することができる。この計測では結果グラフは主に「0」(-∞)から+側にかけての表示となるが、デフォルトでは0を中心として+側と-側の両方が表示可能になっている。-側表示は不要なので、0を含む+側表示主体とする設定方法を以下に示す。

縦軸スケール部分の0の少し下から、+側最大の1.0の少し上までをドラッグすることで、そのドラッグ範囲が、新しい表示範囲として設定できる。

もとの表示に戻すには表示スケール中央0付近で、右クリックを連打すると、やがて+-両方表示、最大レンジ(±2.0表示)となるので、その状態で左クリックを一度行うと、デフォルトに戻る。

表示範囲はリニアスケール(デフォルト)ではその読み取り10の1乗程度で、広範な線量域の減衰や傾向を読み取るには、いささか不都合である。

Audacityは表示縦軸を対数スケールに設定可能で、上記のスケーリングと併用することで、科学計測表示に対応することが可能である。

この設定は、各トラック左のプルダウンメニューを開き、波形(dB)を選択することで、各トラック独立で表示変更できる。

対数スケール表示の最小表示値は-36、-48、-60、-96、-120、-145dBから選択できるが、その設定は 編集⇒設定⇒インタフェースの、「メーター/波形dB表示範囲」の窓の一覧から選択する。

計測ダイナミックレンジはS/Nで規定されるが、BGのおよそ0.1μSv/hが事実上の計測フロアとなり、そこから上のリニアリティで決まる。0.1~300μ(300を含む切りの良い範囲として1000程度として)なので、およそ10の4乗(-80dB)であるが、18F-FDG PET-CT受診の実例では-60dBの範囲で十分にカバーすることができた。

この原因はディテクタそのもの(ガイガー方式)そのものが持っている飽和特性による部分が大きく、それを裏付ける結果となった。

グラフからのレベルの数値化

得られたカーブから数値を読み取る方法はいくつかあるが、Audacityに標準搭載されている「増幅」コマンドを利用することで、高精度に目的位置の数値を読み取ることができる。

知りたい時間場所部分を拡大し(カーソルを持って行き、そこで表示拡大を行うか、マウスカーソルをその波形部分に持っていき、Ctrlキーを押しながらマウスホイールを回転させることで、すばやく拡大縮小できる)上下動ばらつきを含む範囲で、ドラッグにより範囲指定し、エフェクト⇒増幅(注:OKしない)で出てきた画面に表示された増幅推奨値(ただしdB)が、規定0dBからのレベル(補数)である。

dB(デシベル)から実数への変換

Audacityの波形dBは電圧(勢力)比なので y=20logx(底10) で表され、最大値1に対する電圧比を意味する。

仮に上記の増幅推奨値が33dBであったなら、その部分のピークレベルは-33dBで(つまり+33dB増幅すると1になるレベル)、実数にするには 10^(-33/20)=0.02239 で得られる。

関数電卓では 33 [+/-] [÷] 20 [=] [10x(10のx乗)] の操作で求めることができる。(20は電圧比の場合の定数)

音響系の従事者ならほとんど暗算であろう。

既知の線量部分との相対値で求めるが、dBの便利なところは、既知の部分のdBがわかっているなら、目的部分の線量dBは単純な加算または減算で求められることである。

既知の線量の部分が-18dBでその部分が300μSv/hであるとしたとき、被測定部分が-46dBなら、その差は

(-18)-(-46)=-28dB
(ここまで暗算でも可)で、

-28dB = 28 [+/-] [÷] 20 [=] 10x = 0.04
求める線量は

300×0.04=12(μSv/h)
で得られる。

それぞれの問題点(イコライゼーション vs リサンプル)

イコライゼーション(LPFとして)、リサンプルを、それぞれ積分として用いる例を示したが、いずれの場合も共通する問題として、負の値をとっている部分がある。

両波整流した時点で、論理的には絶対値処理なので、決して負の値は存在しないことになるのだが、その後の積分処理の内部で、微分的な処理過程があるらしく、わずかではあるが負の値が生じる。これはAudacityの処理が音声処理に対して有利に動作するための配慮のようで(厳密には不明)、この現象が表れる。

実際に上記のようにグラフから数値を求める際には、主に変動のピークから情報を得るので、最小値の谷底は利用することが少ないことから、実質的な問題は少ないと思われるが、処理の完全性としては、少々の問題があると言わざるを得ない。

積分定数は、イコライゼーションではカットオフ周波数、リサンプルではサンプリング周波数の半分の周波数で遮断最大となるが、それぞれの周波数は分析するサンプルのパルス密度を参考にカットアンドトライする必要がある。一般的にはパルス密度が低い場合は、遮断周波数をより低く設定し、高密度の場合は高速性から高めの遮断周波数が最適となる。

概略的な参考値としては1cps(60cpm)以下では設定できる最小値(イコライゼーションの場合は20Hz  WaveGeneの場合は同1Hz、 リサンプルの場合は1Hz)、1000cps(60000cpm)では、イコライゼーションで100Hz、リサンプルで200Hz程度を目安とするとよいと思います。

また積分に用いた方式と、遮断周波数については、明記すべきです。

☆処理速度、データ圧縮について

AudacityのイコライゼーションはCPUパワーに反比例した処理時間になるわけではないようで、比較的高速のマシンを用いても、処理時間はあまり短縮されない場合もある。(リサンプルと比較しても、処理の割りにやや遅い傾向がある)

一方、リサンプル処理はCPUリソースにほぼ準じているようで、長尺のデータであるほど、その差が大きくなります。

処理速度例 (参考)

ファイルサイズ2GB、fs=48KHz16bit(3時間6分)ステレオデータの片方のトラックにのみに処理を行う。
処理機は CPU: Core2duo 1GHz Windows XP sp3 note PC Mem:2GB
HDD: 2.5inch, 5400rpm

増幅:10分45秒
トラック間コピー:1秒
イコライゼーション:11分50秒fc=200Hzフィルター長:8191
リサンプル:6分55秒48000Hzfs ⇒ 100Hzfs
リサンプル:14分10秒100Hzfs ⇒ 48000Hzfs

積分を行ったデータは、リサンプルの応用でわかるように実質的にサンプリング・レートが下がったことと同義なので、元の波形データから見ると、見かけ上データ圧縮したように見える。定義からは、圧縮ではないのだが、例えば1Hzサンプリングに変換すると1/48000にデータ量は下がる。

データの持ち運び上は大変都合が良いが、Audacityの仕様上の問題で、プロジェクトのサンプリング周波数のところに、1Hzサンプリングレートのデータを読み込むと、しばしば制御が帰ってこなくなり、事実上ハングアップしたのと同様の状態になることがあります。

これを避けるには、積分処理としては一旦1Hzfsに変換し、それを100Hzfs程度にリサンプルしファイル作成しておくと、このような問題は回避できるようです。十分ご注意下さい。

処理過程で、一時的に1Hzサンプリングは用いますが、再生やファイル出力を行う際は、必ず10Hzfs(100Hzfs以上を推奨)以上に変換を行ってから実施しましょう。

さらに長定数の積分を行いたい場合

Audacityでのリサンプルの下限は1Hzfsで、それ未満を設定することはできません。しかし低計数率のプローブを用いたり、BG以下の計数を積分するためには、例えばSBM-20を1本使用したセットでは、40秒程度(0.025Hzfs)の処理が必要となります。

これを実現するにはいくつかの方法がありますが、いずれの場合も精度が悪化したり不安定になる場合があります。リスクを承知の上ご利用ください。

○実質0.1Hzサンプリング(カットオフ0.05Hz)を得る方法

[ ]は0.025Hzfs(カットオフ0.0125Hz)の場合の変数・・40秒積分時

1) トラックを読み込む(仮に48KHzfsとする)[]

2) トラック左のトラックプルダウンメニューを開き、メニュー最下段の「サンプリング周波数設定」を開き、さらにその最下段「その他」をクリック
このときにトラックの長さは1/10に短縮
[このときのトラックの長さは1/40に短縮]

3) その設定窓に480000Hz(480KHz)を入力 (10倍のサンプリング周波数と認識させる)。[1920000Hz(1.92MHz)を入力。40倍のサンプリング周波数と認識させる]

4) 1Hzリサンプルを実行。[同]

5) その後1000Hz にアップリサンプル。次項の最終サンプリング周波数の10倍のサンプリング周波数にリサンプル。[4000Hzにアップサンプリング。次項の最終サンプリング周波数の40倍のサンプリングの周波数に、一旦アップサンプリング]

6) 再びトラック左のトラックプルダウンメニューを開き、そのトラックのサンプリング周波数を100Hzに変更[同]
トラックの長さは、1)と同じもとの尺に戻っているはずです。

 この処理によって上記の積分仕様が満たされます。(ただし精度も悪化)

 3)の[ ]で1000倍を超えるアップサンプリングを行っていますが、うまく動作しない場合は、1000倍⇒4倍のように2段階で処理してください。

これ以外の積分時間が必要な場合は、上記の凡例を参考に、変数を調整してください。

↑目次へ戻る