目次: PC
前回の日記(2014年11月15日の日記参照)では、DA変換を理解できていなくて、いい加減な図を描いてしまったので、今日はLPCMのサンプル値から連続時間信号を生成した場合の波形を計算して描いてみようと思います。
調べたところによれば、サンプル値x[n] を離散時間フーリエ変換し、周波数領域に変換して、得られた周波数領域のうち角周波数 -π/Ts < ω < π/Tsのみを残すローパスフィルタを掛け(※)、残った周波数領域を逆フーリエ変換すると連続時間信号になるそうです。
(※)Tsはサンプリング周期、つまり何秒に1回サンプリングするかを表す記号です。
計算をすっ飛ばして結果だけ言うと、時間をTsずつずらしながら各サンプル値x[n]とsinc関数(理想的なローパスフィルタを逆フーリエ変換するとsinc関数になる)の積を取り、全て足し合わせれば連続時間信号になります。何故なのか説明できるほど理解できていませんが、ひとまずそういうモンとして計算します。

周波数1/2 fsの矩形波のLPCMサンプルデータと連続時間信号
サンプル値は-400から400で、サンプリング周期Tsは20 [s]、サンプリング周波数fsは1/20 = 0.05 [Hz] とし、0〜960 [s] までを計算しています。横軸tの単位は [s] です。
これだけだと「ふーん……?」で終わるので、わかりやすいように1個目のサンプルと、2個目のサンプルのみで、連続時間信号を計算してみます。
赤色(系列2)が1個目のサンプル、緑色(系列3)が2個目のサンプル、青色(系列1)が総和です。1/2 fsかつ、ピーク値がLPCMのサンプル値とほぼイコールのSin波が計算されるのがわかると思います。
じゃあ1/4 fsは?こうなります。

周波数1/4 fsの矩形波のLPCMサンプルデータと連続時間信号
前回の適当な図とは違い1/4 fsのSin波が出力され、ピーク値はLPCMのサンプル値を超えてしまう様子もよくわかると思います。ちなみに連続時間信号のピーク値はt=409(真ん中の山の頂点)で563.7です。
もちろん1/6 fsや1/8 fsも計算可能ですが、長くなってきたのでまた後日にでも載せます。
この記事にコメントする
目次: PC
前回はSin波を見ました(2014年10月18日の日記参照)が、今回は矩形波を見てみようと思います。
サンプリング周波数の1/2の周波数(以降、1/2 fsと書きます)の矩形波のLPCMデータを下記のように表すとします。
矩形波と書きましたが、このデータをアナログに変換しても矩形波にはなりません。下記のような22kHzのSin波になります。
私もそれほど詳しくはありませんが、標本化定理と言って、ある波形をサンプリング周波数44kHzでサンプリングした際に完全に元の波形に戻せるのは1/2 fs未満、つまり22kHzまでの周波数を持った波形です。それ以上は情報が失われ、元に戻せません。
見た目は周波数22kHzの波形に見える矩形波でも、波形の立上がり、立下りの部分に高い周波数を含んでいて、この部分が失われてしまうため、元に戻らないのです。
同じ理屈で1/4 fsの矩形波、つまり44kHzのサンプリング周波数で、11kHzの矩形波を表そうとしても、立上がり、立下りの部分が失われ、11kHzのSin波になります。LPCMデータの最大値は変わりませんが、22kHzの時より振幅が大きくなるのが面白いですね。
見た目が矩形波らしくなるのは1/6 fsか1/8 fsくらいでしょうか。つまり44kHzのサンプリング周波数で、7.4kHzか5.5kHzの矩形波を表そうとしたときです。
では、下記のLPCMデータを使ってUSB-DACで再生してみます。
fs = 44kHz/16bit, 5.5kHz矩形波
fs = 44kHz/16bit, 7.4kHz矩形波
fs = 44kHz/16bit, 11kHz矩形波
fs = 44kHz/16bit, 22kHz矩形波
fs = 48kHz/16bit, 6kHz矩形波
fs = 48kHz/16bit, 8kHz矩形波
fs = 48kHz/16bit, 12kHz矩形波
fs = 48kHz/16bit, 24kHz矩形波
fs = 96kHz/16bit, 12kHz矩形波
fs = 96kHz/16bit, 16kHz矩形波
fs = 96kHz/16bit, 24kHz矩形波
fs = 96kHz/16bit, 48kHz矩形波各種揃えましたが、訳あって、この中からサンプリング周波数44kHzのデータを使うことにします。まずは1/2 fsから。

ONKYO SE-U33GXV2の22kHz矩形波出力(fs = 44.1kHz)
綺麗なSin波です。次は1/4 fsです。

ONKYO SE-U33GXV2の11kHz矩形波出力(fs = 44.1kHz)
これも綺麗なSin波ですね。振幅が先ほどより大きいのがわかると思います。次は1/6 fsと1/8 fsです。

ONKYO SE-U33GXV2の7.4kHz矩形波出力(fs = 44.1kHz)

ONKYO SE-U33GXV2の5.5kHz矩形波出力(fs = 44.1kHz)
角の部分はまだガタガタしていますが、矩形波らしくなってきたのがわかります。
この記事にコメントする
| < | 2014 | > | ||||
| << | < | 11 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| - | - | - | - | - | - | 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 | - | - | - | - | - | - |
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: