広告 ハイレゾレコーディング

ダウン(又はアップ)サンプリングされた音声ファイルの上限・再生周波数は変換アプリによってバラツく?

スポンサーリンク

 

 

blank

 

例えばハイレゾ音源をCDフォーマットに落とす時やAAC変換する時にサウンドアプリでダウンサンプリングを行うと再生できる上限周波数がサンプルレート(fs)のナイキスト周波数(fs/2)より低下し、更にアプリ毎にバラツくのをご存知ですか? (上のグラフ参照:ブルーラインがAudacity グリーンラインApple Digital Mastersドロップレットツールに付属するサンプルレートコンバータ

これは、ウィキペディアの「サンプリング周波数変換」によれば、アップやダウンサンプリングの時にエイリアシングを防止するためのフィルターを通すことが必須で、例えばハイレゾ音源をCD(fs=44.1khz)に落すと本来再生出来るナイキスト周波数 (= fs/2 = 22.05khz)が、このエイリアシング防止フィルタの特性に従って再生できる周波数が低下すると考えられます。

確かに今思い起こせば、サンプルレート変換を伴うフォーマット変換は、アプリによって再生できる上限周波にバラツキがあることを経験していました。 これは、アプリによってエイリアシング防止フィルタの特性に違いがあると考えられ、このためにバラツキが生じたものではないか?と思われます。

そこで「Audacity」 と 「Apple Digital Masters に付属するサンプルレートコンバータ」について、ハイレゾのピンクノイズ音源を元にサンプリング周波数変換した時、再生できる上限周波数(=Cut -Off周波数:-3db低下する点)がナイキスト周波数よりどの程度低下するか?をチェックしてみました。

なお、この程度の高域減衰は聴感上問題となるレベルでは無いと思われるもののハイレゾからCDへ変換する際など 注意点として、知っておくことは有用では無いかと思います。

 

UP DOWN用フィルタについて

 

ダウンサンプリングに伴う上限周波数の変化をスペクトルで見る

ピンクノイズをダウンサンプリングすると上限周波数がどう変化するかAudacityのスペクトルを使えば簡単に確かめられます。 以下はその手順 

  1. WindowsソフトのWaveGeneを使ってピンクノイズ(-20db 加算)を生成しwavファイル化(24bit 96khz)します。 WaveGeneの設定画像の赤枠部分を参照してください。
  2. このファイルをAudacityに取り込みます。 取り込んだトラックを選択して、トラック > 再サンプリング 「48khz」を選んでダウンサンプリングします。
  3. 再びこのトラックを選択して 解析 > スペクトル表示 を選択すると下のスペクトル画面が表示されます。 このスペクトル画面の横軸の最大値は24khz(ナイキスト周波数)になっています。

ダウンサンプリング後のスペクトルをみると、カーソルで示される22,700hz付近からレベルが急減していることが分かります。 この原因は、Audacityで再サンプリング(48khzにダウンサンプリング)したので、エイリアシング防止フィルタが介在した結果、本来のナイキスト周波数( = 24khz)より再生できる上限周波数が低下しエイリアシング防止フィルタの特性が現れた結果と考えられます。 一方の Before 96khz Pink noise は、ナイキスト周波数(48khz)の近くまでピンクノイズ成分が見られます。

48khzにダウンサンプリング後

blank

Before 96khz Pink noise

blank

アップサンプリングに伴う上限周波数の変化をスペクトルで見る

今度は、上と同じ手順で、fs=48khzのピンクノイズをAudacityに取り込み、96khz にアップサンプリングするとAudacityのスペクトルは、以下の様になります。

アップサンプリング後のスペクトルをみると、カーソルで示される22.7khz付近からレベルが急減していることが分かります。 この原因は、Audacityで再サンプリング(96khzにアップサンプリング)したので、エイリアシング防止フィルタが介在した結果、アップサンプリング前のナイキスト周波数( = 24khz)以下の成分が、アップサンプリングしたことで、エイリアシング防止フィルタの影響でその上限周波数成分が低下した結果と考えられます。 一方の Before 48khz Pink noise は、ナイキスト周波数(24khz)の近くまでピンクノイズ成分が見られます。

96khzにアップサンプリング後

blank

Before 48khz Pink noise

blank

 

オペレータ
オペレータ
この方法では、再生できる概略の上限周波数は分かりますが、正確なCut Off周波数を測定出来ませんので、次の方法でダウン又はアップサンプリングした時の周波数特性をグラフ化し、-3db低下する点のCut Off 周波数を測定したいと思います。

 

ピンクノイズでサンプルレート変換後の周波数特性をグラフ化しCut Off 周波数を求める(手順)

今回の実験では、実際のリアル音源に近いスペクトル(周波数が高くなるとレベルが下がる)ピンクノイズ(1/fノイズ)を使用しましたが、ホワイトノイズを使ってもOKです。

ここでは、お手本となると思われるApple Digital Masters(以下ADMに略します)ドロップレットツールに付属するサンプルレートコンバータ(3種類)を使った手順です。

blank

例えば、夫々のサンプルレートコンバータ(3種類)は、48khzでAAC変換されたファイルを「Audio to WAVE 96K Droplet.app」にドロップすると、96khzにアップサンプリングされたwavファイルに変換されます。 (このツールは、デコーダの違いを廃する目的で作られたそうです。)

ADMのサンプルレートコンバータ(3種類)

blank

ADMドロップレットツール

  1. Audio to WAVE 44.1K Droplet.app:f
    s=44.1khz wavに変換
  2. Audio to WAVE 48K Droplet.app:
    fs=48khz wavに変換
  3. Audio to WAVE 96K Droplet.app:
    fs=96khz wavに変換

このツールは、Apple Digital Mastersの紹介記事からダウンロードできます。

 

サンプルレート変換後のCut Off 周波数を求める手順


  • step.1 元になるピンクノイズファイルを作成する

    ここでは、WindowsソフトのWaveGeneを使っってピンクノイズ(-20db 加算)を生成し「96khz Pink .wav」としてwavファイル(24bit 96khz)を作成します。 


  • step.2 ダウンサンプリングとアップサンプリングを行う

    「Original 96khz Pink.wav」を、[2] Audio to WAVE 48K Droplet.app にドロップして、ダウンサンプリングすると、ファイル名が「96khz Pink SRC to 48k.wav」として自動保存されます。  更に、このファイルを[3] Audio to WAVE 96K Droplet.app にドロップして、96khzにアップサンプリングすると、「96khz Pink SRC to 48k UPSAMPLED.wav」として自動保存されます。

    ダウンとアップサンプリングする意味は、次に述べる「Audacityで周波数解析する」際に元のピンクノイズのサンプリング周波数を合わせるためです。 ダウン・アップサンプリングすることで、2回エイリアシング防止フィルタを通過することになりますが、夫々のフィルター特性が略同じと考えられことと、特性に差異があったとしても、Cut Off周波数の低い方が有効になり一度にダウンとアップサンプリング用のフィルタ特性をテストすることができると考えたからです。


  • step.3 Audacityで周波数分析する

    1) 「96khz Pink .wav」とダウン・アップサンプリングされた「96khz Pink SRC to 48k UPSAMPLED.wav」をAudacityに取り込みます。

    2) 「96khz Pink .wav」のトラックを選択して 解析 > スペクトル表示 を選択するとスペクトル画面が表示されます。 「書出し」ボタンを押すと周波数とレベル(db) データがテキストファイルとして書き出されます。 適当な名前でテキストファイル(ここでは、スペクトル_96khz Pink.tex)を保存します。

    スペクトル表示画面

    blank

    書き出されたテキストファイルの内容

    blank

    3)同じ様に、「96khz Pink SRC to 48k UPSAMPLED.wav」のトラックを選択して、スペクトル表示画面から「書出し」ボタンを押して、ここでは、スペクトル_96khz Pink SRC to 48k UPSAMPLED.texとして保存します。


  • step.4 Numbers(又はEXCEL)でグラフ化とCut Off周波数を求める

    Numbers を用いたグラフ化の説明です。 下のNumbers画面を参照しながら、以下説明をお読みください。(少々分かり難いと思いますが、慣れるとそれ程でもありません)

    1)Numbersの ファイル > 新規 を選択します。 スペクトル_96khz Pink.tex を開いて、編集 > 全てを選択 した後コピーします。 Numbers 画面で、A列の1行に 周波数とレベル(db) データをペーストします。

    2)スペクトル_96khz Pink SRC to 48k UPSAMPLED.tex を開いて、編集 > 全てを選択 した後コピーします。 Numbers 画面で、C列の1行に周波数とレベル(db) データをペーストします。

    3)周波数の列がダブっていますので、C列を削除を行います。 B列の先頭行を A(dB) 、 C列の先頭行を B(dB) と記入します。

    4)A列(周波数)全てを選択コピーして、E列にペーストします。 F列の2行に オリジナルに対するサンプルレート変換後の絶対誤差を計算するために、計算式 C2−B2 を入力して このセルをコピーしておきます。 こんどは、F列全部を選択して、ペーストしますと、F列の全ての行が絶対誤差の計算式  C列ーB列 になります。 F列の先頭行に B-A (db) を記入します。

    5)EとF列を全選択して、グラフの散布図を選択すると 、周波数に対するサンプルレート変換後の絶対誤差(=周波数特性)グラフが表示されます。 必要に応じてグラフのスタイルを変更して判り易いデザインに編集します。

    6)最後に、Cut Off周波数 を求めるため、にB-A(db)列 の中で-3dbに最も近い値に対する周波数を検索します。 
    Numbersの整理タブ をクリックして、 フィルター > フィルターの追加 から B-A(db) を選び、ルール 数字 の 数値以下 で -2 と入力すると 表に -2 以下の数値のみ現れますので、この中で、-3  に最も近い周波数に対応する周波数がCut Off周波数 になります。
    この結果は、-3.150681db で 23,707hz でした。

    Numbers画面

    blank

    周波数 vs サンプルレート変換後の絶対誤差(F特)

    blank


