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.
Dependencies: UIT_ACM1602NI UIT_ADDA mbed
WindowingDesignLpfHpf/WindowingDesignLH.hpp@5:184a0b023f5c, 2014-12-07 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun Dec 07 11:55:00 2014 +0000
- Revision:
- 5:184a0b023f5c
- Parent:
- 0:ea9a0c65a7dd
6
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| MikamiUitOpen | 0:ea9a0c65a7dd | 1 | //------------------------------------------------------------------------------ |
| MikamiUitOpen | 0:ea9a0c65a7dd | 2 | // Design of FIR filter of LPF and HPF using window method -- Header |
| MikamiUitOpen | 0:ea9a0c65a7dd | 3 | // |
| MikamiUitOpen | 0:ea9a0c65a7dd | 4 | // 2014/11/09, Copyright (c) 2014 MIKAMI, Naoki |
| MikamiUitOpen | 0:ea9a0c65a7dd | 5 | //------------------------------------------------------------------------------ |
| MikamiUitOpen | 0:ea9a0c65a7dd | 6 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 7 | #ifndef HAMMING_WINDOWING_DESIGN_HPP |
| MikamiUitOpen | 0:ea9a0c65a7dd | 8 | #define HAMMING_WINDOWING_DESIGN_HPP |
| MikamiUitOpen | 0:ea9a0c65a7dd | 9 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 10 | #include "mbed.h" |
| MikamiUitOpen | 0:ea9a0c65a7dd | 11 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 12 | namespace Mikami |
| MikamiUitOpen | 0:ea9a0c65a7dd | 13 | { |
| MikamiUitOpen | 0:ea9a0c65a7dd | 14 | class WindowingDesign |
| MikamiUitOpen | 0:ea9a0c65a7dd | 15 | { |
| MikamiUitOpen | 0:ea9a0c65a7dd | 16 | public: |
| MikamiUitOpen | 0:ea9a0c65a7dd | 17 | struct Coefs { float a1, a2, b1; }; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 18 | enum Type { LPF, HPF }; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 19 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 20 | // Constructor |
| MikamiUitOpen | 0:ea9a0c65a7dd | 21 | WindowingDesign(int order, float fs); |
| MikamiUitOpen | 0:ea9a0c65a7dd | 22 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 23 | //Destructor |
| MikamiUitOpen | 0:ea9a0c65a7dd | 24 | ~WindowingDesign() |
| MikamiUitOpen | 0:ea9a0c65a7dd | 25 | { |
| MikamiUitOpen | 0:ea9a0c65a7dd | 26 | delete[] hm_; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 27 | delete[] wn_; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 28 | } |
| MikamiUitOpen | 0:ea9a0c65a7dd | 29 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 30 | // Execution of design |
| MikamiUitOpen | 0:ea9a0c65a7dd | 31 | void Design(int order, Type pb, float fc, float hk[]); |
| MikamiUitOpen | 0:ea9a0c65a7dd | 32 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 33 | private: |
| MikamiUitOpen | 0:ea9a0c65a7dd | 34 | static const float PI_ = 3.1415926536f; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 35 | const float FS_; // Sampling frequency |
| MikamiUitOpen | 0:ea9a0c65a7dd | 36 | const float PI_FS_; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 37 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 38 | float *hm_; // For coefficients |
| MikamiUitOpen | 0:ea9a0c65a7dd | 39 | float *wn_; // For Windwo |
| MikamiUitOpen | 0:ea9a0c65a7dd | 40 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 41 | int order_; // Order |
| MikamiUitOpen | 0:ea9a0c65a7dd | 42 | float fC_; // Cutoff frequency |
| MikamiUitOpen | 0:ea9a0c65a7dd | 43 | |
| MikamiUitOpen | 0:ea9a0c65a7dd | 44 | // Calculation of coefficients for LPF |
| MikamiUitOpen | 0:ea9a0c65a7dd | 45 | void LpfCoefficients(); |
| MikamiUitOpen | 0:ea9a0c65a7dd | 46 | // Transform LPF to HPF |
| MikamiUitOpen | 0:ea9a0c65a7dd | 47 | void ToHpf(); |
| MikamiUitOpen | 0:ea9a0c65a7dd | 48 | // Hamming window |
| MikamiUitOpen | 0:ea9a0c65a7dd | 49 | void HammWindow(); |
| MikamiUitOpen | 0:ea9a0c65a7dd | 50 | }; |
| MikamiUitOpen | 0:ea9a0c65a7dd | 51 | } |
| MikamiUitOpen | 0:ea9a0c65a7dd | 52 | #endif // HAMMING_WINDOWING_DESIGN_HPP |