亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? postfilt.c

?? MELPe 1200 bps, fixed point
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
				L_temp = L_mult(gain, temp1);                          /* Q15 */
				nokori[j] = extract_l(L_shr(L_temp, 15));               /* Q0 */
			}
		}

		temp1 = ALPH;                                                  /* Q15 */
		temp2 = BETA;
		for (j = 0; j < LPC_ORD; j++){
			alphaipFIR[j] = mult(synLPC[j], temp1);                    /* Q12 */
			alphaipIIR[j] = mult(synLPC[j], temp2);
			temp1 = mult(ALPH, temp1);
			temp2 = mult(BETA, temp2);
		}

		for (j = 0; j < SYN_SUBFRAME; j++){
			L_sum = 0;
			for (k = 0; k < LPC_ORD; k++){
				L_temp = L_mult(mem1[k], alphaipFIR[k]);               /* Q13 */
				L_sum = L_add(L_sum, L_temp);                          /* Q13 */
			}
			for (k = LPC_ORD - 1; k > 0; k--)
				mem1[k] = mem1[k - 1];
			mem1[0] = synhp[j];
			L_temp = L_shl(L_deposit_l(synhp[j]), 13);                 /* Q13 */
			L_sum = L_add(L_sum, L_temp);

			for (k = 0; k < LPC_ORD; k++){
				L_temp = L_mult(mem2[k], alphaipIIR[k]);               /* Q13 */
				L_sum = L_sub(L_sum, L_temp);                          /* Q13 */
			}
			for (k = LPC_ORD - 1; k > 0; k--)
				mem2[k] = mem2[k - 1];
			L_sum = L_shr(L_sum, 13);                                   /* Q0 */
			mem2[0] = extract_l(L_sum);                                 /* Q0 */
			speech[i*SYN_SUBFRAME + j] = extract_l(L_sum);              /* Q0 */
		}
	}

	/* Computing op, the sum of squares of processed speech[].  We would      */
	/* treat speech[] as if it is Q15.                                        */

	op = 0;
	for (i = 0; i < FRAME; i++){
		temp = abs_s(speech[i]);
		if (op < temp)
			op = temp;
	}
	temp_shift = norm_s(op);
	L_sum = 0;
	for (i = 0; i < FRAME; i++){
		temp = shl(speech[i], temp_shift);                             /* Q15 */
		L_temp = L_mult(temp, temp);                                   /* Q31 */
		L_temp = L_shr(L_temp, 8);                                     /* Q23 */
		L_sum = L_add(L_sum, L_temp);                                  /* Q23 */
	}
	temp_shift = shl(temp_shift, 1);                  /* Squaring of speech[] */
	op_shift = sub(8, temp_shift);                   /* Aligning Q23 with Q31 */
	temp_shift = norm_l(L_sum);
	op_shift = sub(op_shift, temp_shift);
	op = extract_h(L_shl(L_sum, temp_shift));                          /* Q15 */

	/* According to the statistics collected from the 16 noisy speech files,  */
	/* gain ranges between 0.41 and 1.10.  It is difficult to estimate the    */
	/* absolute upper and lower bounds for gain, because we only know emph    */
	/* is between 0 and 0.5 when we filter speech[] into synhp[], and the     */
	/* filters formed with alphaipFIR[] and alphaipIIR[] form another problem */
	/* where we cannot easily predict how the roots for the polynomials       */
	/* formed with alphaipFIR[] and alphaipIIR[] are distributed, other than  */
	/* the ratio among them (determined by ALPH and BETA).  Therefore, we     */
	/* will simply use Q14 for gain and apply the necessary truncations.      */

	/* The original condition here compares op against 256 == 2^8.  Since we  */
	/* treated speech[] as Q15 instead of Q0, the computed op will be only    */
	/* 2^{-30} of the original value.  Therefore we only need to compare      */
	/* op_shift with -22 instead of calling comp_data_shift().                */

	if (op_shift >= -22){

		/* gain = sqrt(sp/op); */
		sp = shr(sp, 1);
		sp_shift = add(sp_shift, 1);
		temp_shift = sub(sp_shift, op_shift);
		if (temp_shift & 0x0001){                        /* temp_shift is odd */
			sp = shr(sp, 1);
			temp_shift = add(temp_shift, 1);
		}
		temp = divide_s(sp, op);                                       /* Q15 */
		temp_shift = shr(temp_shift, 1);
		temp = sqrt_Q15(temp);		                                  /* Q15 */
		temp_shift = sub(temp_shift, 1);

		/* There is no vigorous proof that the following left shift will      */
		/* never overflow.  However, experiences say that this is unlikely    */
		/* that is, sp/op is larger than 4, where the input speech[] has a    */
		/* larger energy than the processed one.  If we want to make the code */
		/* "bullet-proof", we can saturate gain computed below.               */

		gain = shl(temp, temp_shift);                                  /* Q14 */
	} else
		gain = 0;

	for (i = 0; i < FRAME; i++){
		L_temp = L_mult(gain, speech[i]);                              /* Q15 */
		speech[i] = extract_l(L_shr(L_temp, 15));                       /* Q0 */
	}

	/* The add() used for pos[i] below should not result in saturations.      */
	/* pos[] is multiplied by window[], while when we computed nokori[] it    */
	/* was multiplied by (1 - window[]).  gain multiplied by the filter       */
	/* output does not seem to saturate.                                      */

	for (i = 0; i < SMOOTH_LEN; i++){
		temp = mult(speech[i], window[i]);                              /* Q0 */
		speech[i] = add(temp, nokori[i]);                               /* Q0 */
	}

	/* 0.88770 = 0.9672 * 0.9178, where 0.9672 and 0.9178 come from the two   */
	/* filters below.  29088 is 0.8877 in Q15.                                */

	v_scale(speech, 29088, FRAME);

	/* Previous implementation of lpf3500() and hpf60() used iir_2nd_s().  It */
	/* was found that the accuracy is not sufficient and both low-frequency   */
	/* and high-frequency oscillations are found in the filtered signal.  Our */
	/* solutions are three-folds:                                             */
	/* (1) Using iir_2nd_d() instead of iir_2nd_s().                          */
	/* (2) We avoid the 2nd-order filter regarding the numerator              */
	/*     coefficients.  We use {1, -2, 1} and {1, 2, 1} (Q13) inside the    */
	/*     filter and move the gain multiplication out of the filters.        */
	/* (3) Both filters contribute a gain of 0.88770.  This gain is applied   */
	/*     before we feed the signal into the filters.  This tends to reduce  */
	/*     the likelihood of saturation.                                      */

	lpf3500(speech); 
	hpf60(speech);
}


