📄 lpf.h
字号:
// LPF.h: interface for the CLPF class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_LPF_H__CB895781_B2FE_11D4_A754_C81FBF9FE861__INCLUDED_)
#define AFX_LPF_H__CB895781_B2FE_11D4_A754_C81FBF9FE861__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Compnent.h"
class CLPF
{
protected:
double RL;
double PassFreq,EffectFreq;
double PassVal,EffectVal;//As Am
CCCompnent *pCCompnent;
CLCompnent *pLCompnent;
int SectionNum;
public:
CLPF();
CLPF(double Rl,double Pf,double Ef,double PVal,double EVal);
virtual ~CLPF();
/////////////
double GetRL() { return RL; } //阻抗
void SetRL(double rl); //设置 阻抗
void SetFrequence(double PassF,double EffectF); //设置 频率
void SetSectionNum(int sectionnum); //设置 节数N
int GetSectionNum(void);//得到 节数N
void GetFrequence(double &PassF,double &EffectF) { PassF=PassFreq; EffectF=EffectFreq;}
void SetNeed(double rl,double Pf,double Ef,double PVal,double EVal);
void GetNeed(double &rl,double &Pf,double &Ef,double &PVal,double &EVal);
double GetAmpOut(double freq);
double GetPhaseOut(double freq);
//virtual function
virtual void SetVal(CCCompnent *pCCompnentIn,CLCompnent *pLCompnentIn)=0;
virtual void GetVal(CCCompnent *pCCompnentOut,CLCompnent *pLCompnentOut)=0;
virtual void CountValue()=0;
virtual void GetOut(CComplex_num &UL,CComplex_num &IL,double freq)=0;
//Cauer virtual function
virtual void SetReflex(int reflex) {};
virtual int GetReflex(void) {return 0;};
virtual void GetResonance(double *ResonanceDot,int &DotNum) {};
virtual double CountOs(void) {return 0;}; //计算两点比值
virtual void GetDataFromTable(void) {};//查表得到归一化值
};
class CButterLPF:public CLPF//最平响应
{
public:
static double ButterData[7][7];
public:
CButterLPF();
CButterLPF(int sectionnum);
~CButterLPF();
void SetVal(CCCompnent *pCCompnentIn,CLCompnent *pLCompnentIn);
void GetVal(CCCompnent *pCCompnentOut,CLCompnent *pLCompnentOut);
void JudgeNeedNum(void);//利用已知条件得到 节数N
void CountValue(); //根据节数,查表得出元件
void GetOut(CComplex_num &UL,CComplex_num &IL,double freq); //不同频率下的复数值大小
};
class CChebyLPF:public CLPF//切比雪夫响应
{
public:
static double ChebyData[7][7];
public:
CChebyLPF();
CChebyLPF(int sectionnum);
~CChebyLPF();
void JudgeNeedNum(void);//利用已知条件得到 节数N
void CountValue(); //根据节数,查表得出元件
void SetVal(CCCompnent *pCCompnentIn,CLCompnent *pLCompnentIn);
void GetVal(CCCompnent *pCCompnentOut,CLCompnent *pLCompnentOut);
void GetOut(CComplex_num &UL,CComplex_num &IL,double freq); //不同频率下的复数值大小
};
class CCauerLPF:public CLPF//椭圆函数响应
{
protected:
int Reflex;//= 5 10 15 20 50 反射系数
public:
CCauerLPF();
CCauerLPF(int sectionnum);
CCauerLPF(int sectionnum,int reflex);
~CCauerLPF();
void JudgeNeedNum(void);//利用已知条件得到 节数N
void SetVal(CCCompnent *pCCompnentIn,CLCompnent *pLCompnentIn);
void GetVal(CCCompnent *pCCompnentOut,CLCompnent *pLCompnentOut);
void CountValue(void); //根据节数,查表得出元件
void GetOut(CComplex_num &UL,CComplex_num &IL,double freq); //不同频率下的复数值大小
//add function
void SetReflex(int reflex) {Reflex=reflex;}//设置反射系数
int GetReflex(void) {return Reflex;} //获得反射系数
void GetResonance(double *ResonanceDot,int &DotNum);//得到谐振点的频率
double CountOs(void); //计算两点比值
void GetDataFromTable(void);//查表得到归一化值
};
#endif // !defined(AFX_LPF_H__CB895781_B2FE_11D4_A754_C81FBF9FE861__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -