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

📄 iir2ndhpf.eve

📁 DSP中YSS920B开发板工具程序
💻 EVE
字号:
//           僒儞僾儖僾儘僌儔儉 IIR2ndHPF.eve
//
// 擇師偺 IIR 偱 High Pass Filter (HPF) 傪幚尰偡傞僾儘僌儔儉偱偡丅
// SDI0 偺 Lch 偵擖椡偝傟偨怣崋偵僇僢僩僆僼廃攇悢 (fc) 偑 100Hz
// (僒儞僾儕儞僌廃攇悢 fs=48kHz 帪) 偺 HPF 傪偐偗 SDO0 偺 Lch 偵
// 弌椡偟偰偄傑偡丅
// SDO0 偺 Lch 埲奜偺僠儍儞僱儖偼偡傋偰 0 弌椡偱偡丅
//
// 擇師偺 HPF 偺學悢惛搙偼丄捠忢 16bit 偱廫暘偱偡偺偱丄IIR2ndLPF.eve
// 偺傛偆側學悢攞惛搙墘嶼偼晄梫偱偡丅
//
// 側偍丄僾儘僌儔儉偱偼 0dBFS 擖椡帪偺墘嶼僆乕僶乕僼儘乕傪夞旔偡傞偨傔
// 擖椡怣崋傪 -6dB 偟丄僼傿儖僞墘嶼屻 +6dB 偟偰尦偺儗儀儖偵栠偟偰偄傑偡丅
// 僨乕僞僶僗偺壖悢晹偼 28bit 偁傝傑偡偺偱丄偙偺庤朄偱傕嵟廔 24bit 弌椡偺
// 惛搙偵塭嬁傪梌偊傞偙偲偼偁傝傑偣傫丅
//
// 僔僌僫儖僼儘乕 IIR2ndHPF.pdf 傪嶲徠偟偰偔偩偝偄丅
//
// 偙偺僾儘僌儔儉傪傾僙儞僽儔 EveAsm.exe 偱傾僙儞僽儖偡傞偙偲偵傛傝
// IIR2ndHPF.datEve 偑嶌惉偝傟傑偡丅
//
// -----------------------------------------------------------------
//
//           Sample program  IIR2ndHPF.eve
//
// This is the program realizing 2nd-order IIR High Pass Filter (HPF).
// HPF of fc(cutoff frequency)=100Hz (at fs=48kHz) is applied to SDI0 Lch
// input signal, and the result is output from SDO0 Lch.
// The other channels except for SDO0 Lch are all zero output.
//
// 16bit is enough for the coefficients of 2nd-order IIR HPF, and there is no
// need to calculate by double-precision used in IIR2ndLPF.eve.
//
// In order to prevent digital overflow when the input is 0dBFS, input signal
// is attenuated by 6dB first and boosted after the filter calculation by 6dB
// in this program. This method does not affect at all to 24bit precision output
// because the mantissa (fractional part) of data bus is 28bit.
//
// Refer to the signal flow IIR2ndHPF.pdf.
//
// IIR2ndHPF.datEve is assemble from this program by executing EveAsm.exe.




// -----------------------------------------------------------------
// -----------------------------------------------------------------
// -----------------------------------------------------------------

#define ERAM_TYPE NO_ERAM             //奜晅 RAM 側偟

//============================================================
//                  EVE Program
//                       IIR2ndHPF
//============================================================

// COEF define
//   fs 偵傛偭偰曄壔偡傞學悢
	CDat	A0			(-1, 0x3F6C);		// 100Hz HPF (fs=48kHz, Q=0.707)
	CDat	A1			(-1, 0x8128);		//
	CDat	A2			(-1, 0x3F6C);		//
	CDat	B1			(-1, 0x7ED7);		//
	CDat	B2			(-1, 0xC127);		//

//   fs 偵傛偭偰曄壔偟側偄學悢
	CDat	P0.5		(-1, 0x4000);		//

// Inner DATA define
	DAdr	Dtmp		(0);				// temporary 梡
	DAdr	DF			(1);				// 

//------------------------------------------------------------
//       幚峴僐儅儞僪僽儘僢僋
//  	|   ERAM            |   BUS             |   MAC/JMP   
//------------------------------------------------------------
		;					Dtmp = IN0;			ACC0 = Dtmp		*P0.5;			// SDI0/L (IN0) 傪 Dtmp 傊丅
		;					;					;								// overflow 夞旔偺偨傔 Dtmp 傪 -6dB 偡傞丅
		;					;					;
		;					;					;
//---------------------------
		;					(DF+0) = ACC0F;		ACC0 = (DF+0)	*A0;			// filter 墘嶼丅
		;					;					ACC0+= (DF+1)	*A1;			//
		;					;					ACC0+= (DF+2)	*A2;			//
		;					;					ACC0+= (DF+3)	*B1;			//
		;					;					ACC0+= (DF+4)	*B2;			//
		;					;					;
		;					;					;
		;					;					;
		;					(DF+2) = ACC0Fs1;	ACC0 = (DF+2)	*P0.5;			// 1bit shift 偵拲堄丅RAM 傊偼 Float 偱 save丅
//---------------------------
		;					;					;								// -6dB 偝傟偰偄偨 data 傪 +6dB 偟丄尦偵栠偡丅
		;					;					;
		;					;					;
		;					OUT0 = ACC0Ls2;		;								// OUT 傊偼 Linear 偱 save丅
//	----------------------------------------------------------------------
		;					OUT1 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
		;					OUT2 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
		;					OUT3 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
		;					OUT4 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
		;					OUT5 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
		;					OUT6 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
		;					OUT7 = $ZERO;		;								// 懠偺 channel 傪 0 clear丅
//	----------------------------------------------------------------------
		;					MPEND = $0.5;		;								// program 廔椆丅
		;					;					;
		;					;					;

⌨️ 快捷键说明

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