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

📄 chanwr.f

📁 是个是LPC源代码
💻 F
字号:
**************************************************************************	CHANL Version 49*************************************************************************** CHANWR:*   Place quantized parameters into bitstream**   Inputs:*    ORDER  - Number of reflection coefficients (not really variable)*    IPITV  - Quantized pitch/voicing parameter*    IRMS   - Quantized energy parameter*    IRC    - Quantized reflection coefficients*   Output:*    IBITS  - Serial bitstream** CHANRD:*   Reconstruct parameters from bitstream**   Inputs:*    ORDER  - Number of reflection coefficients (not really variable)*    IBITS  - Serial bitstream*   Outputs:*    IPITV  - Quantized pitch/voicing parameter*    IRMS   - Quantized energy parameter*    IRC    - Quantized reflection coefficients**   IBITS is 54 bits of LPC data ordered as follows:*	R1-0, R2-0, R3-0,  P-0,  A-0,*	R1-1, R2-1, R3-1,  P-1,  A-1,*	R1-2, R4-0, R3-2,  A-2,  P-2, R4-1,*	R1-3, R2-2, R3-3, R4-2,  A-3,*	R1-4, R2-3, R3-4, R4-3,  A-4,*	 P-3, R2-4, R7-0, R8-0,  P-4, R4-4,*	R5-0, R6-0, R7-1,R10-0, R8-1,*	R5-1, R6-1, R7-2, R9-0,  P-5,*	R5-2, R6-2,R10-1, R8-2,  P-6, R9-1,*	R5-3, R6-3, R7-3, R9-2, R8-3, SYNC	SUBROUTINE CHANWR( ORDER, IPITV, IRMS, IRC, IBITS )	INTEGER ORDER, IPITV, IRMS, IRC(ORDER), IBITS(54)	INTEGER I, ISYNC	INTEGER ITAB(13), IBLIST(53), BIT(10)	DATA BIT/ 2, 4, 8, 8, 8, 8, 16, 16, 16, 16 /	DATA IBLIST/13, 12, 11, 1, 2, 13, 12, 11, 1, 2, 13, 10,     1             11, 2, 1, 10, 13, 12, 11, 10, 2, 13, 12, 11,     1             10, 2, 1, 12, 7, 6, 1, 10, 9, 8, 7, 4,     1              6, 9, 8, 7, 5, 1, 9, 8, 4, 6, 1, 5,     1              9, 8, 7, 5, 6 /	DATA ISYNC/0/*************************************************************************	Place quantized parameters into bitstream*************************************************************************   Place parameters into ITAB	ITAB(1) = IPITV	ITAB(2) = IRMS	ITAB(3) = 0	DO I = 1,ORDER	   ITAB(I+3) = AND( IRC(ORDER+1-I), 32767 )	END DO*   Put 54 bits into IBITS array	DO I = 1,53	   IBITS(I) = AND(ITAB(IBLIST(I)),1)	   ITAB(IBLIST(I)) = ITAB(IBLIST(I)) / 2	END DO	IBITS(54) = AND(ISYNC,1)	ISYNC = 1 - ISYNC	RETURN*************************************************************************	Reconstruct parameters from bitstream************************************************************************	ENTRY CHANRD( ORDER, IPITV, IRMS, IRC, IBITS )*   Reconstruct ITAB	DO I = 1,13	   ITAB(I) = 0	END DO	DO I = 1,53	   ITAB(IBLIST(54-I)) = ITAB(IBLIST(54-I))*2 + IBITS(54-I)	END DO*   Sign extend RC's	DO I = 1,ORDER	   IF( AND( ITAB(I+3), BIT(I) ) .NE. 0 )     1    ITAB(I+3) = ITAB(I+3) - 2*BIT(I)	END DO*   Restore variables	IPITV = ITAB(1)	IRMS = ITAB(2)	DO I = 1,ORDER	   IRC(I) = ITAB(ORDER+4-I)	END DO	RETURN	END

⌨️ 快捷键说明

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