📄 fftdoc.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 + -