1. IIR フィルタ

2. ローパスフィルタの設計


演習3-1 (個人): (1次) IIR ローパスフィルタを使ってサンプル音声から低周波成分を取り除いてみましょう。

サンプル音声(trumpet_22k_mono.wav)をダウンロードし、演習フォルダに移動して「 DF_3_1.wav 」に名前を変更します。
Jupyter Notebook を起動します。
新規ノートブックを作って「DF_3_1」に名前を変更します。
一番上のセルにテンプレートの内容をコピーします。
穴埋め問題を解いて下さい。カットオフ周波数を $f_c$ = 1000 [Hz]、IIRフィルタ次数を $\textrm{L} = 1$ とします。
実行するとフィルタリング前後のスペクトログラムと「 DF_3_1_out.wav 」という Wave形式音声ファイルが出来ます。
フィルタリング前後の Wave ファイルを聴き比べたり、スペクトログラムを比較したりして、高周波成分が減衰していることを確認して下さい。
指定場所に「ソースコード」、「フィルタリング前のスペクトログラム」、「フィルタリング後の音声のスペクトログラム画像」を貼りつけて下さい。


演習3-2 (個人):(1次) RC アナログ」ローパスフィルタのインパルス応答のグラフを描いてみましょう。

カットオフ周波数は $f_c = 1000$ [Hz] とします。
表計算ソフトを起動し、1行目の最初の列に「fc」と書き、その隣の列に「1000」と入力して下さい。
更にその隣の列に「wc」と書き、その隣の列に計算式を入力してカットオフ角周波数を求めます。
2行目の最初の列に「t」、次の列に「h(t)」と入力します。
3行目の最初の列から各 $t$ の値を 0 [秒] から約 0.01 [秒] まで $1/22050$ [秒] 間隔で オートフィルを使って入力します。
次の列に各 $h(t)$ の値をオートフィルを使って入力します。
グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_3_2」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをして下さい。
指定場所に「インパルス応答のグラフ」を貼り付けて下さい。


演習3-3 (個人): (1次) IIR ローパスフィルタのインパルス応答のグラフを描いてみましょう。

Jupyter Notebook を起動します。
新規ノートブックを作って「DF_3_3」に名前を変更します。
一番上のセルにテンプレートの内容をコピーします。
穴埋め問題を解いて下さい。各パラメータ値は演習 3-1 と同じです。
実行するとCSVファイル(DF_3_3and8.csv)が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に「i」、次の列の先頭に「h[i]」と入力します。
グラフを挿入します。グラフの種類は散布図、点のみ、線なしとします。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_3_3」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをし、演習3-2で求めたRC アナログローパスフィルタのインパルス応答とほぼ同じ形になっている事を確認して下さい。

※ ゲイン調整のためサンプリングした後にサンプリング間隔 $\tau = 1/22050$ [秒]を掛けているので縦軸の値は一致しません。

指定場所に「インパルス応答のグラフ」を貼り付けて下さい。


演習3-4 (個人): (1次) IIR ローパスフィルタの振幅特性(近似解)のグラフを描いてみましょう。

カットオフ周波数は $f_c = 1000$ [Hz] とします。
表計算ソフトを起動し、1行目の最初の列に「fc」と書き、その隣の列に「1000」と入力して下さい。
更にその隣の列に「wc」と書き、その隣の列に計算式を入力してカットオフ角周波数を求めます。
2行目の最初の列に「f」、次の列に「|H(f)|」と入力します。

※ 横軸の単位は角周波数 [rad/秒] にすることも多いですが、今回は分かりやすく周波数 [Hz]にしています。

3行目の最初の列から各 $f$ の値を 0 [Hz] から 11000 [hz] まで 100 [Hz] 間隔で オートフィルを使って入力します。
次の列に各 $|H(f)|$ の値をオートフィルを使って入力します。

※ $w = 2\pi\cdot f$ であることに注意

グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
カットオフ周波数 $f_c$ [Hz] 前後で減衰していることを確認します。

※ 理論的には $f_c$ [Hz] において $|H(f_c)| = 1/\sqrt{2} \approx 0.7071$ となります(デシベルに変換すると $20 \cdot \log_{10} 1/\sqrt{2} = -3.01$ より約 3 [dB] 減衰)

「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_3_4」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをして下さい。
各自が指定場所に「振幅特性グラフ」を貼り付けて下さい。


演習3-5 (個人): (1次) IIR ローパスフィルタの位相特性(近似解)のグラフを描いてみましょう。

「DF_3_4」を「DF_3_5」にコピーして表計算ソフトで開きます。
2行目の「|H(f)|」を「∠H(f)」に変更し、その下のセルから各 $\angle H(f)$ の値をオートフィルを使って入力します。

※ $w = 2\pi\cdot f$ であることに注意
※ $\tan^{-1} (b/a)$ は表計算ソフトでは atan2(a,b) で計算できます。

カットオフ周波数 fc [Hz] 前後での位相変化を確認します。

