CW Decoder (Morse code decoder) 1st release version. mbed = 131 revision (Not latest) is used. Only run on DISCO-F746NG mbed board.

Dependencies:   BSP_DISCO_F746NG F746_GUI F746_SAI_IO LCD_DISCO_F746NG TS_DISCO_F746NG UIT_FFT_Real mbed

Base on F746_Spectrogram program created by 不韋 呂-san.
/users/MikamiUitOpen/code/F746_Spectrogram/
Thanks 不韋 呂-san to use fundamental parts such as FFT, SAI, GUI and other useful subroutines.
You do NOT need any modification for mbed hardware and NO additional circuits.
The mbed board read CW tone from your receiver speaker via MEMES microphone (on board) and show it on the screen.

Committer:
kenjiArai
Date:
Sun Feb 05 07:49:54 2017 +0000
Revision:
0:e608fc311e4e
CW Decoder (Morse code decoder) 1st release version. mbed = 131 revision (Not latest) is used. Only run on DISCO-F746NG mbed board.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:e608fc311e4e 1 //-------------------------------------------------------
kenjiArai 0:e608fc311e4e 2 // Base abstract class for spectrum analysis
kenjiArai 0:e608fc311e4e 3 //
kenjiArai 0:e608fc311e4e 4 // 2016/07/23, Copyright (c) 2016 MIKAMI, Naoki
kenjiArai 0:e608fc311e4e 5 //-------------------------------------------------------
kenjiArai 0:e608fc311e4e 6
kenjiArai 0:e608fc311e4e 7 #include "AnalysisBase.hpp"
kenjiArai 0:e608fc311e4e 8
kenjiArai 0:e608fc311e4e 9 namespace Mikami
kenjiArai 0:e608fc311e4e 10 {
kenjiArai 0:e608fc311e4e 11 AnalyzerBase::AnalyzerBase(int nData, int nFft, int nUse)
kenjiArai 0:e608fc311e4e 12 : N_DATA_(nData), N_FFT_(nFft),
kenjiArai 0:e608fc311e4e 13 fft_(nFft), wHm_(nData-1, nUse),
kenjiArai 0:e608fc311e4e 14 xData_(nUse), wData_(nUse) {}
kenjiArai 0:e608fc311e4e 15
kenjiArai 0:e608fc311e4e 16 void AnalyzerBase::Execute(const float xn[], float db[])
kenjiArai 0:e608fc311e4e 17 {
kenjiArai 0:e608fc311e4e 18 // Differencing
kenjiArai 0:e608fc311e4e 19 for (int n=0; n<N_DATA_-1; n++)
kenjiArai 0:e608fc311e4e 20 xData_[n] = xn[n+1] - 0.8f*xn[n];
kenjiArai 0:e608fc311e4e 21
kenjiArai 0:e608fc311e4e 22 // Windowing
kenjiArai 0:e608fc311e4e 23 wHm_.Execute(xData_, wData_);
kenjiArai 0:e608fc311e4e 24
kenjiArai 0:e608fc311e4e 25 Analyze(wData_, db);
kenjiArai 0:e608fc311e4e 26 }
kenjiArai 0:e608fc311e4e 27 }