以上の手順で「Audacity」と「ADMのサンプルレートコンバータ Tool」のCut Off周波数を求めたグラフが以下になります。(このページの先頭にあるグラフと同じものです)

blank

このグラフから分かること

  • 96khzから44.1khzにダウンサンプリングした場合、ナイキスト周波数(22.05khz)に対する差をとると、ADM Toolの場合、▲271hzに低下し、Audacityの場合、▲1,097hz の低下が見られる。
  • 96khzから48khzにダウンサンプリングした場合、ナイキスト周波数(24khz)に対する差をとると、ADM Toolの場合、▲293hzに低下し、Audacityの場合、▲1,191hz の低下が見られる。
  • 同じアプリの場合、以上の▲周波数は、ナイキスト周波数の割合(24khz/22.05khz)に略比例している。
  • 使用するサウンドアプリにより、サンプルレートコンバータのエイリアシング防止フィルタの特性に違いがあり、再生できる上限周波数に差異が生じる。(フィルター特性のバラツキ)
  • ADM Tool(グリーンの線)が、フィルター特性が急峻で再生できるCut Off周波数もナイキスト周波数(fc)に接近しておりサンプルレートコンバータとしての性能はXLDより優れていると思われる。

 

AAC変換した時のCut Off周波数を調べてみました。