/* The filter hpf60() can be rewritten as                                     */
/*                                                                            */
/*        Y(z)        (1 + AH z^{-1} + BH z^{-2})                             */
/* H(z) = ---- = GH * ---------------------------    (refer to the floating   */
/*        X(z)        (1 + CH z^{-1} + DH z^{-2})              point version) */
/*                                                                            */
/*                 (1 - 2 z^{-1} + z^{-2})                                    */
/*      = ---------------------------------------- * 0.9672                   */
/*          (1.0 - 1.9334 z^{-1} + 0.9355 z^{-2})                             */

static void		hpf60(Shortword speech[])
{
	static const Shortword  hpf60_num[3] = {                           /* Q13 */
								8192, -16384, 8192
	};
	static const Shortword  hpf60_den[3] = {                  /* Negated; Q13 */
								-8192, 15838, -7664
	};
	static Shortword	hpf60_delin[2] = {0, 0};                       /* Q13 */
	static Shortword	hpf60_delout_hi[2] = {0, 0};
	static Shortword	hpf60_delout_lo[2] = {0, 0};


	iir_2nd_d(speech, hpf60_den, hpf60_num, speech, hpf60_delin,
			  hpf60_delout_hi, hpf60_delout_lo, FRAME);
}


/* Refer to the comment for hpf60(), this filter can be rewritten as          */
/*                                                                            */
/*        Y(z)        (1 + AL z^{-1} + BL z^{-2})                             */
/* H(z) = ---- = GL * ---------------------------    (refer to the floating   */
/*        X(z)        (1 + CL z^{-1} + DL z^{-2})              point version) */
/*                                                                            */
/*                (1 + 2 z^{-1} + z^{-2})                                     */
/*      = ---------------------------------------- * 0.9178                   */
/*          (1.0 + 1.8307 z^{-1} + 0.8446 z^{-2})                             */

