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

📄 fftdoc.h

📁 FFT算法进行FFT 、IFFT、功率谱计算
💻 H
字号:
// FFTDoc.h : interface of the CFFTDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_FFTDOC_H__1725D7AA_C56B_4377_AEF2_AD346FA77569__INCLUDED_)
#define AFX_FFTDOC_H__1725D7AA_C56B_4377_AEF2_AD346FA77569__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define    PI	(4.0*atan(1.0))
#include "math.h"
#ifndef RAND_MAX
#define RAND_MAX 32767
#endif
#define MAX(a,b)    (((a) > (b)) ? (a) : (b))
//#include "GfxOutBarCtrl.h"
typedef struct {
    float real, imag;
} COMPLEX;

class CFFTDoc : public CDocument
{
protected: // create from serialization only
	CFFTDoc();
	DECLARE_DYNCREATE(CFFTDoc)

// Attributes
public:
  int N ;           /* FFT 点数 */
  int M ;           /* ZFFT 点数 */
  double tym,fym;//时域,频域
  double       *tamp,*famp;//时域,频域
  COMPLEX      *samp,*rsamp;
  int		m_high;

  int numav;//每次FFT的长度
  int slice;//FFT平均的组数
  int ovlap;//每次FFT运算交叉的点数
  int wtype;/* 选用窗函数的类型: 0--5 */
  int ntype;/* 选用噪声信号类型, 0:无噪声; 1:均匀噪声; 2:高斯噪声 */
  int estsize;
  double *mag,*sigfloat;
// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFFTDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL

// Implementation
public:
	void harris(  COMPLEX *x,int n);
	void black(COMPLEX *x,int n);
	void triang(COMPLEX *x,int n);
	void han(COMPLEX *x,int n);
	void ham(COMPLEX *x,int n);
	void CallPower();
	double gaussian();
	double funiform();
	double * addnoise(double *Indata,unsigned length,int type,double nmult);
	BOOL m_bPower;
	void fSigFloat();
	void InitArray();
	void CallFFT();
	void Square();
	int i;
	void SinWave();
	void ifft(COMPLEX *x, int m);
	void fft(COMPLEX *x, int m);
	virtual ~CFFTDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
public:
	int m_chigh;//功率谱转换后的中心高度
	double m_cfreq;//功率谱转换后的中心频率
	void Closefp();
	BOOL m_fop;
	//{{AFX_MSG(CFFTDoc)
	afx_msg void OnFileOpen();
	//}}AFX_MSG
//	afx_msg long OnMsgWave(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FFTDOC_H__1725D7AA_C56B_4377_AEF2_AD346FA77569__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -