不韋 呂
/
SDR_AM_Rx_CIC
AM中波放送用SDR.CICフィルタのみを使用.CQ出版社「トランジスタ技術」誌,2021年4月号に掲載
Diff: SDR_Library/Cic3Stage.hpp
- Revision:
- 2:4bec6b2be809
- Parent:
- 1:30d9fb51dec1
--- a/SDR_Library/Cic3Stage.hpp Mon Sep 23 07:32:10 2019 +0000 +++ b/SDR_Library/Cic3Stage.hpp Sat Aug 29 11:19:03 2020 +0000 @@ -1,7 +1,7 @@ //------------------------------------------------------------- // ダウンサンプリングで使う3段の CIC フィルタ用クラス // -// 2019/04/30, Copyright (c) 2019 MIKAMI, Naoki +// 2020/08/02, Copyright (c) 2020 MIKAMI, Naoki //------------------------------------------------------------- #include "mbed.h" @@ -15,43 +15,42 @@ { public: // コンストラクタ - // rate ダウンサンプリングの率,1/10 にダウンサンプリングする場合は 10 - // amp 二相発振器の出力の振幅 + // rate ダウンサンプリングの率,1/10 にダウンサンプリングする場合は 10 + // amp 直交信号発生器の出力の振幅 Cic3Stage(int rate, float amp) : G0_(1.0f/(amp*rate*rate*rate)), vn1_(0), vn2_(0), vn3_(0), vn3M1_(0), yn1M1_(0), yn2M1_(0) {} - // 累算 - void Accumulate(int16_t xn) + // 積分器 + void Integrate(int16_t xn) { - vn1_ += xn; // 累算1段目 - vn2_ += vn1_; // 累算2段目 - vn3_ += vn2_; // 累算3段目 + vn1_ += xn; // 積分器1段目 + vn2_ += vn1_; // 積分器2段目 + vn3_ += vn2_; // 積分器3段目 } - // 差分 - float Difference() + // くし形フィルタ + float CombFilter() { - int32_t yn1 = vn3_ - vn3M1_; // 差分1段目 - int32_t yn2 = yn1 - yn1M1_; // 差分2段目 - int32_t yn3 = yn2 - yn2M1_; // 差分3段目 + int32_t yn1 = vn3_ - vn3M1_; // くし形フィルタ1段目 + int32_t yn2 = yn1 - yn1M1_; // くし形フィルタ2段目 + int32_t yn3 = yn2 - yn2M1_; // くし形フィルタ3段目 - vn3M1_ = vn3_; // 現在の値を保存,差分1段目 - yn1M1_ = yn1; // 現在の値を保存,差分2段目 - yn2M1_ = yn2; // 現在の値を保存,差分3段目 + vn3M1_ = vn3_; // 現在の値を保存,くし形フィルタ1段目 + yn1M1_ = yn1; // 現在の値を保存,くし形フィルタ2段目 + yn2M1_ = yn2; // 現在の値を保存,くし形フィルタ3段目 return G0_*yn3; } private: const float G0_; - int32_t vn1_, vn2_, vn3_; // 累算で使う変数 - int32_t vn3M1_, yn1M1_, yn2M1_; // 差分で使う変数 + int32_t vn1_, vn2_, vn3_; // 積分器で使う変数 + int32_t vn3M1_, yn1M1_, yn2M1_; // くし形フィルタで使う変数 - // コピー・コンストラクタ禁止のため + // コピー・コンストラクタ,代入演算子の禁止のため Cic3Stage(const Cic3Stage&); - // 代入演算子禁止のため Cic3Stage& operator=(const Cic3Stage&); }; } -#endif // CIC3_FILTER_CLASS_HPP +#endif // CIC3_FILTER_CLASS_HPP \ No newline at end of file