コンテンツにスキップ

Spectrum Analyzer (スペクトラムアナライザ)

Spectrum Analyzer

概要

リアルタイムでオーディオ信号の周波数成分を分析表示するツールです。
マイク入力やライン入力された音が、どの周波数帯域でどれくらいの大きさなのかを視覚的に確認できます。
一般的なFFT(高速フーリエ変換)解析に加え、ノイズ分析に有用なPSD(パワースペクトル密度)表示や、聴感感度を考慮した重み付け(A特性/C特性)など、高度な測定機能も備えています。

操作方法

測定の開始と停止

  • Start Analysis / Stop Analysis ボタン: 測定の開始と停止を切り替えます。

グラフの読み方

  • 横軸 (Frequency): 周波数(音の高さ)を表します。右に行くほど高い音です。対数スケール(Log)で表示されます。
  • 縦軸 (Magnitude): 信号の大きさ(強さ)を表します。上に行くほど強い信号です。目盛りの単位は設定(Unit)に依存します。
  • カーソル: グラフ上にマウスカーソルを合わせると、その地点の正確な周波数とレベルが画面上部の「Cursor: ...」に表示されます。
  • Overall: 全帯域のトータルの信号レベル(実効値)が表示されます。

設定項目

基本設定

  • Mode (分析モード)

    • Spectrum: 最も一般的なモードです。各周波数のピークレベルを表示します。正弦波などの信号レベルを測るのに適しています。
    • PSD (Power Spectral Density): パワースペクトル密度を表示します。ノイズの分布を一様に評価したい場合に使用します。単位は /√Hz/√Hz となります。
    • Cross Spectrum: LチャンネルとRチャンネルの相関成分を表示します(高度な設定)。
  • Channel (チャンネル)

    • Left / Right: 指定した片方のチャンネルのみを表示します。
    • Average: 左右の平均を表示します。
    • Dual: 左右のチャンネルを同時にグラフ表示します(Left=緑、Right=赤)。
  • FFT Size (周波数分解能)

    • 分析に使用するサンプル数を指定します。
    • 大きい値 (例: 131072, 1M): 周波数の解像度が高くなり、密集したピークを見分けやすくなりますが、時間方向の反応速度は遅くなります。
    • 小さい値 (例: 1024, 4096): 周波数の解像度は低くなりますが、時間方向の反応速度が速くなり、動きの速い音に追従しやすくなります。
    • 通常は 4096 ~ 16384 程度が、解像度と反応速度のバランスが良くおすすめです。
  • Window (窓関数)

    • FFT分析の際に波形の両端を滑らかに減衰させ、不連続な切り出しによる誤差(スペクトル漏れ)を抑えるための処理です。
    • hanning (ハン窓): 最も汎用的で一般的な窓関数です。迷ったらこれを選んでください。
    • rect (矩形窓): 窓関数をかけません。過渡的な信号や、周期が完全に一致している信号以外では誤差が大きくなります。
    • Multitaper: 後述のマルチテーパー機能をONにすると、自動的に専用の窓関数が適用されます。
  • Weighting (周波数重み付け)

    • Z: 重み付けなし(フラット)。物理的に正確な電圧や音圧を測る場合に使用します。
    • A: A特性。人間の耳の感度特性(中音域に敏感で、低音・高音に鈍感)に合わせたフィルタです。騒音レベル(騒音計)の測定などで標準的に使用されます。
    • C: C特性。A特性よりも平坦に近いですが、人間の耳では聞こえない超低音・超高音をカットした特性です。大音量のライブハウスなどで体で感じるような音圧を評価するのによく使われます。
  • Unit (表示単位)

    • dBFS: デジタルフルスケールを0dBとした相対値です。オーディオインターフェースの入力限界に対するレベルです。
    • dBV: 1Vを0dBとした電圧レベルです(キャリブレーション設定が必要です)。
    • dB SPL: 音圧レベルです(マイクの感度補正等のキャリブレーション設定が必要です。未校正の場合は自動的にdBFSにフォールバックします)。

詳細設定

  • Smoothing (スムージング)

    • グラフのギザギザを滑らかにして見やすくします。
    • 1/3 Octave などは、オーディオ分析でよく使われる表示形式です。
  • Avg (アベレージング)

    • 時間方向の平均化処理の強さを指定します。
    • スライダーを右にするほどグラフの動きがゆっくりになり、ノイズ成分の変動が抑えられて見やすくなります。
  • Multitaper (マルチテーパー)

    • ONにすると、複数の窓関数を使用してスペクトル推定の分散(ばらつき)を減らします。ノイズの解析において、より滑らかで信頼性の高い結果が得られる場合があります。ONの場合、Window設定は無効化されます。
  • Peak Hold (ピークホールド)

    • 過去の最大レベルを赤い点線で保持し続けます。
    • 一瞬だけ発生した大きな音を確認したい場合に便利です。
    • Clear Peakボタン: 保持されているピーク表示をリセットします。
  • RTA Mode (RTAモード)

    • グラフの表示を標準の連続線プロットから、リアルタイムアナライザ(RTA)の棒グラフ形式に変更します。
    • RTAモードを有効にすると、選択した Smoothing (スムージング) の解像度(例:1/3 Octave)に従って周波数スペクトルが集計され、離散的な縦棒として視覚化されます。これにより、より伝統的な音響測定の表示が得られます。

