F446_AD_DA_LinearPhase の使用例. AD された信号をそのまま DA に出力する. 標本化周波数:10 kHz Example of F446_AD_DA_LinearPhase. Output signal is same as input signal. Sampling frequency is 10 kHz.
Dependencies: mbed F446_AD_DA_LinearPhase
main.cpp@1:4d42dd760b73, 2018-11-28 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Wed Nov 28 12:46:36 2018 +0000
- Revision:
- 1:4d42dd760b73
- Parent:
- 0:ed4b35ea9367
2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:ed4b35ea9367 | 1 | //-------------------------------------------------------------------------- |
MikamiUitOpen | 0:ed4b35ea9367 | 2 | // NUCLEO-F446RE で アナログ信号の入出力の際に,出力の標本化周波数を, |
MikamiUitOpen | 0:ed4b35ea9367 | 3 | // 入力の標本化周波数の4倍にするクラス F446_LinearPhase の使用例 |
MikamiUitOpen | 0:ed4b35ea9367 | 4 | // |
MikamiUitOpen | 0:ed4b35ea9367 | 5 | // F446_LinearPhase クラスでは出力の補間フィルタとして直線位相 FIR フィルタを使用 |
MikamiUitOpen | 0:ed4b35ea9367 | 6 | // |
MikamiUitOpen | 0:ed4b35ea9367 | 7 | // 処理の内容:AD 変換器からの入力をそのまま DA 変換器に出力する |
MikamiUitOpen | 0:ed4b35ea9367 | 8 | // |
MikamiUitOpen | 1:4d42dd760b73 | 9 | // 2018/11/28, Copyright (c) 2018 MIKAMI, Naoki |
MikamiUitOpen | 0:ed4b35ea9367 | 10 | //-------------------------------------------------------------------------- |
MikamiUitOpen | 0:ed4b35ea9367 | 11 | |
MikamiUitOpen | 0:ed4b35ea9367 | 12 | #include "F446_LinearPhase.hpp" |
MikamiUitOpen | 0:ed4b35ea9367 | 13 | #pragma diag_suppress 870 // マルチバイト文字使用の警告抑制のため |
MikamiUitOpen | 0:ed4b35ea9367 | 14 | #include "coefficients.hpp" // 補間フィルタとしてデフォルト以外のものを使う場合 |
MikamiUitOpen | 0:ed4b35ea9367 | 15 | |
MikamiUitOpen | 0:ed4b35ea9367 | 16 | using namespace Mikami; |
MikamiUitOpen | 0:ed4b35ea9367 | 17 | |
MikamiUitOpen | 0:ed4b35ea9367 | 18 | const int FS_ = 10000; // 入力の標本化周波数: 10 kHz |
MikamiUitOpen | 0:ed4b35ea9367 | 19 | |
MikamiUitOpen | 0:ed4b35ea9367 | 20 | // 出力標本化周波数を4倍にするオブジェクト,デフォルトの補間用フィルタを使う場合 |
MikamiUitOpen | 0:ed4b35ea9367 | 21 | F446_LinearPhase myAdDa_; |
MikamiUitOpen | 0:ed4b35ea9367 | 22 | |
MikamiUitOpen | 0:ed4b35ea9367 | 23 | // 第一引数を 0 にすると,出力の際に補間処理は行われない |
MikamiUitOpen | 0:ed4b35ea9367 | 24 | //F446_LinearPhase myAdDa_(0); |
MikamiUitOpen | 0:ed4b35ea9367 | 25 | |
MikamiUitOpen | 0:ed4b35ea9367 | 26 | // 出力標本化周波数を4倍にするオブジェクト,デフォルト以外の補間用フィルタを使う場合 |
MikamiUitOpen | 0:ed4b35ea9367 | 27 | //F446_LinearPhase myAdDa_(ORDER_, HK1_, HK2_, HK3_); |
MikamiUitOpen | 0:ed4b35ea9367 | 28 | |
MikamiUitOpen | 0:ed4b35ea9367 | 29 | int main() |
MikamiUitOpen | 0:ed4b35ea9367 | 30 | { |
MikamiUitOpen | 0:ed4b35ea9367 | 31 | printf("\r\n開始します.\r\n"); |
MikamiUitOpen | 0:ed4b35ea9367 | 32 | |
MikamiUitOpen | 0:ed4b35ea9367 | 33 | myAdDa_.Start(FS_); // 標本化を開始する |
MikamiUitOpen | 0:ed4b35ea9367 | 34 | |
MikamiUitOpen | 0:ed4b35ea9367 | 35 | while (true) |
MikamiUitOpen | 0:ed4b35ea9367 | 36 | { |
MikamiUitOpen | 0:ed4b35ea9367 | 37 | //------------------------------------------------------------ |
MikamiUitOpen | 0:ed4b35ea9367 | 38 | // ここにディジタルフィルタ等の処理を記述する |
MikamiUitOpen | 0:ed4b35ea9367 | 39 | float xn = myAdDa_.Input(); // 入力 |
MikamiUitOpen | 0:ed4b35ea9367 | 40 | // wait_us(92); // 標本化周波数が 10 kHz で, |
MikamiUitOpen | 0:ed4b35ea9367 | 41 | // デフォルトの補間用フィルタを使う場合, |
MikamiUitOpen | 0:ed4b35ea9367 | 42 | // 92 μs 以下の実行時間の信号処理であれば OK |
MikamiUitOpen | 0:ed4b35ea9367 | 43 | // wait_us(90); // 補間用フィルタとして 96 次のフィルタを使う場合. |
MikamiUitOpen | 0:ed4b35ea9367 | 44 | // 90 μs 以下の実行時間の信号処理であれば OK |
MikamiUitOpen | 0:ed4b35ea9367 | 45 | float yn = xn; // これは入力信号に何も処理しない例 |
MikamiUitOpen | 0:ed4b35ea9367 | 46 | myAdDa_.Output(yn); // 出力 |
MikamiUitOpen | 0:ed4b35ea9367 | 47 | //------------------------------------------------------------ |
MikamiUitOpen | 0:ed4b35ea9367 | 48 | } |
MikamiUitOpen | 0:ed4b35ea9367 | 49 | } |