static void		lpf3500(Shortword speech[])
{
	static const Shortword	lpf3500_num[3] = {                         /* Q13 */
								8192, 16384, 8192
	};
	static const Shortword	lpf3500_den[3] = {                /* Negated; Q13 */
								-8192, -14997, -6919
	};
	static Shortword	lpf3500_delin[2] = {0, 0};                     /* Q13 */
	static Shortword	lpf3500_delout_hi[2] = {0, 0};
	static Shortword	lpf3500_delout_lo[2] = {0, 0};


	iir_2nd_d(speech, lpf3500_den, lpf3500_num, speech, lpf3500_delin,
			  lpf3500_delout_hi, lpf3500_delout_lo, FRAME);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色成人综合| 欧美日韩一区二区三区四区| 亚洲综合在线观看视频| 欧美一级日韩一级| 成人一区二区三区在线观看 | 亚洲一区二区四区蜜桃| 精品福利一区二区三区| 色欧美88888久久久久久影院| 蜜臀久久99精品久久久画质超高清| 国产精品久久久久久久裸模 | 精品久久久久久最新网址| 97久久超碰国产精品| 精品一区二区三区免费观看| 亚洲综合无码一区二区| 国产精品色噜噜| 日韩免费福利电影在线观看| 91久久精品网| 成人免费黄色在线| 国产一区激情在线| 蜜臀av一区二区三区| 亚洲综合在线第一页| 1024国产精品| 欧美高清在线一区二区| 欧美精品一区二区三区在线播放| 欧美老年两性高潮| 欧美日韩不卡视频| 欧美色视频在线观看| 色一区在线观看| www.视频一区| 91精品国产91久久综合桃花| 91福利区一区二区三区| 91网页版在线| 色婷婷久久综合| 91老师片黄在线观看| 99精品国产99久久久久久白柏| 国产91精品一区二区| 国产不卡免费视频| 国产成人精品一区二区三区网站观看| 老司机免费视频一区二区三区| 午夜久久久久久电影| 亚洲午夜日本在线观看| 亚洲一区二区三区美女| 亚洲综合色区另类av| 亚洲综合激情另类小说区| 亚洲高清久久久| 亚洲成人激情社区| 免费看日韩a级影片| 蜜臀av性久久久久蜜臀aⅴ流畅| 裸体在线国模精品偷拍| 精品亚洲成a人| 国产成人精品免费视频网站| 成人avav影音| 色屁屁一区二区| 欧美人伦禁忌dvd放荡欲情| 欧美另类一区二区三区| 日韩欧美在线影院| 2023国产精品视频| 国产精品三级视频| 亚洲人成在线观看一区二区| 亚洲国产日产av| 人人爽香蕉精品| 国产激情视频一区二区三区欧美| 成人福利视频网站| 91蝌蚪国产九色| 欧美午夜精品久久久久久孕妇| 911国产精品| 久久久一区二区| 蜜臀久久99精品久久久久宅男 | 亚洲丶国产丶欧美一区二区三区| 亚洲午夜激情av| 午夜视频一区二区三区| 日韩中文欧美在线| 激情久久五月天| 成年人午夜久久久| 在线看国产日韩| 欧美电影免费观看完整版| 国产欧美日韩三区| 亚洲444eee在线观看| 激情久久五月天| 91蜜桃视频在线| 91精品国产综合久久久蜜臀图片 | 亚洲少妇30p| 日韩精品欧美精品| 国产成人免费xxxxxxxx| 在线观看一区二区精品视频| 精品美女在线播放| 伊人色综合久久天天| 久久99蜜桃精品| 99精品视频在线播放观看| 欧美一区二区在线不卡| 国产精品丝袜黑色高跟| 婷婷综合五月天| av亚洲精华国产精华精| 精品精品国产高清a毛片牛牛| 亚洲视频网在线直播| 日本视频一区二区| 日本高清不卡视频| 中文字幕成人av| 麻豆成人久久精品二区三区红 | 成人av资源下载| 日韩写真欧美这视频| 一区二区三区高清| 91麻豆精品久久久久蜜臀| 中文一区一区三区高中清不卡| 污片在线观看一区二区 | 欧美大胆一级视频| 亚洲在线免费播放| eeuss鲁片一区二区三区| 欧美tk丨vk视频| 日本女人一区二区三区| 色999日韩国产欧美一区二区| 久久久精品欧美丰满| 免费人成精品欧美精品| 欧美视频在线一区二区三区 | 精品国产免费久久| 天天射综合影视| 日本韩国精品在线| 中文字幕日韩精品一区| 国产精品99久久久久久宅男| 日韩欧美成人激情| 视频一区视频二区在线观看| 一本大道av伊人久久综合| 国产精品久久久久aaaa樱花| 国产精品资源站在线| 欧美成人女星排名| 青青草伊人久久| 日韩一区二区不卡| 日韩成人精品在线| 宅男在线国产精品| 免费成人在线视频观看| 欧美一区二区在线看| 日韩中文字幕不卡| 91精品国产全国免费观看| 五月婷婷欧美视频| 欧美欧美午夜aⅴ在线观看| 午夜精品福利一区二区三区av | 亚洲图片激情小说| 国产999精品久久| 中文字幕精品一区二区三区精品| 国产精品乡下勾搭老头1| 国产欧美视频在线观看| 丁香婷婷综合色啪| 中文字幕在线不卡国产视频| 97久久超碰精品国产| 一区二区国产视频| 欧美日韩另类一区| 天天综合日日夜夜精品| 日韩欧美国产三级电影视频| 裸体在线国模精品偷拍| 久久久国产午夜精品| 99re热视频这里只精品| 亚洲免费观看在线观看| 欧洲国产伦久久久久久久| 亚洲国产精品一区二区www在线| 777a∨成人精品桃花网| 麻豆精品一区二区三区| 国产欧美一区二区精品忘忧草| 99精品国产视频| 亚洲电影第三页| 精品久久人人做人人爱| 成人一级黄色片| 亚洲一区在线观看免费观看电影高清| 欧美日韩一区二区在线观看| 免费看日韩精品| 国产精品麻豆网站| 欧洲一区二区三区免费视频| 美腿丝袜一区二区三区| 日本一区二区高清| 欧美亚洲国产一区在线观看网站 | 亚洲福利电影网| 精品国产91乱码一区二区三区| 欧美猛男超大videosgay| 久久av老司机精品网站导航| 国产精品网友自拍| 制服丝袜在线91| 懂色av中文一区二区三区 | 天堂va蜜桃一区二区三区| ww久久中文字幕| 在线免费观看成人短视频| 美女脱光内衣内裤视频久久网站 | 国产麻豆视频精品| 一区二区三区中文免费| 欧美大片顶级少妇| 色婷婷精品久久二区二区蜜臂av | 成人av在线资源| 日韩中文字幕不卡| 中文字幕在线不卡国产视频| 欧美一区二区三区系列电影| 成年人午夜久久久| 裸体一区二区三区| 亚洲综合免费观看高清完整版在线| 26uuu成人网一区二区三区| 欧美综合欧美视频| 国产精品亚洲第一区在线暖暖韩国| 亚洲网友自拍偷拍| 国产精品美女久久久久久2018| 91精品国产入口| 欧美在线小视频| 不卡区在线中文字幕| 激情久久久久久久久久久久久久久久|