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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fft_lib.c

?? MELPe 1200 bps, fixed point
?? C
字號:
/* ================================================================== */
/*                                                                    */ 
/*    Microsoft Speech coder     ANSI-C Source Code                   */
/*    SC1200 1200 bps speech coder                                    */
/*    Fixed Point Implementation      Version 7.0                     */
/*    Copyright (C) 2000, Microsoft Corp.                             */
/*    All rights reserved.                                            */
/*                                                                    */ 
/* ================================================================== */

/* ===================================== */
/* fft_lib.c: Fourier series subroutines */
/* ===================================== */

/* compiler include files */
#include "sc1200.h"
#include "mathhalf.h"
#include "mat_lib.h"
#include "math_lib.h"
#include "constant.h"
#include "global.h"
#include "fft_lib.h"

#define SWAP(a, b)		{Shortword temp1; temp1 = (a); (a) = (b); (b) = temp1;}

/* Memory definition */
static Shortword		wr_array[FFTLENGTH/2];
static Shortword		wi_array[FFTLENGTH/2];


/* Radix-2, DIT, 2N-point Real FFT */
void rfft(Shortword datam1[], Shortword n)
{
	Shortword	i, n_2;
	Shortword	r1, r2, i1, i2;
	Shortword	wr, wi, data_max;
	Shortword	index;
	Longword	L_temp1, L_temp2;

	n_2 = shr(n, 1);
	cfft(datam1, n_2);
	/* Check for overflow */
	data_max = 0;
	for (i = 0; i < n; i++){
		if (sub(data_max, abs_s(datam1[i])) < 0)
			data_max = abs_s(datam1[i]);
	}
	if (data_max > 16383){
		for (i = 0; i < n; i++)
			datam1[i] = shr(datam1[i], 1);
	}
	/* Checking ends */
	for (i = 2; i < n_2; i += 2){
		r1		= add_shr(datam1[i], datam1[n-i]);		/* Xr(k) + Xr(N-k):RP */
		L_temp1 = L_sub(datam1[i+1], datam1[n-i+1]);	/* Xi(k) - Xi(N-k):IM */
		L_temp1	= L_shl(L_temp1,16);
		r2		= add_shr(datam1[i+1], datam1[n-i+1]);	/* Xi(k) + Xi(N-k):IP */
		L_temp2	= L_sub(datam1[i], datam1[n-i]);		/* Xr(k) - Xr(N-k):RM */
		L_temp2	= L_shl(L_temp2, 16);
		datam1[i]		= r1;
		datam1[n-i]		= r1;
		datam1[2*n-i+1]	= extract_h(L_shr(L_temp2, 1));
		L_temp2			= L_negate(L_temp2);
		datam1[n+i+1]	= extract_h(L_shr(L_temp2, 1));

		datam1[i+1]		= r2;
		datam1[n-i+1]	= r2;
		datam1[2*n-i]	= extract_h(L_shr(L_temp1, 1));
		L_temp1			= L_negate(L_temp1);
		datam1[n+i]		= extract_h(L_shr(L_temp1, 1));
	}
	datam1[n+n_2]	= 0;
	datam1[n+n_2+1]	= 0;
	r1 = add(datam1[0], datam1[1]);
	i1 = sub(datam1[0], datam1[1]);
	datam1[0]	= r1;
	datam1[1]	= 0;
	datam1[n]	= i1;
	datam1[n+1]	= 0;
	index = 1;
	wr = wr_array[index];
	wi = wi_array[index];
	for (i = 2; i < n; i += 2){
		r1 = datam1[i];
		i1 = datam1[2*n-i];
		r2 = datam1[i+1];
		i2 = datam1[2*n-i+1];

		L_temp1 = L_deposit_h(r1);
		L_temp1	= L_add(L_temp1, L_mult(r2, wr));
		L_temp1 = L_add(L_temp1, L_shl(0x0080, 8));	
		L_temp1	= L_shl(L_shr(L_temp1,16), 16);		/* round */
		L_temp1 = L_sub(L_temp1, L_mult(i2, wi));
		L_temp1 = L_add(L_temp1, L_shl(0x0080, 8));	/* round */
		datam1[i]		= extract_h(L_temp1);
		datam1[2*n-i]	= extract_h(L_temp1);

		L_temp2 = L_deposit_h(i1);
		L_temp2 = L_sub(L_temp2, L_mult(r2, wi));
		L_temp2 = L_add(L_temp2, L_shl(0x0080, 8));	
		L_temp2	= L_shl(L_shr(L_temp2,16), 16);		/* round */
		L_temp2 = L_sub(L_temp2, L_mult(i2, wr));
		L_temp2 = L_add(L_temp2, L_shl(0x0080, 8));	
		datam1[i+1]		= extract_h(L_temp2);
		datam1[2*n-i+1] = extract_h(L_negate(L_temp2));

		index += 1;
		wr = wr_array[index];
		wi = wi_array[index];
	}
}

