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

📄 firfilterdlg.h

📁 用Visual c++写的有限长单位脉冲响应滤波器
💻 H
字号:
// FIRFilterDlg.h : header file
//

#if !defined(AFX_FIRFILTERDLG_H__DEAE9ADC_4A91_4D75_ABEB_D12908E353F7__INCLUDED_)
#define AFX_FIRFILTERDLG_H__DEAE9ADC_4A91_4D75_ABEB_D12908E353F7__INCLUDED_

typedef	struct
				{
				double real;
				double image;
				}Complex;


#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CFIRFilterDlg dialog

class CFIRFilterDlg : public CDialog
{
// Construction
public:
	CFIRFilterDlg(CWnd* pParent = NULL);	// standard constructor
	void DrawCoordinate(); //画picture控件内网格的函数
	void DrawScale();  //画刻度的函数
	void GetSinData(int N,int M,double T,Complex dataout[]); //获取正弦曲线的数据
//	void GetNoiseData(int N,int M,double T,Complex noisedataout[]);
	void DrawSinWave(int N, int M,Complex data[]); //画正弦曲线的函数
	void FFT(int N, int M, Complex data2[]); //FFT函数
	void DrawInPic2(int N, Complex data1[]); //画正弦信号加干扰信号频谱的函数
	void DrawOriginalSinWave();    //画原始正弦输入信号的函数
	void UpdateShowText();

	void FirFunction(Complex A[], Complex B[]);  //滤波器设置函数
	void CreateFirFilter(int N,int FilterKind,int WindowKind,Complex inputdata2[]);  //创建滤波器函数
	void myconv(Complex A[],Complex B[],Complex C[],int N); //卷积函数
	void DrawSYS3(int N,Complex data1[]);  //画数字滤波器幅频响应的函数
	void DrawSYS1(int N,Complex data1[]);  //画数字滤波器单位脉冲响应的函数
	void DrawOutputSpectrum(int N,Complex data1[]); //画滤波后信号频谱的函数
	void DrawOutputWave(int N, Complex data1[]);    //画滤波后信号的波形
	void MainFunction();   //主函数

	int period;           //正弦曲线的周期
	int amplitude;        //正弦曲线的幅值
//	int noiper;    
//	int noiamp; 
	double disturbamp;//干扰信号的幅值
	double disturbper;//干扰信号的周期

	/*************滤波器的参数设置*******************/
	int  highcutfrequency; //高通截止频率
	int lowcutfrequency; //低通截止频率
	int cutofffrequency; //截止频率
	int windowlength; //窗口长度

// Dialog Data
	//{{AFX_DATA(CFIRFilterDlg)
	enum { IDD = IDD_FIRFILTER_DIALOG };
	CComboBox	m_window_type;
	CComboBox	m_filter_type;
	CScrollBar	m_period;
	CScrollBar	m_amplitude;
	CString	m_disturbamp;
	CString	m_disturbper;
	CString	m_window_length;
	CString	m_cutoff_frequency;
	CString	m_low_cutfrequency;
	CString	m_high_cutfrequency;
	CString	m_ampmsg;
	CString	m_permsg;
	CString	m_highcutmsg;
	CString	m_lowcutmsg;
	CString	m_cutmsg;
	CString	m_unitcut;
	CString	m_unithighcut;
	CString	m_unitlowcut;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFIRFilterDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CFIRFilterDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	virtual void OnOK();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnChangeEditDisturbamp();
	afx_msg void OnChangeEditDisturbper();
	afx_msg void OnSelchangeFilterType();
	afx_msg void OnSelchangeWindowType();
	afx_msg void OnChangeCutoffFrequency();
	afx_msg void OnChangeLowCutfrequency();
	afx_msg void OnChangeHighCutfrequency();
	afx_msg void OnChangeWindowLength();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_FIRFILTERDLG_H__DEAE9ADC_4A91_4D75_ABEB_D12908E353F7__INCLUDED_)

⌨️ 快捷键说明

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