Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
FrequencyConverter/FrequencyConverter.hpp@0:f69d3c64978d, 2014-07-28 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Mon Jul 28 07:30:22 2014 +0000
- Revision:
- 0:f69d3c64978d
ver.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:f69d3c64978d | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:f69d3c64978d | 2 | // Frequency converter system class |
MikamiUitOpen | 0:f69d3c64978d | 3 | // Copyright (c) 2014 MIKAMI, Naoki, 2014/07/20 |
MikamiUitOpen | 0:f69d3c64978d | 4 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:f69d3c64978d | 5 | |
MikamiUitOpen | 0:f69d3c64978d | 6 | #ifndef FREQUENCYCONVERTER_HPP |
MikamiUitOpen | 0:f69d3c64978d | 7 | #define FREQUENCYCONVERTER_HPP |
MikamiUitOpen | 0:f69d3c64978d | 8 | |
MikamiUitOpen | 0:f69d3c64978d | 9 | #include "mbed.h" |
MikamiUitOpen | 0:f69d3c64978d | 10 | #include "HilbertTransform.hpp" |
MikamiUitOpen | 0:f69d3c64978d | 11 | #include "coefsHilbert94.hpp" |
MikamiUitOpen | 0:f69d3c64978d | 12 | #include "DC_Cut_Coefficients.hpp" |
MikamiUitOpen | 0:f69d3c64978d | 13 | #include "TwoPhaseGenerator.hpp" |
MikamiUitOpen | 0:f69d3c64978d | 14 | |
MikamiUitOpen | 0:f69d3c64978d | 15 | namespace Mikami |
MikamiUitOpen | 0:f69d3c64978d | 16 | { |
MikamiUitOpen | 0:f69d3c64978d | 17 | class FrqConvSystem |
MikamiUitOpen | 0:f69d3c64978d | 18 | { |
MikamiUitOpen | 0:f69d3c64978d | 19 | private: |
MikamiUitOpen | 0:f69d3c64978d | 20 | Hilbert<ORDER_> ht_; |
MikamiUitOpen | 0:f69d3c64978d | 21 | Biquad DcCut_; // DC cut filter |
MikamiUitOpen | 0:f69d3c64978d | 22 | TwoPhaseGenerator sinCos_; // 100.0 Hz |
MikamiUitOpen | 0:f69d3c64978d | 23 | public: |
MikamiUitOpen | 0:f69d3c64978d | 24 | FrqConvSystem(float fC, float fS) |
MikamiUitOpen | 0:f69d3c64978d | 25 | : ht_(hm_), DcCut_(cDccut_), sinCos_(fC, fS) {} |
MikamiUitOpen | 0:f69d3c64978d | 26 | float Execute(float x) |
MikamiUitOpen | 0:f69d3c64978d | 27 | { |
MikamiUitOpen | 0:f69d3c64978d | 28 | float yI, yQ, cosx, sinx; |
MikamiUitOpen | 0:f69d3c64978d | 29 | |
MikamiUitOpen | 0:f69d3c64978d | 30 | float xn = x; |
MikamiUitOpen | 0:f69d3c64978d | 31 | xn = DcCut_.Execute(gDccut_*x); // DC cut |
MikamiUitOpen | 0:f69d3c64978d | 32 | ht_.Execute(xn, yI, yQ); // Hilbert transform |
MikamiUitOpen | 0:f69d3c64978d | 33 | sinCos_.Generate(cosx, sinx); // cos and sin generator |
MikamiUitOpen | 0:f69d3c64978d | 34 | float yn = yI*cosx - yQ*sinx; // conversion |
MikamiUitOpen | 0:f69d3c64978d | 35 | return yn; |
MikamiUitOpen | 0:f69d3c64978d | 36 | }; |
MikamiUitOpen | 0:f69d3c64978d | 37 | }; |
MikamiUitOpen | 0:f69d3c64978d | 38 | } |
MikamiUitOpen | 0:f69d3c64978d | 39 | #endif // FREQUENCYCONVERTER_HPP |
MikamiUitOpen | 0:f69d3c64978d | 40 |