Demo program of digital signal processing: Variable LPF/HPF, Vocal canceller, Pitch shifter, Reverbrator. ディジタル信号処理のデモプログラム. 遮断周波数可変 LPF/HPF,ボーカルキャンセラ,ピッチシフタ,残響生成器.

Dependencies:   Array_Matrix F446_AD_DA UIT_AQM1602 mbed

Revision:
0:fa74b1130cc3
Child:
1:b3cf07371911
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SignalProcessing/MyFunctions.hpp	Sun Jan 29 09:11:30 2017 +0000
@@ -0,0 +1,46 @@
+//--------------------------------------------------------------------
+//  STM32F446 と信号処理用ボードによるデモプログラムで使うグローバル関数
+//
+//  2017/01/29, Copyright (c) 2017 MIKAMI, Naoki
+//--------------------------------------------------------------------
+
+#include "SignalProcessing.hpp"     // 信号処理の抽象基底クラスなど
+#include "AQM1602.hpp"
+using namespace Mikami;
+
+extern SignalProcessing *spPtr_;    // 処理に対応するポインタ
+
+// 機能の割り当てと表示
+void AssignDisplay(SignalProcessing &func, Aqm1602 &lcd,
+                   string str, float val = -1)
+{
+    spPtr_ = &func;     // 機能の割り当て
+
+    // 表示
+    lcd.ClearLine(0);
+    lcd.ClearLine(1);
+    lcd.WriteStringXY(str, 0, 0);
+    if (val == -1)
+        printf("%s\r\n", str.c_str());
+    else
+    {
+        printf("%s, %4.0f Hz\r\n", str.c_str(), val);
+        lcd.WriteValueXY("%4.0f Hz", val, 0, 1);
+    }
+}
+
+// 周波数変化が基準値より大きい場合に true を返す
+//      min <= frq <= max
+//      th : 基準値
+bool FrChange(AnalogIn &aIn, float min, float max, float th, float &frq)
+{
+    static float frqCurrent = 0;
+    frq = (max - min)*aIn.read() + min;
+    if (fabs(frq - frqCurrent) > th)
+    {
+        frqCurrent = frq;
+        return true;
+    }
+    else
+        return false;
+}