/* Subroutine FFT: Fast Fourier Transform */
Shortword cfft(Shortword datam1[], Shortword nn)
{
	register Shortword	i, j;
	register Longword	L_tempr, L_tempi;
	Shortword	n, mmax, m, istep;
	Shortword	sPR, sQR, sPI, sQI;
	Shortword	wr, wi, data_max;
	Shortword	*data;
	Longword	L_temp1, L_temp2;
	Shortword	index, index_step;
	Shortword	guard;


	guard = 0;
	/* Use pointer indexed from 1 instead of 0 */
	data = &datam1[-1];

	n = shl(nn, 1);
	j = 1;
	for (i = 1; i < n; i += 2){
		if (j > i){
			SWAP(data[j], data[i]);
			SWAP(data[j + 1], data[i + 1]);
		}
		m = nn;
		while (m >= 2 && j > m){
			j = sub(j, m);
			m = shr(m, 1);
		}
		j = add(j, m);
	}

	/* Stage 1 */
	/* Check for Overflow */
	data_max = 0;
	for (i = 1; i <= n; i++){
		if (sub(data_max, abs_s(data[i])) < 0)
			data_max = abs_s(data[i]);
	}
	if (data_max > 16383){
		guard += 1;
		for (i = 1; i <= n; i++)
			data[i] = shr(data[i], 1);
	} 
	/* End of checking */
	for (i = 0; i < n; i += 4){
		sPR = datam1[i];
		sQR = datam1[i+2];
		sPI = datam1[i+1];
		sQI = datam1[i+2+1];
		datam1[i]		= add(sPR,sQR); /* PR' */
		datam1[i+2]		= sub(sPR,sQR); /* QR' */
		datam1[i+1]		= add(sPI,sQI); /* PI' */
		datam1[i+2+1]	= sub(sPI,sQI); /* QI' */
	}
	/* Stage 2 */
	/* Check for Overflow */
	data_max = 0;
	for (i = 1; i <= n; i++){
		if (sub(data_max, abs_s(data[i])) < 0)
			data_max = abs_s(data[i]);
	}
	if (data_max > 16383){
		guard += 1;
		for (i = 1; i <= n; i++)
			data[i] = shr(data[i], 1);
	} 
	/* End of checking */
	for (i = 0; i < n; i += 8){
		/* Butterfly 1 */
		sPR = datam1[i];
		sQR = datam1[i+4];
		sPI = datam1[i+1];
		sQI = datam1[i+4+1];
		datam1[i]		= add(sPR,sQR); /* PR' */
		datam1[i+4]		= sub(sPR,sQR); /* QR' */
		datam1[i+1]		= add(sPI,sQI); /* PI' */
		datam1[i+4+1]	= sub(sPI,sQI); /* QI' */
		/* Butterfly 2 */
		sPR = datam1[i+2];
		sQR = datam1[i+2+4];
		sPI = datam1[i+2+1];
		sQI = datam1[i+4+2+1];
		datam1[i+2]		= add(sPR,sQI); /* PR' */
		datam1[i+4+2]	= sub(sPR,sQI); /* QR' */
		datam1[i+2+1]	= sub(sPI,sQR); /* PI' */
		datam1[i+4+2+1]	= add(sPI,sQR); /* QI' */
	}
	/* Stages 3... */
	mmax = 8;

	/* initialize index step */
	index_step = shr(nn, 1);

	while (n > mmax){
		/* Overflow checking */
		data_max = 0;
		for (i = 1; i <= n; i++){
			if (sub(data_max, abs_s(data[i])) < 0)
				data_max = abs_s(data[i]);
		}
		if (data_max > 16383){
			guard += 2;
			for (i = 1; i <= n; i++)
				data[i] = shr(data[i], 2);
		} else if (data_max > 8191){
			guard += 1;
			for (i = 1; i <= n; i++)
				data[i] = shr(data[i], 1);
		}
		/* Checking ends */
		istep = shl(mmax, 1);                             /* istep = 2 * mmax */

		index = 0;
		index_step = shr(index_step, 1);

		wr = ONE_Q15;
		wi = 0;
		for (m = 1; m < mmax; m += 2){
			for (i = m; i <= n; i = add(i, istep)){
				j = add(i, mmax);

				L_temp1 = L_mult(wr, data[j]);
				L_temp2 = L_mult(wi, data[j+1]);
				L_tempr = L_add(L_temp1, L_temp2);
				L_tempr = L_add(L_tempr, L_shl(0x80, 8));
				L_tempr = L_shl(L_shr(L_tempr, 16), 16);

				sPR		= data[i];
				sQR		= data[j];
				data[i] = extract_h(L_add(L_deposit_h(sPR), L_tempr));
				data[j] = extract_h(L_sub(L_deposit_h(sPR), L_tempr));
				
				L_temp1 = L_mult(wi, sQR);
				L_temp2 = L_mult(wr, data[j+1]);
				L_tempi = L_sub(L_temp1, L_temp2);
				L_tempi = L_add(L_tempi, L_shl(0x80, 8));
				L_tempi = L_shl(L_shr(L_tempi,16), 16);

				sPI		= data[i+1];
				data[i+1] = extract_h(L_sub(L_deposit_h(sPI), L_tempi));
				data[j+1] = extract_h(L_add(L_deposit_h(sPI), L_tempi));
			}
			index = add(index, index_step);
			wr = wr_array[index];
			wi = wi_array[index];
		}
		mmax = istep;
	}
	return guard;
}


