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: Array_Matrix mbed SerialTxRxIntr F446_AD_DA UIT_FFT_Real
MySpectrogram/Hamming.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2017-02-21
- Revision:
- 1:cc596a8d40c9
- Parent:
- 0:a539141b9dec
File content as of revision 1:cc596a8d40c9:
//-------------------------------------------------------------------
// Hamming windowing with zero-padding
//
// 2016/07/23, Copyright (c) 2016 MIKAMI, Naoki
//-------------------------------------------------------------------
#ifndef HAMMING_WINDOW_HPP
#define HAMMING_WINDOW_HPP
#include "mbed.h"
#include "Array.hpp"
namespace Mikami
{
class HammingWindow
{
public:
// Constructor
HammingWindow(uint16_t nData, uint16_t nFft)
: N_(nData), NFFT_(nFft), w_(nData)
{
float pi2L = 6.283185f/(float)nData;
for (int k=0; k<nData; k++)
w_[k] = 0.54f - 0.46f*cosf(k*pi2L);
}
// Destructor
virtual ~HammingWindow() {}
// Windowing
void Execute(const float x[], float y[])
{
for (int n=0; n<N_; n++) y[n] = x[n]*w_[n];
for (int n=N_; n<NFFT_; n++) y[n] = 0;
}
private:
const int N_;
const int NFFT_;
Array<float> w_;
// disallow copy constructor and assignment operator
HammingWindow(const HammingWindow& );
HammingWindow& operator=(const HammingWindow& );
};
}
#endif // HAMMING_WINDOW_HPP