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

Revision:
2:aa092bbc8877
Parent:
0:79c0b1e2fd10
Child:
3:59af3dfa0595
--- a/MultirateLiPhCoefs.cpp	Mon May 25 12:49:15 2020 +0000
+++ b/MultirateLiPhCoefs.cpp	Tue May 26 12:21:41 2020 +0000
@@ -1,9 +1,13 @@
 //-------------------------------------------------------------------
-// デフォルトの補間用フィルタの係数
+//  補間用フィルタのデフォルトの係数
 //      ORDER_, HK1_, HK2_, HK3_ が他の箇所で定義されていない場合は
 //      このファイルの値が使われる
+//  デフォルト以外の係数を使う場合,次数は以下の条件を満足すること
+//      偶数(係数の個数は奇数)
+//      FACTOR_ の整数倍,または FACTOR_ の整数倍 - 2
+//          ただし,このライブラリの場合 FACTOR_ = 4
 //
-//  2020/05/25, Copyright (c) 2020 MIKAMI, Naoki
+//  2020/05/26, Copyright (c) 2020 MIKAMI, Naoki
 //-------------------------------------------------------------------
 
 #include "MultirateLiPh.hpp"
@@ -14,26 +18,26 @@
 //
 // 使用窓関数   Kaiser 窓
 // 標本化周波数 (kHz)      40.000000
-// 次数                    72
+// 次数                    70
 // 種類         LPF
 // 遮断周波数 (kHz)         5.000000
-// 減衰量 (dB)             40.00
-MBED_WEAK const int MultirateLiPh::ORDER_ = 72; 
+// 減衰量 (dB)             40.00 
+MBED_WEAK const int MultirateLiPh::ORDER_ = 70; 
 MBED_WEAK const float MultirateLiPh::HK1_[] = {
-     4.431256E-03f, -8.146596E-03f,  1.341366E-02f, -2.077330E-02f,
-     3.116614E-02f, -4.650688E-02f,  7.151836E-02f, -1.218529E-01f,
-     2.971602E-01f,  8.993316E-01f, -1.751857E-01f,  9.144896E-02f,
-    -5.727932E-02f,  3.802786E-02f, -2.550498E-02f,  1.678651E-02f,
-    -1.055827E-02f,  6.120216E-03f};
-MBED_WEAK  const float MultirateLiPh::HK2_[] = {
-     7.405152E-03f, -1.315348E-02f,  2.125564E-02f, -3.257789E-02f,
-     4.868468E-02f, -7.290120E-02f,  1.139337E-01f, -2.039652E-01f,
-     6.338376E-01f,  6.338376E-01f, -2.039652E-01f,  1.139337E-01f,
-    -7.290120E-02f,  4.868468E-02f, -3.257789E-02f,  2.125564E-02f,
-    -1.315348E-02f,  7.405152E-03f};
-MBED_WEAK  const float MultirateLiPh::HK3_[] = {
-     6.120216E-03f, -1.055827E-02f,  1.678651E-02f, -2.550498E-02f,
-     3.802786E-02f, -5.727932E-02f,  9.144896E-02f, -1.751857E-01f,
-     8.993316E-01f,  2.971602E-01f, -1.218529E-01f,  7.151836E-02f,
-    -4.650688E-02f,  3.116614E-02f, -2.077330E-02f,  1.341366E-02f,
-    -8.146596E-03f,  4.431256E-03f};
\ No newline at end of file
+ 3.806160E-03f, -7.410556E-03f,  1.260559E-02f, -1.994242E-02f,
+ 3.036776E-02f, -4.579744E-02f,  7.095016E-02f, -1.214690E-01f,
+ 2.969901E-01f,  8.992744E-01f, -1.749060E-01f,  9.096828E-02f,
+-5.663444E-02f,  3.726704E-02f, -2.468324E-02f,  1.596038E-02f,
+-9.780624E-03f,  5.435560E-03f};
+MBED_WEAK const float MultirateLiPh::HK2_[] = {
+ 6.477720E-03f, -1.208128E-02f,  2.009782E-02f, -3.140681E-02f,
+ 4.757964E-02f, -7.194132E-02f,  1.131902E-01f, -2.034948E-01f,
+ 6.336764E-01f,  6.336764E-01f, -2.034948E-01f,  1.131902E-01f,
+-7.194132E-02f,  4.757964E-02f, -3.140681E-02f,  2.009782E-02f,
+-1.208128E-02f,  6.477720E-03f};
+MBED_WEAK const float MultirateLiPh::HK3_[] = {
+ 5.435560E-03f, -9.780624E-03f,  1.596038E-02f, -2.468324E-02f,
+ 3.726704E-02f, -5.663444E-02f,  9.096828E-02f, -1.749060E-01f,
+ 8.992744E-01f,  2.969901E-01f, -1.214690E-01f,  7.095016E-02f,
+-4.579744E-02f,  3.036776E-02f, -1.994242E-02f,  1.260559E-02f,
+-7.410556E-03f,  3.806160E-03f};
\ No newline at end of file