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

📄 src_inc.h

📁 在blankfin中 实现src 的程序
💻 H
字号:
/****************************************************************************
*	File:		SRC_inc.h
*	Date:		Sept 26 2002
*   Created:	Jeff Sondermeyer
****************************************************************************/

#include <fract.h>

/* data structure for each stage */

typedef struct {
	int *in_s;		// input signal buffer
	int	in_z;		// input signal buffer size
	int *out_s;		// output signal buffer
	int	out_z;		// output signal buffer size
	int *h;			// filter
	int plen;		// filter polyphase length
	int	up;			// interpolation factor
	int	dn;			// decimatation factor
	int	nis;		// number of inputs
	int	nos;		// number of outputs
	int	nshft;		// number of shifts
	
/*********IPDC addition*******/
	int	*in_c;		/* base address of input signal */
	int	*out_c;		/* base address of output signal*/
/******************************/

	int	space;		// nop
} FIRST_STAGE_ENTRY;  // (nos * dn) = (nis * up) is required


typedef struct {
	int *in_s;		// input signal buffer
	int	in_z;		// input signal buffer size
	int *out_s;		// output signal buffer
	int	out_z;		// output signal buffer size
	int *h;			// filter
	int plen;		// filter polyphase length
	int	up;			// interpolation factor
	int	dn;			// decimatation factor
	int	nis;		// number of inputs
	int	nos;		// number of outputs
	int	nshft;		// number of shifts
	
/*********IPDC addition*******/
	int	*in_c;		/* base address of input signal */
	int	*out_c;		/* base address of output signal*/
/******************************/

	int	space;		// nop
} SEC_STAGE_ENTRY;  // (nos * dn) = (nis * up) is required


typedef struct {
	int *in_s;		// input signal buffer
	int	in_z;		// input signal buffer size
	int *out_s;		// output signal buffer
	int	out_z;		// output signal buffer size
	int *h;			// filter
	int plen;		// filter polyphase length
	int	up;			// interpolation factor
	int	dn;			// decimatation factor
	int	nis;		// number of inputs
	int	nos;		// number of outputs
	int	nshft;		// number of shifts

/*********IPDC addition*******/
	int	*in_c;		/* base address of input signal */
	int	*out_c;		/* base address of output signal*/
/******************************/

	int	space;		// nop
} THIRD_STAGE_ENTRY;  // (nos * dn) = (nis * up) is required


/* fundamental structure for sample rate conversion */

typedef struct {
   FIRST_STAGE_ENTRY	*V; // first stage
   SEC_STAGE_ENTRY		*M; // middle stage
   THIRD_STAGE_ENTRY	*L; // last stage

} STAGE_HANDLE;


typedef struct {

	STAGE_HANDLE	*S;

	int half_band,		// half band flag
	    up_stage,		// number of pure up stages
		pivot_stage,	// pivot stage flag
		down_stage,		// number of pure down stages
		nstages,		// total number of stages
		ninputs,		// number of input samples per block
		noutputs;		// number of output samples per block
		
} FUNDAMENT_DATA_ENTRY;


void src_init (FUNDAMENT_DATA_ENTRY *F);
void src_flt (fract16 *inputs, fract16 *outputs, fract16 offset, FUNDAMENT_DATA_ENTRY *F);


⌨️ 快捷键说明

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