mload.f

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

F
69
字号
******************************************************************
*
*	MLOAD Version 48
*
******************************************************************
*
*  Load a covariance matrix
*
*  Inputs:
*    ORDER            - Analysis order
*    AWINS            - Analysis window start
*    AWINF            - Analysis window finish
*    SPEECH(AWINF)    - Speech buffer
*  Outputs:
*    PHI(ORDER,ORDER) - Covariance matrix
*    PSI(ORDER)       - Prediction vector
*

	SUBROUTINE MLOAD( ORDER, AWINS, AWINF, SPEECH, PHI, PSI )
	INTEGER ORDER, AWINS, AWINF
	REAL SPEECH(AWINF)
	REAL PHI(ORDER,ORDER), PSI(ORDER)
	INTEGER R, C, I, START

*   Load first column of triangular covariance matrix PHI

	START = AWINS + ORDER
	DO R = 1,ORDER
	   PHI(R,1) = 0.
	   DO I = START,AWINF
	      PHI(R,1) = PHI(R,1) + SPEECH(I-1)*SPEECH(I-R)
	   END DO
	END DO

*   Load last element of vector PSI

	PSI(ORDER) = 0.
	DO I = START,AWINF
	   PSI(ORDER) = PSI(ORDER) + SPEECH(I)*SPEECH(I-ORDER)
	END DO

*   End correct to get additional columns of PHI

	DO R = 2,ORDER
	   DO C = 2,R
	      PHI(R,C) = PHI(R-1,C-1)
     1                  - SPEECH(AWINF+1-R)*SPEECH(AWINF+1-C)
     1                    + SPEECH(START-R)*SPEECH(START-C)
	   END DO
	END DO

*   End correct to get additional elements of PSI

	DO C = 1,ORDER-1
	   PSI(C) = PHI(C+1,1) - SPEECH(START-1)*SPEECH(START-1-C)
     1                          + SPEECH(AWINF)*SPEECH(AWINF-C)
	END DO

*   Copy lower triangular section into upper (why bother?)

	DO R = 1,ORDER
	   DO C = 1,R-1
	      PHI(C,R) = PHI(R,C)
	   END DO
	END DO

	RETURN
	END

⌨️ 快捷键说明

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