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

📄 vparms.f

📁 是个是LPC源代码
💻 F
字号:
************************************************************************	VPARMS Version 50*************************************************************************  Calculate voicing parameters:** Inputs:*  VWIN   - Voicing window limits*  INBUF  - Input speech buffer*  LPBUF  - Low pass filtered speech*  BUFLIM - Array bounds for INBUF and LPBUF*  HALF   - Half frame (1 or 2)*  DITHER - Zero crossing threshold*  MINTAU - Lag corresponding to minimum AMDF value (pitch estimate)* Outputs:*  ZC     - Zero crossing rate*  LBE    - Low band energy (sum of magnitudes - SM)*  FBE    - Full band energy (SM)*  QS     - Ratio of 6 dB/oct preemphasized energy to full band energy*  RC1    - First reflection coefficient*  AR_B   - Product of the causal forward and reverse pitch*           prediction gains*  AR_F   - Product of the noncausal forward and reverse pitch*           prediction gains* Internal:*  OLDSGN - Previous sign of dithered signal*  VLEN   - Length of voicing window*  START  - Lower address of current half of voicing window*  STOP   - Upper address of current half of voicing window*  E_0    - Energy of LPF speech (sum of squares - SS)*  E_B    - Energy of LPF speech backward one pitch period (SS)*  E_F    - Energy of LPF speech forward one pitch period (SS)*  R_B    - Autocovariance of LPF speech backward one pitch period*  R_F    - Autocovariance of LPF speech forward one pitch period*  LP_RMS - Energy of LPF speech (sum of magnitudes - SM)*  AP_RMS - Energy of all-pass speech (SM)*  E_PRE  - Energy of 6dB preemphasized speech (SM)*  E0AP   - Energy of all-pass speech (SS)*	SUBROUTINE VPARMS( VWIN, INBUF, LPBUF, BUFLIM, HALF, DITHER, MINTAU,     1    ZC, LBE, FBE, QS, RC1, AR_B, AR_F )	INTEGER BUFLIM(4), VWIN(2)	REAL INBUF(BUFLIM(1):BUFLIM(2)), LPBUF(BUFLIM(3):BUFLIM(4))	INTEGER HALF, ZC, LBE, FBE, MINTAU	REAL DITHER, QS, RC1, AR_B	REAL AR_F	INTEGER I, VLEN, START, STOP	REAL OLDSGN, E_0, E_B, R_B, LP_RMS, AP_RMS, E_PRE, E0AP	REAL E_F, R_F*   Calculate zero crossings (ZC) and several energy and correlation*   measures on low band and full band speech.  Each measure is taken*   over either the first or the second half of the voicing window,*   depending on the variable HALF.	LP_RMS = 0.	AP_RMS = 0.	E_PRE = 0.	E0AP = 0.	RC1 = 0.	E_0 = 0.	E_B = 0.	E_F = 0.	R_F = 0.	R_B = 0.	ZC = 0	VLEN = VWIN(2) - VWIN(1) + 1	START = VWIN(1) + (HALF-1)*VLEN/2 + 1	STOP = START + VLEN/2 - 1	OLDSGN = SIGN( 1., INBUF(START-1)-DITHER )	DO I = START, STOP	   LP_RMS = LP_RMS + ABS(LPBUF(I))	   AP_RMS = AP_RMS + ABS(INBUF(I))	   E_PRE = E_PRE + ABS(INBUF(I)-INBUF(I-1))	   E0AP = E0AP + INBUF(I)**2	   RC1 = RC1 + INBUF(I)*INBUF(I-1)	   E_0 = E_0 + LPBUF(I)**2	   E_B = E_B + LPBUF(I-MINTAU)**2	   E_F = E_F + LPBUF(I+MINTAU)**2	   R_F = R_F + LPBUF(I)*LPBUF(I+MINTAU)	   R_B = R_B + LPBUF(I)*LPBUF(I-MINTAU)	   IF( SIGN(1.,INBUF(I)+DITHER) .NE. OLDSGN ) THEN	      ZC = ZC + 1	      OLDSGN = -OLDSGN	   END IF	   DITHER = -DITHER	END DO*   Normalized short-term autocovariance coefficient at unit sample delay	RC1 = RC1 / MAX(E0AP,1.)*   Ratio of the energy of the first difference signal (6 dB/oct preemphasis)*   to the energy of the full band signal	QS = E_PRE / MAX(2.*AP_RMS,1.)*   aR_b is the product of the forward and reverse prediction gains,*   looking backward in time (the causal case).	AR_B = (R_B / MAX(E_B,1.)) * (R_B / MAX(E_0,1.))*   aR_f is the same as aR_b, but looking forward in time (non causal case).	AR_F = (R_F / MAX(E_F,1.)) * (R_F / MAX(E_0,1.))*   Normalize ZC, LBE, and FBE to old fixed window length of 180.*   (The fraction 90/VLEN has a range of .58 to 1)	ZC =       NINT( ZC*2     * (90./VLEN) )	LBE = MIN( NINT( LP_RMS/4 * (90./VLEN) ), 32767 )	FBE = MIN( NINT( AP_RMS/4 * (90./VLEN) ), 32767 )	RETURN	END

⌨️ 快捷键说明

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