⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decodeqam.h

📁 QAM数据调制的编码过程
💻 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 + -