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: F746_GUI Array_Matrix TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG SDFileSystem_Warning_Fixed FrequencyResponseDrawer F746_SAI_IO
MyClasses_Functions/BilinearDesignLH.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2016-04-19
- Revision:
- 0:04b43b777fae
File content as of revision 0:04b43b777fae:
//------------------------------------------------------------------------------
// Design of Butterworth LPF and HPF using bilinear transform -- Header
//
// 2016/03/31, Copyright (c) 2016 MIKAMI, Naoki
//------------------------------------------------------------------------------
#ifndef BILINEAR_BUTTERWORTH_HPP
#define BILINEAR_BUTTERWORTH_HPP
#include "mbed.h"
#include <complex> // requisite
namespace Mikami
{
typedef complex<float> Complex; // define "Complex"
class BilinearDesign
{
public:
struct Coefs { float a1, a2, b1, b2; };
enum Type { LPF, HPF };
// Constructor
BilinearDesign(int order, float fs)
: PI_FS_(PI_/fs), ORDER_(order)
{
sP_ = new Complex[order/2];
zP_ = new Complex[order/2];
ck_ = new Coefs[order/2];
}
// Destractor
~BilinearDesign()
{
delete[] sP_;
delete[] zP_;
delete[] ck_;
}
// Execution of design
void Execute(float fc, Type pb, Coefs c[], float& g);
private:
static const float PI_ = 3.1415926536f;
const float PI_FS_;
const int ORDER_;
Complex* sP_; // Poles on s-plane
Complex* zP_; // Poles on z-plane
Coefs* ck_; // Coefficients of transfer function for cascade form
float gain_; // Gain factor for cascade form
void Butterworth();
void Bilinear(float fc);
void ToCascade(Type pb);
void GetGain(Type pb);
void GetCoefs(Coefs c[], float& gain);
};
}
#endif // BILINEAR_BUTTERWORTH_HPP