src_inc.h

来自「在blankfin中 实现src 的程序」· C头文件 代码 · 共 106 行

H
106
字号
/****************************************************************************
*	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 + =
减小字号Ctrl + -
显示快捷键?