Shortword fft_npp(Shortword data[], Shortword dir)
{
	Shortword guard, n;
	
	guard = cfft(data, 256);
	if (dir < 0){ /* Reverse FFT */
		for (n = 1; n < 128; n++){
			SWAP(data[2*n], data[2*(256-n)]);
			SWAP(data[2*n+1], data[2*(256-n)+1]);
		}
	}
	return guard;
}


/* Initialization of wr_array and wi_array */
void fs_init()
{
	register Shortword	i;
	Shortword	fft_len2, shift, step, theta;


	fft_len2 = shr(FFTLENGTH, 1);
	shift = norm_s(fft_len2);
	step = shl(2, shift);
	theta = 0;

	for (i = 0; i < fft_len2; i++){
		wr_array[i] = cos_fxp(theta);
		wi_array[i] = sin_fxp(theta);
		if (i == (fft_len2 - 1))
			theta = ONE_Q15;
		else
			theta = add(theta, step);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产91久久久更新时间| 国产一区中文字幕| 国产精品久久久久婷婷二区次| 欧美成人官网二区| 欧美一区二区在线看| 在线不卡一区二区| 欧美日本一区二区在线观看| 欧美日韩国产综合草草| 欧美午夜精品一区二区蜜桃| 在线观看亚洲专区| 国产精品一卡二| 丁香网亚洲国际| 成人免费视频免费观看| 91在线丨porny丨国产| 99久久婷婷国产精品综合| 99re这里只有精品视频首页| 精品国产乱码久久久久久牛牛| 日韩免费性生活视频播放| 日韩一区二区三区在线| 丁香五精品蜜臀久久久久99网站 | 欧美日韩一区视频| 911精品国产一区二区在线| 日韩免费高清电影| 久久久精品免费观看| 国产精品美女久久久久久久| 亚洲日穴在线视频| 亚洲bt欧美bt精品777| 日本不卡的三区四区五区| 狠狠色狠狠色综合| 成人国产精品免费观看| 91麻豆国产香蕉久久精品| 欧美日韩黄色影视| 2019国产精品| 亚洲人成在线播放网站岛国 | 国产在线国偷精品产拍免费yy| 日韩欧美国产一二三区| 波多野结衣在线一区| 97se亚洲国产综合自在线观| 色综合久久久久| 欧美人动与zoxxxx乱| 欧美xxx久久| 综合欧美一区二区三区| 日韩av在线播放中文字幕| 国产精品一线二线三线精华| 国产区在线观看成人精品| 亚洲美女屁股眼交3| 六月丁香婷婷色狠狠久久| 成人av在线一区二区三区| 欧美日韩视频一区二区| 欧美激情综合五月色丁香 | 成人免费不卡视频| 欧美日韩激情在线| 中文字幕不卡在线观看| 婷婷激情综合网| 国产成人丝袜美腿| 久久99久久精品| 不卡的av网站| 欧美精三区欧美精三区| 久久久久国色av免费看影院| 精品国产1区2区3区| 一级日本不卡的影视| 国产精品女主播av| 五月天视频一区| 国产精品一品二品| 欧美日韩精品一区二区三区蜜桃| 欧美一区二区三区人| 久久久久久久综合狠狠综合| 亚洲欧美aⅴ...| 蜜桃av一区二区三区| 99久久精品情趣| 欧美一区二区视频在线观看2020 | 欧日韩精品视频| 亚洲精品在线免费播放| 亚洲综合图片区| 三级欧美在线一区| 成人性生交大片免费看在线播放 | 国产v综合v亚洲欧| 欧美日韩在线播放一区| 成人h动漫精品| 久久久亚洲综合| 亚洲伊人色欲综合网| 国产69精品久久99不卡| 3d动漫精品啪啪1区2区免费 | 欧美一区二区日韩一区二区| 国产女主播在线一区二区| 日本在线播放一区二区三区| 91在线精品秘密一区二区| 欧美xxx久久| 国产精品卡一卡二卡三| 国产成人免费视频| 91精品国产高清一区二区三区| 亚洲欧洲精品一区二区三区| 国产美女精品在线| 91.麻豆视频| 一区二区免费视频| 9色porny自拍视频一区二区| 欧美精品v日韩精品v韩国精品v| 最新日韩av在线| 国产99久久久国产精品潘金| 日韩一级视频免费观看在线| 亚洲一区免费视频| caoporn国产精品| 国产亚洲va综合人人澡精品| 久久成人久久爱| 欧美亚洲综合网| 亚洲少妇中出一区| 99久久免费视频.com| 日本一区二区三区国色天香| 极品美女销魂一区二区三区| 欧美一卡二卡在线观看| 午夜精品123| 欧美日韩一区二区三区免费看 | 久久久久99精品一区| 麻豆视频观看网址久久| 欧美三区在线观看| 亚洲人成网站在线| 91网站最新地址| 综合色中文字幕| 91免费视频网| 亚洲欧美日本在线| 91色视频在线| 亚洲免费看黄网站| 亚洲国产一区二区在线播放| 欧美日韩中字一区| 天堂蜜桃一区二区三区| 91麻豆精品国产91久久久更新时间 | 久久精品国产一区二区三| 欧美大片在线观看| 免费人成网站在线观看欧美高清| 337p亚洲精品色噜噜狠狠| 奇米777欧美一区二区| 日韩一级高清毛片| 国内外成人在线| 国产精品污网站| 91同城在线观看| 亚洲天堂福利av| 成人av片在线观看| 亚洲素人一区二区| 欧美天堂一区二区三区| 亚洲18女电影在线观看| 欧美一区二区免费观在线| 麻豆视频观看网址久久| 国产欧美日韩久久| 91视视频在线观看入口直接观看www| 亚洲免费观看高清完整版在线| 91香蕉视频在线| 美女视频网站久久| 国产丝袜欧美中文另类| 成人app软件下载大全免费| 一区二区三区日韩精品视频| 欧美美女一区二区三区| 久久成人久久鬼色| 国产精品久线观看视频| 97精品国产97久久久久久久久久久久| 一区二区三区在线视频免费观看| 欧美日韩精品一区二区三区四区 | 一区二区三区四区国产精品| 欧美日韩国产在线播放网站| 蜜桃精品视频在线观看| 国产欧美日韩视频在线观看| 91国偷自产一区二区开放时间 | 在线观看网站黄不卡| 蜜臀国产一区二区三区在线播放| 国产亚洲综合av| 在线一区二区三区四区| 久久国产精品第一页| 最新中文字幕一区二区三区| 91精品国产手机| 成人毛片老司机大片| 亚洲成av人片一区二区三区| 久久久噜噜噜久久人人看| 在线观看日韩毛片| 久久精品99久久久| 18成人在线观看| 欧美大白屁股肥臀xxxxxx| 99久久精品免费| 石原莉奈在线亚洲三区| 亚洲欧美偷拍另类a∨色屁股| 日韩欧美国产麻豆| 91黄色在线观看| 国产精品一区二区不卡| av在线不卡观看免费观看| 午夜久久久久久久久久一区二区| 日韩小视频在线观看专区| 日韩一区二区在线看片| 国产女人水真多18毛片18精品视频 | 国产99久久久国产精品潘金 | 欧美色成人综合| 精品写真视频在线观看| 欧美喷水一区二区| 成人一区二区三区视频在线观看 | av午夜一区麻豆| 婷婷久久综合九色综合绿巨人 | 成人免费毛片a| 蜜臀a∨国产成人精品| 一区二区三区在线看| 国产欧美一区视频| 日韩一区二区三区视频在线观看| 欧美日韩国产综合一区二区| 色综合久久99|