※ 理論的には $f_c$ [Hz] において $∠H(f_c) = -\pi/4 \approx -0.7853$ [rad] となります(つまり 45 度=周期の1/8だけ遅れる)。

シートを上書き保存します。
チーム内で答え合わせをして下さい。
各自が指定場所に「位相特性のグラフ」を貼り付けて下さい。


3. ハイパスフィルタの設計


演習3-6 (個人): (1次) IIR ハイパスフィルタを使ってサンプル音声から高周波成分を取り除いてみましょう。

新規ノートブックを作って「DF_3_6」に名前を変更します。
サンプル音声として演習3-1で使用した「 DF_3_1.wav 」を用います。
一番上のセルにテンプレートの内容をコピーします。
穴埋め問題を解いて下さい。カットオフ周波数を $f_c$ = 3000 [Hz]、IIRフィルタ次数を $\textrm{L} = 1$ とします。※ カットオフ周波数が演習 3-1 と異なるので注意
実行するとフィルタリング前後のスペクトログラムと「 DF_3_6_out.wav 」という Wave形式音声ファイルが出来ます。
フィルタリング前後の Wave ファイルを聴き比べたり、スペクトログラムを比較したりして、低周波成分が減衰していることを確認して下さい。
指定場所に「ソースコード」、「フィルタリング前のスペクトログラム」、「フィルタリング後の音声のスペクトログラム画像」を貼りつけて下さい。


演習3-7 (個人):(1次) CR アナログ」ハイパスフィルタのインパルス応答のグラフを描いてみましょう。

「DF_3_2」を「DF_3_7」にコピーして表計算ソフトで開きます。
カットオフ周波数を $f_c = 3000$ [Hz] とします。 「fc」の値を「3000」に変更して下さい。
各 $h(t)$ の値をオートフィルを使って入力します。ただし $\delta(0) = 22050$ とします(実際には $\delta(0) = \infty$ )
シートを上書き保存します。
チーム内で答え合わせをして下さい。
各自が指定場所に「インパルス応答のグラフ」を貼り付けて下さい。


演習3-8 (個人): (1次) IIR ハイパスフィルタのインパルス応答のグラフを描いてみましょう。

ノートブック「DF_3_3」を「DF_3_8」にコピーします
「DF_3_8」を開き、(1次) IIR ハイパスフィルタ向けのコードに修正します。各パラメータ値は演習 3-6 と同じです(※ $f_c$ の値が違うので注意)。
実行するとCSVファイル(DF_3_3and8.csv))が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に「i」、次の列の先頭に「h[i]」と入力します。
グラフを挿入します。グラフの種類は散布図、点のみ、線なしとします。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_3_8」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをし、CR アナログハイパスフィルタのインパルス応答とほぼ同じ形になっている事を確認して下さい。

※ ゲイン調整のためサンプリングした後にサンプリング間隔 $\tau = 1/22050$ [秒]を掛けているので縦軸の値は一致しません。

指定場所に「インパルス応答のグラフ」を貼り付けて下さい。


演習3-9 (個人):(1次) IIR ハイパスフィルタの振幅特性(近似解)のグラフを描いてみましょう。

「DF_3_4」を「DF_3_9」にコピーして表計算ソフトで開きます。
カットオフ周波数を $f_c = 3000$ [Hz] とします。 「fc」の値を「3000」に変更して下さい。
各 $|H(f)|$ の値をオートフィルを使って入力します。

※ $w = 2\pi\cdot f$ であることに注意

カットオフ周波数 $f_c$ [Hz] 前後で減衰していることを確認します。

※ 理論的には $f_c$ [Hz] において $|H(f_c)| = 1/\sqrt{2} \approx 0.7071$ となります(デシベルに変換すると $20 \cdot \log_{10} 1/\sqrt{2} = -3.01$ より約 3 [dB] 減衰)。

シートを上書き保存します。
チーム内で答え合わせをして下さい。
各自が指定場所に「振幅特性のグラフ」を貼り付けて下さい。


演習3-10 (個人): (1次) IIR ハイパスフィルタの位相特性(近似解)のグラフを描いてみましょう。

「DF_3_5」を「DF_3_10」にコピーして表計算ソフトで開きます。
カットオフ周波数を $f_c = 3000$ [Hz] とします。 「fc」の値を「3000」に変更して下さい。
各 $\angle H(f)$ の値をオートフィルを使って入力します。

※ $w = 2\pi\cdot f$ であることに注意
※ $\tan^{-1} (b/a)$ は表計算ソフトでは atan2(a,b) で計算できます。

カットオフ周波数 $f_c$ [Hz] 前後での位相変化を確認します。

※ 理論的には $f_c$ [Hz] において $∠H(f_c) = \pi/4 \approx 0.7853$ [rad] となります(つまり 45度=周期の1/8だけ進む)。

シートを上書き保存します。
チーム内で答え合わせをして下さい。
各自が指定場所に「位相特性グラフ」を貼り付けて下さい。