今度は、96khz ピンクノイズを使用して、各種AAC変換アプリのCut Off周波数を調べてみました。 通常ハイレゾ音源からのAAC変換は48khz(又は44.1khz)にダウンサンプリングされますので、夫々のアプリに内包するエイリアシング防止フィルタの特性が分かると思います。

 テスト対象のAAC変換アプリと設定オプション

AAC変換アプリ サンプルレート ビットレート 設定モード
AFconvert 48khz 320kbps CBR
blank 参照記事:
「その3:Apple社 afconvertのコマンドラインを使う」
XLD
48khz 320kbps CBR
blank 参照記事:
「XLDコマンドライン組込Automator」
FFmpeg 48khz 320kbps CBR
blank 参照記事:
「FFmpegコマンドライン組込Automator」
Apple Digital Masters 44.1khz 256kbps CBR
blank 参照記事:
「Apple Digital MastersのAAC音質」

(テスト手順)

  1. AAC変換アプリで96khz ピンクノイズをAAC変換
  2. AAC変換したファイルをサンプルレートコンバータとしての性能が上位の ADM Tool(Audio to WAVE 96K Droplet.app)で96khzにアップサンプリングする。 これは、Audacityで周波数分析する際に、元のピンクノイズのサンプリング周波数に合わせるため。
  3. 元ファイルの96khz ピンクノイズと96khzにアップサンプリングしたAACをAudacityに取り込み、スペクトルデータテキストデータを書き出す。
  4. テキストデータをNumbersに取込み、元の96khz ピンクノイズとAAC変換後の絶対誤差を算出してグラフ化とCut Off周波数を求める。

blank

サンプルレート 48khz(fc=24khz):AAC変換後のCut Off 周波数

  1. AFconvert:23.707khz (▲293hz)
    Audio to WAVE 96K Droplet.appと同等
  2. XLD:22.805khz (▲1,195hz)
  3. FFmpeg:22.424khz (▲1,576hz)

サンプルレート:44.1khz(fc=22.05khz):AAC変換後のCut Off 周波数

  1. Apple Digital Masters:21.779khz (▲271hz)

(注記) ▲周波数は、ナイキスト周波数から低下した周波数を示します。

blank

 

この実験を通して、AFconvertに内包するサンプルレートコンバータの機能がADM Toolと同等で優秀であることが分かりましたので、ADM Toolに無い、192Khz用の 「Audio to WAVE 192K Droplet.app」モドキ次回作成できたらと思います。作成しました。(2021/10/24)

 

 

以上の様に、音声ファイルをダウン(又はアップ)サンプリングすると、再生できる上限周波数はナイキスト周波数より低下し、サウンドアプリでバラツキがあることも分かりました。 Cut Off 周波数の求め方について、少々自己流の点もあり、何か問題あればご指摘ください。

 

スポンサーリンク

 

スポンサーリンク

 

t