📄 decodeqam.h
字号:
// DecodeQAM.h: interface for the CDecodeQAM class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DECODEQAM_H__81BD236A_E186_4DFD_9DEB_8EDD34D70A8A__INCLUDED_)
#define AFX_DECODEQAM_H__81BD236A_E186_4DFD_9DEB_8EDD34D70A8A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CDecodeQAM
{
public:
BOOL EncodeQAM(LPBYTE lpBuffer, DWORD dwLen, LPBYTE lpWave, DWORD dwWaveLen, DWORD* pwRetSize);
BOOL DecodeQAM(LPBYTE lpBuffer, DWORD dwLen, LPBYTE lpData, DWORD dwDataLen, DWORD* pwSize);
public:
void srrc_tx_filter(int din[], int din_len, double dout[], unsigned int* dout_len);
BOOL SRRCFilter(int* piInData, unsigned int uiInLen, double* pOutData, unsigned int* puiOutLen);
CDecodeQAM();
virtual ~CDecodeQAM();
struct Constellation
{
int I;
int Q;
};
struct Complex
{
double Real;
double Imag;
};
protected:
void WriteToWaveFile(LPBYTE lpBuffer, DWORD dwLen);
private:
void goertzel(LPBYTE lpBuffer, DWORD wLen, LPBYTE lpData, DWORD dwDataLen, DWORD* pwSize);
private:
void srrc_fir_ha2(double din[], int din_len, double t3[], double sum1[]);
void srrc_fir_ha1(double din[], int din_len, double t2[], double sum1[]);
void srrc_intrp(int din[], int din_len, double t1[], double sum1[]);
void srrc_clear(int ntaps, double z[]);
BOOL BitsScramble(LPBYTE lpData, DWORD dwLen);
BYTE Gray2Decimal(BYTE x);
BYTE Decimal2Gray(BYTE x);
BYTE CalcPhaseOffset(BYTE Q2Q3Q4);
BOOL MapConstellation(BYTE Q1, BYTE nPhase, int* I, int* Q);
void GenerateSRRC();
double SRRC[120];
};
#endif // !defined(AFX_DECODEQAM_H__81BD236A_E186_4DFD_9DEB_8EDD34D70A8A__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -