ディジタルフィルターの実験

FIRディジタルフィルター / バンドリジェクションフィルター

今度はバンドリジェクション。サンプリング周波数は40 kHz、帯域は1 kHz~3 kHz、ハミング窓にした。これで一通り確認できたことになる。 ファイル一式: https://github.com/ti-nspire/VHDL_for_Quartus_Prime/tree/main/fir_filter_Band_Rejection ↓ こんな…

FIRディジタルフィルター / ハイパスフィルター

今度はハイパスを試す。サンプリング周波数は40 kHz、カットオフは5 kHzにした。 ファイル一式: https://github.com/ti-nspire/VHDL_for_Quartus_Prime/tree/main/fir_filter_Hi_Pass ↓ こんな特性になるはずである(5 kHz / 40 kHz = 0.125)。 ↓ 実測結果:

FIRディジタルフィルター / 係数をちゃんと計算する

前回は単純な移動平均でローパスフィルターを実現したが、今度はもう少しちゃんと計算した係数でバンドパスフィルターを構成してみる。 フィルタータイプはバンドパス、 係数は16ビット幅、 タップ数は101、 サンプリング周波数は40 kHz、 帯域は1 kHz~3 kH…

FIRディジタルフィルターの実験 / 移動平均

参考: FIR Filter (VHDL) - Logic - Engineering and Component Solution Forum - TechForum │ Digi-Key 上の記事にあるFIRフィルターモジュールを使う。オーバーフローしないようにビット拡張をしてから定義どおりに積和演算をしているだけである。ただし乗…

FIRフィルター係数の計算 / array(0 to TAPS - 1)(COEFF_WIDTH - 1 downto 0)の形で出力する

import scipy.signal import numpy as np """ 構文: scipy.signal.firwin(numtaps, cutoff, width=None, window='hamming', pass_zero=True, scale=True, nyq=None, fs=None) pass_zero: True, False, 'bandpass', 'lowpass', 'highpass', 'bandstop' window…

FIRフィルター係数の簡単な求めかた

参考: はじめてのDSP活用大全―開発環境の用意から事例研究まで (ディジタル信号処理シリーズ), pp.155-160 ここでは帯域幅という考えかたはなく、パラメーターはセンター周波数fcのみである。fc = 0にすればローパス、fc = fs/2にすればハイパスといった具合…

FIRフィルター係数を求める / 窓函数法

Python scipy.signal.firwin()函数 scipy.signal.firwin — SciPy v1.7.1 Manual import scipy.signal """ 構文: scipy.signal.firwin(numtaps, cutoff, width=None, window='hamming', pass_zero=True, scale=True, nyq=None, fs=None) pass_zero: True, Fal…

ディジタルフィルターの実験 / MCP3001 ADCとMCP4911 DACとを同時に動かす / 信号を素通りさせる

「Digi-Key TechForum掲載のSPIマスターモジュール / DAコンバーターMCP4911を動かす -」の続き ADコンバーターMCP3001とDAコンバーターMCP4911とを同時に動かす。ここでは、AD変換した値を何もせずにDA変換して出力する。 ファイル一式: VHDL_for_Quartus_P…

Digi-Key TechForum掲載のSPIマスターモジュール / DAコンバーターMCP4911を動かす

Digi-Key TechForum掲載のSPIマスターモジュール / ADコンバーターMCP3001で変換してR-2R DACで元に戻す -のつづき ファイル一式: VHDL_for_Quartus_Prime/da_converter_MCP4911_spi at main · ti-nspire/VHDL_for_Quartus_Prime · GitHub 今度はDAコンバー…

Digi-Key TechForum掲載のSPIマスターモジュール / ADコンバーターMCP3001で変換してR-2R DACで元に戻す

Digi-Key TechForum掲載のSPIマスターモジュール / ADコンバーターMCP3001を動かす -のつづき 今度は前回のLEDの代わりにR-2R方式のDAコンバーターでDA変換する。Bourns社の4610X-R2R-103LFを使う。R = 10 kΩ、2R = 20 kΩである。8ビットぶんしかないので、1…

Digi-Key TechForum掲載のSPIマスターモジュール / ADコンバーターMCP3001を動かす

Digi-Key TechForum掲載のSPIマスターモジュール / ポテンショメーターAD8402ARZ50を動かす -のつづき 今度はADコンバーターMCP3001を動かす。逐次比較型、1チャンネル、10ビット、外部リファレンス、SPIのADコンバーターである。VDD = VREF = 2.7 Vのとき、…

Digi-Key TechForum掲載のSPIマスターモジュール / 非公式訳

参考: SPI Master (VHDL) - Logic - Engineering and Component Solution Forum - TechForum │ Digi-Key 上のリンクに紹介されているSPIマスターを試してみる。 非公式訳: SPIマスター 特徴 (略) スレーブの個数が指定できる。 データ幅が指定できる。 極性…

FIRフィルターを作る

pp.320-322 入力4ビット幅、係数5個、よって出力11ビット幅のFIRフィルターを作る。単なる練習であって係数に意味はない。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; --use ieee.math_real.all; entity fir_filter is generic(…