CW Decoder (Morse code decoder) 1st release version. Only run on Nucleo-F446RE mbed board.
Dependencies: Array_Matrix F446_AD_DA ST7565_SPI_LCD TextLCD UIT_FFT_Real
Fork of F446_MySoundMachine by
Base on F446_MySoundMachine program created by 不韋 呂-san.
Thanks to 不韋 呂-san making fundamental part such as FFT and ADC high speed interrupt driven program.
I just combined LCD and show CW code.
Diff: SignalProcessing/Biquad.hpp
- Revision:
- 6:5e21ac9f0550
- Parent:
- 5:503bd366fd73
--- a/SignalProcessing/Biquad.hpp Tue Jan 31 12:52:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -//-------------------------------------------------------------- -// 縦続形 IIR フィルタで使う 1D タイプの 2 次のフィルタ -// Biquad filter of 1D type for IIR filter of cascade structure -// このクラスでは,係数は実行中に書き換えられることを想定している -// -// u[n] = x[n] + a1*u[n-1] + a2*u[n-2] -// y[n] = u[n] + b1*u[n-1] + b2*u[n-2] -// x[n] : input signal -// y[n] : output signal -// b0 = 1 -// -// 2017/01/26, Copyright (c) 2017 MIKAMI, Naoki -//-------------------------------------------------------------- - -#ifndef IIR_BIQUAD_HPP -#define IIR_BIQUAD_HPP - -#include "mbed.h" - -// 2nd order IIR filter -namespace Mikami -{ - class Biquad - { - public: - struct Coefs { float a1, a2, b1, b2; }; - - Biquad(const Coefs ck = (Coefs){0, 0, 0, 0}) - { - SetCoefs(ck); - Clear(); - } - - void SetCoefs(const Coefs cf) { cf_ = cf; } - - void GetCoefs(Coefs &cf) { cf = cf_; } - - float Execute(float xn) - { - float un = xn + cf_.a1*un1_ + cf_.a2*un2_; - float yn = un + cf_.b1*un1_ + cf_.b2*un2_; - - un2_ = un1_; - un1_ = un; - - return yn; - } - - void Clear() { un1_ = un2_ = 0; } - - private: - Coefs cf_; - float un1_, un2_; - - // disallow copy constructor and assignment operator - Biquad(const Biquad&); - Biquad& operator=(const Biquad&); - }; -} -#endif // IIR_BIQUAD_HPP