difmag.f

来自「lpc 2400 bps语音编解码程序」· F 代码 · 共 41 行

F
41
字号
***********************************************************************
*
*	DIFMAG Version 49
*
**********************************************************************
*
*  Compute Average Magnitude Difference Function
*
* Inputs:
*  SPEECH - Low pass filtered speech
*  LPITA  - Length of speech buffer
*  TAU    - Table of lags
*  LTAU   - Number of lag values to compute
*  MAXLAG - Maximum possible lag value
* Outputs:
*  AMDF   - Average Magnitude Difference for each lag in TAU
*  MINPTR - Index of minimum AMDF value
*  MAXPTR - Index of maximum AMDF value

	SUBROUTINE DIFMAG( SPEECH, LPITA, TAU, LTAU, MAXLAG,
     1                    AMDF, MINPTR, MAXPTR )
	INTEGER LPITA, LTAU, MAXLAG, MINPTR, MAXPTR
	INTEGER TAU(LTAU), I, J, N1, N2
	REAL SPEECH(LPITA+MAXLAG), AMDF(LTAU), SUM

	MINPTR = 1
	MAXPTR = 1
	DO I = 1,LTAU
	   N1 = (MAXLAG-TAU(I))/2 + 1
	   N2 = N1 + LPITA - 1
	   SUM = 0.
	   DO J = N1,N2,4
	      SUM = SUM + ABS( SPEECH(J) - SPEECH(J+TAU(I)) )
	   END DO
	   AMDF(I) = SUM
	   IF( AMDF(I).LT.AMDF(MINPTR) ) MINPTR = I
	   IF( AMDF(I).GT.AMDF(MAXPTR) ) MAXPTR = I
	END DO
	RETURN
	END

⌨️ 快捷键说明

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