連 載 ダウンロード・データあります 84MHz 動作 Cortex-M4 マイコンで DSP 並みフィルタ& FFT 激安! 1500円mbed Nucleoで作る 本格ディジタル信号処理マシン 第 5回 FIR ヒルベルト変換フィルタによる周波数シフト 音源により 切り替える パソコン 周波数変換 マイク より 音源 ライン 出力 より マイク・ アンプ回路 LPF回路 バッファ・ アンプ回路 いろいろな周波数の 正弦波やオーディオ 信号を入力 USB ケーブル アナログ信号 A0 Nucleo F401RE 本稿で紹介したプログラムは インターネット mbedのWebサイトで公開して (mbed.orgへ) います. http://developer.mbed. org/users/CQpub0Mikami/ D-AコンバータIC MCP4922 アクティブ・スピーカ, オシロスコープなどへ 5V アンチエイ リアシング A-DコンバータはMCU に内蔵のものを使用 SPI 三上 直樹 レギュレータ XC6202P332 3.3V マイク・アンプ,バッファ・アンプ, D-Aコンバータ,LPF へ 図 1 実験のハードウェア構成…正弦波を入力して周波数変換してみる 今回は周波数変換器を作ります.周波数変換の方法 にはいくつかありますが,FIR フィルタで作るヒルベ ルト(Hilbert)変換を使った周波数変換器に挑戦して みます. 音声信号などのオーディオ信号を周波数シフトして みると,基本波に対する倍音の周波数が,基本波の整 数倍ではなくなります.そのため,周波数変換器に オーディオ信号を入力して,その出力をスピーカで音 にして聞いてみると,とても奇妙な音になっているこ とを確かめることができます.周波数変換は無線の SSB 通信などでも使われる技術です. ります 注 1.そこで,最初に単一の周波数の正弦波で 考えます. まず,式(1)で表される周波数 f1 の正弦波注 2x(t)を ● 実験のハードウェア構成 方へシフトするには,cos(2πfUt) ,sin(2πfUt)のほか に sin(2πf1t)という正弦波が必要になります.この中 今回の実験で使うハードウェアの構成を図 1に示し ます.周波数変換で出力された信号をオシロスコープ で観察します.D-A 変換器の出力にアクティブ・スピー カをつなげば,音として聴いてみることもできます. 周波数シフトの原理 ● 基本の考え方 オーディオ信号をはじめとする信号は,いろいろな 周波数でいろいろな振幅の正弦波を加え合わせたもの と考えられますが,これを式で表すとわかりにくくな 注 1:フーリエ級数やフーリエ変換を使えば表せます. 108 周波数変換することを考えます. x(t)= cos(2πf1t)……………………………………(1) この正弦波の周波数を,f1 から fU だけ高い方へシフ トして f1 + fU に変換するにはどうしたらよいでしょう か.これは,三角関数の加法定理を使えば解決できま す.つまり,次のように計算できます. cos[2π (f1 + fU)t]=cos(2πf1t)cos(2πfUt) − sin(2πf1t)sin(2πfUt)………(2) したがって,式(1)の正弦波の周波数を fU だけ高い で,cos(2πfUt)と sin(2πfUt)は計算で簡単に作ること ができます.また,周波数 f1 がわかっていれば,cos (2πf1t)から sin(2πf1t)を作ることも,それほど難し いわけではありません. ● 周波数の cos と sin がほしい しかし,実際には f1 はわかりません.たとえ周波数 f1 がわかったとしても,現実のオーディオ信号にはい 注 2:sin と cos は,単に位相が違っているだけで,本質的な違い はありません.そのため,以降でも同様に,式の上では cos になっていても正弦波と呼びます. 第 1 回 メイン回路の構成(2014 年 10 月号) 第 2 回 D-A コンバータ / フィルタ / マイク・アンプ…音声信号処理実験の準備(2014 年 11 月号) 第 3 回 音声入力に定番 FIR フィルタをかける(2014 年 12 月号) 2015 年 3 月号
© Copyright 2024