コラム23 ラズベリーパイで周波数特性を計算する ●ラズベリーパイとOpenCVの準備 本コラムではデジタルフィルタの周波数特性を計算するC言語ソースコードをラズベリーパイで実行します。また特性を描画するためにOpenCV(コラム16参照)というライブラリを使用します。 ■ラズベリーパイでコンパイルして実行する C言語で書かれたソースコードのコンパイルにはgcc(GNU Compiler Collection)を使用します。gccはラズベリーパイ(正確にはRasbianというOS)に含まれています。 ●ソースコードのダウンロード ラズベリーパイをネット接続してWeb Browserを開き、このZIPファイルをダウンロードします。その後Terminalを開き、Downloadsディレクトリに行って次のように解凍します。 cd ~/Downloads unzip chap2.zip するとchap2というディレクトリが出来るので次のようにデスクトップに移動します。 mv chap2 ../Desktop cd ~/Desktop/chap2 ●C言語で書かれたソースのコンパイル chap2ディレクトリにデジタルフィルタの周波数特性を計算するソースコード(firfres.c)があるので次のようにコンパイルします。(*1)(*2)(*3) gcc `pkg-config --cflags opencv` firfres.c -o firfres `pkg-config --libs opencv` (*1)コンパイル済みのバイナリはここ。属性を変える必要あり(chmod 744 filename) (*2)`pkg-config ... opencv`を囲むキャラクタ(``)はクォーテーションマークではなく、バッククオート。本サイトからコピー&ペーストすると良い。 (*3)OpenCVをインストールしないとエラーになります(コラム16にインストール手順)。 ●周波数特性の計算と描画 エラーなしで通ったら次のように実行します。 ./firfres ma7.txt ●ma7.txtの係数で周波数特性を描いてみる 図2-62のようなウインドウが現れて周波数特性が描画され、低域通過特性であることが分かります。 図2-62 7サンプル移動平均の周波数特性 ウインドウ上で何かキーを押すか、Terminal上でCtrl+Cでアプリケーションは終了します。図2-63はma7.txtの中身です。7サンプル移動平均フィルタの係数が書かれています。7つありますが全部(1/7)になっています。 図2-63 ma7.txtにその係数がある ●brf100tap.txtの係数で周波数特性を描いてみる 他のTXTファイルでも試してみましょう。図2-64はbrf100tap.txtで実行した結果です。このように急峻なカットオフ特性を持った帯域除去フィルタになります。 図2-64 帯域除去フィルタの周波数特性 図2-65はbrf100tap.txtの中身です。各係数の値が一個一個違うことに注意しましょう。 図2-65 brf100tap.txtにその係数 周波数特性の計算方法、Cソース(firfres.c)の説明に関してはコラム24を参照してください。 目次へ戻る |