ノイズ源トランジスタの候補について以前の記事に書いたのですが、
https://gaje.jp/2014/01/14/2915/
廃止品となってしまった 2SC3311 の在庫払拭がそろそろ近づいてきたので、トランジスタ選びの試験をいよいよ開始しました。
回路
Analog2.0 のノイズジェネレータ回路を使いました。
https://gaje.jp/analog20/resources/04_noise_mixer/noise_mixer_sch.svg
方法
目隠し試聴を行いました。順序をランダムに入れ替えたノイズ音ペアを聴き比べて、良いと思ったほうを答えるという方法で優劣を決める算段です。
テストに使ったスクリプトは以下から見られます。
https://github.com/naokiiwakami/listening_test/tree/007597ac18b4953d1067109a19abb1df4317ad3c
(最新: https://github.com/naokiiwakami/listening_test)
テスト音の生成
各候補について、以下の方法でテストサンプルを作りました。
- ノイズジェネレータの Q1 をさしかえる
- 44.1 kHz 16 bit PCM にて録音
- 音を4秒に切る
- レベルを -18 dB に調整する
入力サンプルリストの作成
候補トランジスタの全ての組み合わせを作り、A-B, B-A 両方の順序の対を作ったあと、順番をランダムに入れ替えます。これで試験の入力ファイルができあがり。
実施
wav ファイルを以下のような手順で再生するスクリプトを書きました。
- 1 kHz のマーカー音で比較開始を通知
- 1 秒スリープ
- 一番目のサンプルを再生
- 1 秒スリープ
- 二番目のサンプルを再生
- 1 秒スリープ
- 1kHz のマーカー音二つで比較終了を通知
- 試聴者の回答をキーボードから受け付ける。最初の音が良いと思ったら左矢印、二番目が良いと思ったら右矢印を押す。
- 回答を結果ファイルに追加
- 2秒スリープ
- 次の比較に進む
結果
各候補ごとに、勝ちと負けの回数を集計しました。スポーツのリーグ戦と同じに、勝ち数の多いトランジスタが強いという考え方です。
以下が結果です。一つの組み合わせについて4 回の比較がされています。
$ analysis.py total_result.txt data/1_2SC828.wav 2 {'win': 18, 'lose': 14} data/2_2N5210.wav -16 {'win': 0, 'lose': 32} data/3_BC547 F.wav 4 {'win': 20, 'lose': 12} data/4_BC547 ON.wav 4 {'win': 20, 'lose': 12} data/5_2SC3311.wav 0 {'win': 16, 'lose': 16} data/6_MPSA18.wav 4 {'win': 20, 'lose': 12} data/7_2N4401.wav -1 {'win': 15, 'lose': 17} data/8_2N5087.wav 0 {'win': 16, 'lose': 16} data/9_KSD5041.wav 3 {'win': 19, 'lose': 13}
2N5210 が際立って成績が悪いです。これは、2N5210 は十分なレベルのノイズを生成することができず、ハムノイズが混じってしまっているからです。このトランジスタの結果により、全体の結果が見づらくなっています。どのみちこれでは候補外なので、結果から外して集計しなおしてみました。
$ analysis.py total_result.txt data/2_2N5210.wav data/1_2SC828.wav 0 {'win': 14, 'lose': 14} data/3_BC547 F.wav 2 {'win': 16, 'lose': 12} data/4_BC547 ON.wav 2 {'win': 16, 'lose': 12} data/5_2SC3311.wav -2 {'win': 12, 'lose': 16} data/6_MPSA18.wav 2 {'win': 16, 'lose': 12} data/7_2N4401.wav -3 {'win': 11, 'lose': 17} data/8_2N5087.wav -2 {'win': 12, 'lose': 16} data/9_KSD5041.wav 1 {'win': 15, 'lose': 13}
この結果が統計的にどれぐらい信用できるか計算していないのですが(計算方法を思案中です)、面白いのが、候補だった BC547, MPSA18, KSD5041 が一律プラスのスコアだったのに対して、比較のため入れておいた非候補の 2N5210, 2N4401, 2N5087 は全てマイナスのスコアだったことで、これは Vebo が大きなトランジスタがノイズ源として向いているのではないかという予想が当たっていることを示唆しています。