★『ASI294MCの謎』シリーズ連載2回目です念のためお断りしておきますが、コレ素人の「お遊び」ですからね。
あくまであぷらなーと個人の道楽なので、あまり真に受けちゃいけません(笑)。
でも、色々とモヤモヤしていた方には解決の糸口になるかもしれませんし、ひょっとすると「ASI1600の謎解きシリーズ」の時のように「なにか有用な案件」が見つかるかも知れませんです♪
★色々と面白そうな事は見つかったのですが・・・
その前に!!
ある程度の妥当性をチェックしておかないとマズいです。
だって・・・これをやっておかないと『まるで大ウソ』の危険性がありますし、そもそもメーカー公称値を見る時の参考になりませんもの・・・。
というわけで・・・・
今回のお題は
「1コマのバイアスファイルからリードノイズ量を求める!」
です。
ええ、できますとも。
★そもそもノイズ量って何?
現在のあぷらなーとは定量的・数学的な扱いが苦手なので、そのあたりはSamさんのブログ記事↓などをご参照いただくとして・・・・
あぷらなーとは、もう少し泥臭く攻めますよ~♪
ほら、メーカーさんのサイトに行くと難しげなグラフが載ってるじゃないですか。
「ゲイン毎の読み出しノイズ量」とかというアレですよ。
・・・でね、これってなんなんだろう・・・と。
たとえば、ZWOさんの公式サイトでは

ASI294MC-Proについて、こんなグラフが公開されています。
(出典)↓
先日、自前の解析コードを書いてASI294MC-Proのバイアスファイルの輝度分布を見てみたのだけれど、今回はここからメーカーさんの公称値を導出できるかどうか『検証ごっこ』してみます。
まず横軸を見ます。
すると「0.1dbを単位としたゲイン」だと書いてあります。
つまり200というのは200×0.1=20dbだということになります。
一般的に6.02db増加する毎に感度が2倍になりますので、このグラフに記載されているゲインは60.2増す毎に感度が倍々になるという意味になります。
次に縦軸を見ると、「e-rms」が単位だと書かれています。
ということは、輝度値をそのまま用いるのではなく、輝度を「e-(光電子数)」に換算しないとダメということです。
ASI294MC-Proのユニティゲイン(イメージとしては感度が1倍)は117だと明記されていますので、例えばゲイン0というのは感度が2^(-117/60.2)=約1/3.846倍になっていることになります。つまり、天体から飛んできた光によって撮像素子から光電子が1個発生したときに、ゲイン0だと「1/3.846」という輝度値が記録されるということです。逆に言うと、ゲイン0のデータは輝度値を3.846倍すれば光電子数に換算できるということですね。
さらに気をつけるべきは用いる輝度分布グラフの種類です。
あぷらなーとのように、自前の解析コードを書くなどして「素のFITSファイル」を読んで統計処理する場合は、本来14bitでAD変換した輝度をさらに16bitに間延びさせて記録された物を見ていることになりますので、読み込んだ輝度を4で割ってやらないといけません。
一方、SharpCapが自動生成した輝度分布CSVファイルを用いる場合は、前回のブログで『検証ごっこ』したように、本来14bitでAD変換した輝度を12bitに圧縮して記録されていると推測されますので、読み込んだ輝度を4倍してやらないといけません。
さて、フィルム時代から天文を趣味にされていた方は「RMS粒状度」という言葉を覚えていらっしゃいますでしょうか。これはフィルムのざらつき(ノイズ)を表すための指標ですが、要するに理想的な濃度からどれだけバラついているのかを標準偏差で表した数値です。ここからの類推でCMOSカメラの場合もフィルムの場合と同様、平均輝度からどれだけバラついているのかを標準偏差を用いて表現しているのだと解釈できます。つまり時間的ノイズではなく空間的ノイズなのではないかと推測しました。(※もしノイズが完全にランダムなものなら、時間的な揺らぎと空間的な揺らぎは統計処理後に一致します。放射性同位体の半減期を求める計算手法と同じ原理ですね。)
★輝度単位を光電子数に換算した輝度グラフは・・・
ASI294MC-Proを-15℃で運用し、ゲイン0にて撮影したバイアスファイルを自前の解析コードで統計した結果得られた輝度分布グラフはこうなりました。

横軸の単位は、先述の(16bit→14bitに復元・輝度値は光電子数に変換)処理にて換算済みです。
メーカーさんが言う「リードノイズ量」なるものが、このバイアス輝度の平均値からのバラツキ度合いを表す標準偏差だと解釈すると、

このように、
「輝度平均値を中心として約68.2%のピクセルが含まれる幅の1/2」がノイズ量だということになります。
ただし、これをグラフから読み取るのは難儀しますよねぇ。
そこで、総ピクセル数(厳密には輝度0にたまっているゴミデータは排除)を1に規格化して確率密度関数に変換し、それを低輝度側から積分(累積)すれば読み取りやすくなります。

如何でしょう?
ザックリと目視で読みとると、この幅は約14。ここから求めたノイズ量は約7e-と推測されます。
メーカーさんの公称値では、ゲイン0でノイズ量が約7.2~7.3e-程度と読めますので、これはなかなか良い一致ですね。
つまり、ノイズ量の解釈はあながち間違ってないと判断できます。
となれば・・・
★輝度分布から数値計算でノイズ量を推算する
では、みんな大好きEXCELくんを用いて、数値計算でノイズ量(標準偏差)を求めてみます。
元来標準偏差は、
平均値:A
個々の値:X
データ数:N
とした場合には
( ( Σ(X-A)^2 )/ N )^0.5
つまり(X-A)の2乗を全てのXについて合計し、それをNで割ったものの平方根です。
今回の様に個々の数値ではなく各輝度値帯ごとの度数分布になっている場合は、(階級値-平均値)の2乗に度数を掛けて合計し、それを全度数の合計で割った物の平方根を取れば問題ありません。
早速計算シートを作って演算させてみましょう。
すると・・・
ででん!!
ゲイン0におけるリードノイズは
標準偏差:7.22(e-)!
で・・・ノイズが激減するとの触れ込みの「ゲイン120」では・・・

ゲイン120におけるリードノイズは
標準偏差:1.97(e-)!!
おお-、メーカー公称値とほぼ一致したッ!!
う、うれしすぎるぅ♪
え?
「何がうれしいのだ」
・・・ですと?
いやいや『検証ごっこ』ってこんな遊びですよー。
所詮は子供の自由研究とか学生実験のレベルなんですからー。
ふはははは。
これで安心して先に進めるわ!
★★★お約束★★★
①大急ぎで書き殴ったのでミスタイプとか多発しているかも知れません。
②エレキ系が苦手な人が書いた記事なのでノイズ量に関する今回の解釈が正しいとは限りません。
③しばしば誤解されがちなのですが、ノイズはバラツキこそが問題なのであって強度自体はあまり実害がないと解釈しています。
バラツキが少ないノイズはダークファイルやバイアスファイルの減算で殲滅できちゃうからです。
④前々回の輝度分布グラフの一部には先述のSharpCapの輝度データの丸め効果による換算ミスがありましたが、まだ差し替えていません。
⑤数式処理は超苦手なので厳密な議論はご容赦ください。ホントに無理なんです(泣)。