「PHILE WEBコミュニティ」サービス終了のお知らせ
assi
assi
理論?派・自作ローコストオーディオをやってますが、実はハイエンドやオカルトも好きだったりします。よろしくお願いします。

マイルーム

リビングオーディオ
リビングオーディオ
持ち家(戸建) / リビング兼用 / オーディオ・シアター兼用ルーム / 16畳~ / 防音なし / スクリーン~120型 / ~5.1ch
メイン:自作3wayマルチアンプ サブ:LinuxによるPCオーディオ 3wayマルチアンプだったり、フルレンジの時もあり。気分で変わります。
所有製品

レビュー/コメント

レビュー/コメントはありません

カレンダー

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

最新のレス

日記
製品レビュー/コメント

製品レビュー/コメントへのレスはありません

お気に入り製品

お気に入り製品はありません

日記

現実のアップサンプリング1

このエントリーをはてなブックマークに追加
2018年04月21日

なんかみなさん理想があまりお好きでは無いようで。

物理学・電気工学の「理想」はイデオロギーの理想とは違います。
現実や相手を批判するために振りかざすものではありません。

「理想」とは物事を単純化して理解しやすくするために仮定されるものです。
「理想気体」、「理想コンデンサ」、など現実とは違うから学ぶ意味がないなんて
誰も言いません。

逆に言うと単純化された「理想」さえ理解できないで複雑な現実をどうやって理解するのでしょう。
理想を知ることによって現実との違いを理解し、自分の立ち位置、向かっている方角を知ることができます。
場合によってはわざと理想とは別の方向を目指すなんてことあるかもしれません。

そんなわけでサンプリング定理から理想のアップサンプリング(整数倍)をもう一度言います。
もとの信号にfs/2以下の周波数しか含まれていない場合にfsでサンプリングした点は、sinc関数を畳み込むことによって完全に元の信号に戻ります。
したがってアップサンプリングする場合には、必要な数だけゼロを挿入してその後にsinc関数を畳みこめばよいことになります。
「sinc関数を畳み込む」を言い換えると「遮断周波数fs/2の理想ローパスフィルタをかける」ということです。

理想ローパスフィルタは通過帯域のゲインは1で周波数特性は位相を含め完全にフラット(直線位相)、阻止帯域はゲイン0、対数表示ならマイナス無限大。

これをアップサンプリングに当てはめて考えてみます。
ゼロを挿入することによって周波数領域がどうなるかというと

fs/2より下は元の信号と全く同じ。
fs/2より上はエイリアスで元の信号が折り返して繰り返されます。

理想ローパスフィルタをかけることによりfs/2以上の信号を除去してfs/2以下だけの信号成分にします。
この結果をDA変換すればアップサンプリングする前のデータをDA変換したのと「全く同じ結果」が得られます。
(高音質になったりしません)

ここまでが「理想」の話です。
これ以降はこの「理想」が前提になります。
話が前に進まなくなるのでここまでに異論のある方は別の日記で議論ということにして下さい。


ここから「現実」の話です。
今回は実際のフィルタをどうするかの前に寄り道して理想のフィルタと現実のフィルタの違いを見てみます。

無限の長さが必要になる「理想のローパスフィルタ」は実現できません。
現実には有限の長さで計算しなければなりません。

何が起こるか見てみます。
サンプリング周波数176.4kHz
カットオフ22.05kHzで512tapのFIRフィルタを考えてみます

ちなみにFIRフィルタは本来は無限に続くものを有限にぶった切ったものです。
ぶった切ったものが繰り返されるわけではなく、
「前後に無限にゼロが続いている無限の長さのフィルタ」として考えられます。
前後に無限に続いているゼロの部分は「ゼロしか出力しない」ので計算する必要がありません。


では単純にぶった切って見ます(矩形窓)。

波形はこんなです。


特性はこんなです。(赤が理想フィルタ)



何が起きているかというと

1. 阻止帯域がマイナス無限大にならない
2. 通過帯域がフラットにならない、リップルがある
3. 通過帯域と阻止帯域の間に遷移帯域がある

とりあえず窓関数をかけて改善してみます。

波形はこんなです。


前後が急にゼロになるのではなくなめらかに繋がるようになります。

特性はこんなです。


遷移帯域は広がりますが、阻止帯域の減衰量と通過帯域のフラットさが改善します。


こんな感じで適当な特性のフィルタを作っていきます。
この現実のフィルタを使ってアップサンプリングを試みていきます。

というわけで次回にようやく実際にどんなフィルタを使えばよいか考察していきます。

次回の日記→

←前回の日記

レスを書く

レスを書くにはログインする必要があります
ログインする