STM32F446 内蔵の DAC から出力する際に,補間フィルタを利用し,標本化周波数を入力の際の4倍の標本化周波数で出力するためのライブラリ.このライブラリを登録した際のプログラム: Demo_DSP_ADDA_Multirate. Library for outputting from built-in DAC in STM32F446 using interpolation filter at sampling frequency of 4 times in case of input.

Dependencies:   Array_Matrix DSP_ADDA

Dependents:   Demo_DSP_ADDA_Multirate DSP_AD_DA_Multirate DSP_GraphicEqualizerB DSP_VariableLHpfB ... more

Committer:
MikamiUitOpen
Date:
Tue May 26 12:21:41 2020 +0000
Revision:
2:aa092bbc8877
Parent:
0:79c0b1e2fd10
Child:
3:59af3dfa0595
3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:79c0b1e2fd10 1 //-------------------------------------------------------------------
MikamiUitOpen 2:aa092bbc8877 2 // 補間用フィルタのデフォルトの係数
MikamiUitOpen 0:79c0b1e2fd10 3 // ORDER_, HK1_, HK2_, HK3_ が他の箇所で定義されていない場合は
MikamiUitOpen 0:79c0b1e2fd10 4 // このファイルの値が使われる
MikamiUitOpen 2:aa092bbc8877 5 // デフォルト以外の係数を使う場合,次数は以下の条件を満足すること
MikamiUitOpen 2:aa092bbc8877 6 // 偶数(係数の個数は奇数)
MikamiUitOpen 2:aa092bbc8877 7 // FACTOR_ の整数倍,または FACTOR_ の整数倍 - 2
MikamiUitOpen 2:aa092bbc8877 8 // ただし,このライブラリの場合 FACTOR_ = 4
MikamiUitOpen 0:79c0b1e2fd10 9 //
MikamiUitOpen 2:aa092bbc8877 10 // 2020/05/26, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 0:79c0b1e2fd10 11 //-------------------------------------------------------------------
MikamiUitOpen 0:79c0b1e2fd10 12
MikamiUitOpen 0:79c0b1e2fd10 13 #include "MultirateLiPh.hpp"
MikamiUitOpen 0:79c0b1e2fd10 14 using namespace Mikami;
MikamiUitOpen 0:79c0b1e2fd10 15
MikamiUitOpen 0:79c0b1e2fd10 16 // 以下の係数は,入力の標本化周波数は 10 kHz,出力の標本化周波数は 40 kHz
MikamiUitOpen 0:79c0b1e2fd10 17 // として設計したもの
MikamiUitOpen 0:79c0b1e2fd10 18 //
MikamiUitOpen 0:79c0b1e2fd10 19 // 使用窓関数 Kaiser 窓
MikamiUitOpen 0:79c0b1e2fd10 20 // 標本化周波数 (kHz) 40.000000
MikamiUitOpen 2:aa092bbc8877 21 // 次数 70
MikamiUitOpen 0:79c0b1e2fd10 22 // 種類 LPF
MikamiUitOpen 0:79c0b1e2fd10 23 // 遮断周波数 (kHz) 5.000000
MikamiUitOpen 2:aa092bbc8877 24 // 減衰量 (dB) 40.00
MikamiUitOpen 2:aa092bbc8877 25 MBED_WEAK const int MultirateLiPh::ORDER_ = 70;
MikamiUitOpen 0:79c0b1e2fd10 26 MBED_WEAK const float MultirateLiPh::HK1_[] = {
MikamiUitOpen 2:aa092bbc8877 27 3.806160E-03f, -7.410556E-03f, 1.260559E-02f, -1.994242E-02f,
MikamiUitOpen 2:aa092bbc8877 28 3.036776E-02f, -4.579744E-02f, 7.095016E-02f, -1.214690E-01f,
MikamiUitOpen 2:aa092bbc8877 29 2.969901E-01f, 8.992744E-01f, -1.749060E-01f, 9.096828E-02f,
MikamiUitOpen 2:aa092bbc8877 30 -5.663444E-02f, 3.726704E-02f, -2.468324E-02f, 1.596038E-02f,
MikamiUitOpen 2:aa092bbc8877 31 -9.780624E-03f, 5.435560E-03f};
MikamiUitOpen 2:aa092bbc8877 32 MBED_WEAK const float MultirateLiPh::HK2_[] = {
MikamiUitOpen 2:aa092bbc8877 33 6.477720E-03f, -1.208128E-02f, 2.009782E-02f, -3.140681E-02f,
MikamiUitOpen 2:aa092bbc8877 34 4.757964E-02f, -7.194132E-02f, 1.131902E-01f, -2.034948E-01f,
MikamiUitOpen 2:aa092bbc8877 35 6.336764E-01f, 6.336764E-01f, -2.034948E-01f, 1.131902E-01f,
MikamiUitOpen 2:aa092bbc8877 36 -7.194132E-02f, 4.757964E-02f, -3.140681E-02f, 2.009782E-02f,
MikamiUitOpen 2:aa092bbc8877 37 -1.208128E-02f, 6.477720E-03f};
MikamiUitOpen 2:aa092bbc8877 38 MBED_WEAK const float MultirateLiPh::HK3_[] = {
MikamiUitOpen 2:aa092bbc8877 39 5.435560E-03f, -9.780624E-03f, 1.596038E-02f, -2.468324E-02f,
MikamiUitOpen 2:aa092bbc8877 40 3.726704E-02f, -5.663444E-02f, 9.096828E-02f, -1.749060E-01f,
MikamiUitOpen 2:aa092bbc8877 41 8.992744E-01f, 2.969901E-01f, -1.214690E-01f, 7.095016E-02f,
MikamiUitOpen 2:aa092bbc8877 42 -4.579744E-02f, 3.036776E-02f, -1.994242E-02f, 1.260559E-02f,
MikamiUitOpen 2:aa092bbc8877 43 -7.410556E-03f, 3.806160E-03f};