1. FIRフィルタ

2. 移動平均フィルタ


演習2-1 (個人): 移動平均フィルタを使ってサンプル音声から高周波成分を取り除いてみましょう。

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


演習2-2 (個人): 移動平均フィルタのインパルス応答のグラフを描いてみましょう。

パラメータ値は $\textrm{L} = 31$ とします。
表計算ソフトを起動し、一行目の最初の列の先頭に「i」、次の列の先頭に「h[i]」と入力します。
最初の列に $i = 0,1,\cdots,\textrm{L}-1$ をオートフィルを使って入力します。
次の列に各 $h[i]$ の値をオートフィルを使って入力します。
グラフを挿入します。グラフの種類は散布図、点のみ、線なしとします。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_2_2」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをして下さい。
指定場所に「インパルス応答のグラフ」を貼り付けて下さい。


演習2-3 (個人): 移動平均フィルタの振幅特性のグラフを描いてみましょう。

新規ノートブックを作って「DF_2_3」に名前を変更します。
一番上のセルにテンプレートの内容をコピーします。
穴埋め問題を解いて下さい。各パラメータ値は演習 2-1 と同じです。
実行するとCSVファイル(DF_2_3and4.csv)が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に 「f」、次の列の先頭に「|H(f)|」 と入力します。

※ グラフの横軸の単位は角周波数(rad/秒)では無く、分かりやすい様に周波数[Hz]にしています。

グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
移動平均フィルタがローパス特性であることを確認します。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_2_3_L31」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをして下さい。
指定場所に「振幅特性のグラフ」を貼り付けて下さい。


演習2-4 (個人): $\textrm{L}$ の値を変えた時に振幅特性がどう変化するかグラフを描いて確認してみましょう。

ノートブック「DF_2_3」を「DF_2_4」にコピーします。
「DF_2_4」を開き $\textrm{L} = 3$ に変更します。
実行するとCSVファイル(DF_2_3and4.csv)が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に「f」、次の列の先頭に「|H(f)|」と入力します。
グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
減衰が緩やかになっていることを確認します。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_2_4_L3」として下さい(拡張子は使用する表計算ソフトによって変わります)。
同様に、$\textrm{L} = 127$ のグラフも描いて「DF_2_4_L127」で保存して下さい(拡張子は使用する表計算ソフトによって変わります)。また減衰が急になっていることも確認します。
チーム内で答え合わせをして下さい。
指定場所に「振幅特性のグラフ(L=3の場合)」および「振幅特性のグラフ(L=127の場合)」を貼り付けて下さい。


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

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

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


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

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


演習2-7 (個人): FIR ローパスフィルタの振幅特性のグラフを描いてみましょう。

新規ノートブックを作って「DF_2_7」に名前を変更します。
一番上のセルにテンプレートの内容をコピーします。
穴埋め問題を解いて下さい。各パラメータ値は演習 2-5 と同じです。
実行するとCSVファイル(DF_2_7and8and11.csv)が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に「f」、次の列の先頭に「|H(f)|」と入力します。

※ グラフの横軸の単位は角周波数(rad/秒)では無く、分かりやすい様に周波数[Hz]にしています。

グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
カットオフ周波数 $f_c$ [Hz] 前後で減衰していることを確認します。またギブズ現象が起きていることも確認します。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_2_7_L63」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをして下さい。
指定場所に「振幅特性のグラフ」を貼り付けて下さい。


演習2-8 (個人): $\textrm{L}$ の値を変えた時に振幅特性がどう変化するかグラフを描いて確認してみましょう。

ノートブック「DF_2_7」を「DF_2_8」にコピーします。
「DF_2_8」を開き $\textrm{L} = 127$ に変更します。
実行するとCSVファイル(DF_2_7and8and11.csv)が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に「f」、次の列の先頭に「|H(f)|」 と入力します。
グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
カットオフ周波数 $f_c$ [Hz] 前後で減衰していることを確認します。またギブズ現象が演習 2-7 に比べて控えめになっていることを確認します。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_2_8_L127」として下さい(拡張子は使用する表計算ソフトによって変わります)。
同様に、$\textrm{L} = 511$ のグラフも描いて「DF_2_8_L511」で保存して下さい(拡張子は使用する表計算ソフトによって変わります)。またギブズ現象が更に控えめになっていることを確認します。
チーム内で答え合わせをして下さい。
指定場所に「振幅特性のグラフ(L=127場合)」及び「振幅特性のグラフ(L=511の場合)」を貼り付けて下さい。


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

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

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


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

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


演習2-11 (個人): FIR ハイパスフィルタの振幅特性のグラフを描いてみましょう。

ノートブック「DF_2_7」を「DF_2_11」にコピーします。
「DF_2_11」を開き FIR ハイパスフィルター向けのコードに修正します。各パラメータ値は演習 2-9 と同じです。(※ $f_c$ の値が違うので注意、L の値が 63 になってるか確認)。
実行するとCSVファイル(DF_2_7and8and11.csv)が出力されます。
CSV ファイルを表計算ソフトで開き、一行目に空行を挿入し、最初の列の先頭に「f」、次の列の先頭に「|H(f)|」と入力します。

※ グラフの横軸の単位は角周波数(rad/秒)では無く、分かりやすい様に周波数[Hz]にしています。

グラフを挿入します。グラフの種類は散布図、点なし、線あり、平滑化なしとします。
0 に近かったゲインがカットオフ周波数 $f_c$ [Hz] 前後で増幅していることを確認します。またギブズ現象が起きていることも確認します。
「名前を付けて保存」でシートを表計算形式で保存します。ファイル名は「DF_2_11_L63」として下さい(拡張子は使用する表計算ソフトによる)。
チーム内で答え合わせをして下さい。
指定場所に「振幅特性のグラフ」を貼り付けて下さい。