LoginSignup
0
0

More than 1 year has passed since last update.

VHDLによる簡単なディジタルフィルターの実験 / その6 / FIRフィルター / 簡易バンドパスフィルター

Last updated at Posted at 2022-01-09

1. 概要

今度はバンドパスフィルターを試す。係数は前回と同じく、山口晶大, (2006), 『はじめてのDSP活用大全』, CQ出版, pp.155-160を参考にして簡易的に計算した。中心周波数は5 kHzにした。

タップ数は16、係数は16ビット長(signed)、サンプリング周波数は40 kHz。

2. 簡易バンドパスフィルターのためのVHDL

下のVHDLをコンパイルしてMAX10 FPGAに書き込む。

ファイル一式: https://github.com/ti-nspire/VHDL_for_Quartus_Prime/tree/main/fir_filter_experiment_band_pass_simple

係数は、トップレベルエンティティfir_filter_experiment.vhdの下の部分に記述する。

constant coeffs_list : coefficient_array := (
    /*
    0, sin( pi/4),  1, sin( pi/4),
    0, sin(-pi/4), -1, sin(-pi/4),
    0, sin( pi/4),  1, sin( pi/4),
    0, sin(-pi/4), -1, sin(-pi/4),
    ↑これを下のようにsigned 16ビットに整数化する。
    */

    16b"0",16x"5A82",16x"7FFF",16x"5A82",
    16b"0",16x"A57E",16x"8001",16x"A57E",
    16b"0",16x"5A82",16x"7FFF",16x"5A82",
    16b"0",16x"A57E",16x"8001",16x"A57E"
);
-- 計算結果に必要なビット数はceil(log2(3 * (1023 * (0x5A82 + 0x7FFF + 0x5A82))))
constant BITS_NEEDED : natural := 28;

3. 全体の接続図

このときと同じ。

4. 実行結果

ファンクションジェネレーターから正弦波を入力して出力の周波数特性を見てみる。5 kHzを中心とするバンドパスになっている。
scope_64.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0