使用例

ここでは、スペクトラムアナライザの具体的な活用シーンをいくつか紹介します。

マイク入力の確認

マイクが正しく音を拾っているか確認する基本的な使い方です。

  1. Start Analysis ボタンを押して測定を開始します。
  2. Mode は Spectrum、Channel は Average または Left を選択します。
  3. マイクに向かって声を出すか、手を叩いてみます。
  4. グラフが反応して形が変われば、入力は正常です。
  5. Peak Hold をONにして手を叩くと、一瞬の衝撃音がどの周波数を含んでいるか(パルス音のスペクトル)が赤い線で残り、観察しやすくなります。

ノイズフロアの測定

無音時のノイズレベル(ノイズフロア)を確認します。S/N比の改善や電源ノイズの発見に役立ちます。

  1. 入力機器(マイクやライン入力)を接続し、音を出さない状態にします。
  2. Mode を PSD に変更します。ノイズの分布を見るにはPSDが適しています。
  3. Avg (アベレージング) スライダーを 50% ~ 90% 程度まで上げます。波形の暴れが収まり、平均的なノイズのラインが見えてきます。
  4. 特定の周波数(例えば50Hzや60Hz)に鋭いピークがある場合、電源ハムノイズが混入している可能性があります。
  5. Smoothing を 1/3 Octave にすると、全体的なノイズの傾向(ホワイトノイズ寄りか、ピンクノイズ寄りかなど)が把握しやすくなります。

スピーカーの簡易周波数特性チェック

テスト信号(ピンクノイズなど)を再生し、スピーカーの出力をマイクで拾うことで、周波数特性を簡易的にチェックできます。

  1. 別途、Pink Noise (ピンクノイズ) の音源を用意して再生します。
  2. 測定用マイクをスピーカーの前に設置します。
  3. Mode を Spectrum、FFT Size を 16384 程度に設定します。
  4. Avg を高め(90%以上)に設定します。
  5. Weighting を Z (フラット) にします。
  6. グラフが平坦に近づけば、スピーカーの特性はフラットです。低域や高域が下がっている場合、そのスピーカーの再生帯域の限界です。
    • 部屋の反響音も拾うため、厳密な測定ではありませんが、傾向を知るのに有効です。

自動ピークマーカー

グラフ右上の ピーク: OFF から設定を開きます。既存の解析設定とPeak Holdは独立して動作します。

  • OFF が初期状態です。ピーク検出を行いません。マーカー描画オブジェクトは 初回使用時にのみ生成し、以後は再利用します。
  • 表示スペクトルのピーク は、平滑化・画面ピクセル単位の集約後の曲線、または RTA帯域から検出します。同一周波数にある包絡線の最小値・最大値は最大値へ集約します。 周波数は表示ビンや帯域の中心であり、ズームやリサイズで変化することがあります。
  • Rawスペクトルのピーク は、表示の平滑化・間引き前のFFTビンから検出します。 解析モード、チャンネル、平均化、校正、周波数重み付けは引き継ぎます。 未処理の音声を意味しません。平滑化された曲線やRTAバーより上に表示される場合が あります。ビン間の補間は行わず、測定精度の向上を保証する機能ではありません。

設定ボタンには検出対象とレベル単位を表示します。重み付けと、PSD時の /√Hz も 明示します。各マーカーにはHz単位の周波数とレベルを表示し、Dual時は左右を識別します。 最小間隔はチャンネルごとに適用します。

  • 局所プロミネンス(dB)は、周囲の谷に対するピークの突出量です。 大きなFFTでも処理を抑えるため、ピークを中心とする最大2049点で評価します。 幅の広いピークでは、遠くのノイズフロアとの差より小さな値になることがあります。
  • 最小間隔(Hz)は、近接する候補のうち強いピークを残すための間隔です。 対数軸の表示倍率には依存しません。
  • ノイズフロア は表示単位での絶対的な下限値です。ノイズの自動推定値ではありません。 単位変更時は同じ数値を新しい単位で解釈するため、設定画面で下限値を見直してください。

初期値はプロミネンス6 dB、最小間隔100 Hz、ノイズフロア−90です。 設定はウィジェットが存在する間保持されます。OKで次の測定フレームから適用し、 キャンセルでは変更しません。表示範囲内の強いピークを左右合計で最大5件表示し、 条件が変わらない間の検出更新は毎秒5回までに制限します。Rawモードでは最大の4M FFTで 約毎秒1回まで頻度を下げます。スペクトル自体の更新頻度は変えません。条件や表示範囲の変更時は 古いマーカーを消去します。重なるラベルやグラフ外にはみ出すラベルは省略し、 ピーク位置の印は残します。平坦な波形、端点、非有限値はピークとして報告しません。 音声コールバックへの追加処理やフレーム履歴の蓄積はありません。 停止時は最後の表示を保持し、再開や解析条件変更時は次の測定フレームまで消去します。 マーカーは表示補助であり、スペクトルの書き出しデータには含まれません。