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

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

?? ufft.c

?? Vc中關于FFT算法的編程
?? C
字號:
/*
 *	fft.c
 *
 *	Unix Version 2.4 by Steve Sampson, Public Domain, September 1988
 *
 *	This program produces a Frequency Domain display from the Time Domain
 *	data input; using the Fast Fourier Transform.
 *
 *	The Real data is generated by the in-phase (I) channel, and the
 *	Imaginary data is produced by the quadrature-phase (Q) channel of
 *	a Doppler Radar receiver.  The middle filter is zero Hz.  Closing
 *	targets are displayed to the right, and Opening targets to the left.
 *
 *	Note: With Imaginary data set to zero the output is a mirror image.
 *
 *	Usage:	fft samples input output
 *		1. samples is a variable power of two.
 *		2. Input is (samples * sizeof(double)) characters.
 *		3. Output is (samples * sizeof(double)) characters.
 *		4. Standard error is help or debugging messages.
 *
 *	See also: readme.doc, pulse.c, and sine.c.
 */

/* Includes */

#include <stdio.h>
#include <malloc.h>
#include <math.h>

/* Defines */

#define	TWO_PI	(2.0 * 3.14159265358979324)	/* alias 360 deg */
#define	Chunk	(Samples * sizeof(double))

#define	sine(x)		Sine[(x)]
#define	cosine(x)	Sine[((x) + (Samples >> 2)) % Samples]

/* Globals, Forward declarations */

static int	Samples, Power;
static double	*Real, *Imag, Maxn, magnitude();
static void	scale(), fft(), max_amp(), display(), err_report();

static int	permute();
static double	*Sine;
static void	build_trig();

static FILE	*Fpi, *Fpo;


/* The program */

main(argc, argv)
int	argc;
char	**argv;
{
	if (argc != 4)
		err_report(0);

	Samples = abs(atoi(*++argv));
	Power = log10((double)Samples) / log10(2.0);

	/* Allocate memory for the variable arrays */

	if ((Real = (double *)malloc(Chunk)) == NULL)
		err_report(1);

	if ((Imag = (double *)malloc(Chunk)) == NULL)
		err_report(2);

	if ((Sine = (double *)malloc(Chunk)) == NULL)
		err_report(3);

	/* open the data files */

	if ((Fpi = fopen(*++argv, "r")) == NULL)
		err_report(4);

	if ((Fpo = fopen(*++argv, "w")) == NULL)
		err_report(5);

	/* read in the data from the input file */

	fread(Real, sizeof(double), Samples, Fpi);
	fread(Imag, sizeof(double), Samples, Fpi);
	fclose(Fpi);

	build_trig();
	scale();
	fft();
	display();

	/* write the frequency domain data to the standard output */

	fwrite(Real, sizeof(double), Samples, Fpo);
	fwrite(Imag, sizeof(double), Samples, Fpo);
	fclose(Fpo);

	/* free up memory and let's get back to our favorite shell */

	free((char *)Real);
	free((char *)Imag);
	free((char *)Sine);

	exit(0);
}


static void err_report(n)
int	n;
{
	switch (n)  {
	case 0:
		fprintf(stderr, "Usage: fft samples in_file out_file\n");
		fprintf(stderr, "Where samples is a power of two\n");
		break;
	case 1:
		fprintf(stderr, "fft: Out of memory getting real space\n");
		break;
	case 2:
		fprintf(stderr, "fft: Out of memory getting imag space\n");
		free((char *)Real);
		break;
	case 3:
		fprintf(stderr, "fft: Out of memory getting sine space\n");
		free((char *)Real);
		free((char *)Imag);
		break;
	case 4:
		fprintf(stderr,"fft: Unable to open data input file\n");
		free((char *)Real);
		free((char *)Imag);
		free((char *)Sine);
		break;
	case 5:
		fprintf(stderr,"fft: Unable to open data output file\n");
		fclose(Fpi);
		free((char *)Real);
		free((char *)Imag);
		free((char *)Sine);
		break;
	}

	exit(1);
}


static void scale()
{
	register int	loop;

	for (loop = 0; loop < Samples; loop++)  {
		Real[loop] /= Samples;
		Imag[loop] /= Samples;
	}
}


static void fft()
{
	register int	loop, loop1, loop2;
	unsigned	i1;			/* going to right shift this */
	int		i2, i3, i4, y;
	double		a1, a2, b1, b2, z1, z2;

	i1 = Samples >> 1;
	i2 = 1;

	/* perform the butterfly's */

	for (loop = 0; loop < Power; loop++)  {
		i3 = 0;
		i4 = i1;

		for (loop1 = 0; loop1 < i2; loop1++)  {
			y = permute(i3 / (int)i1);
			z1 =  cosine(y);
			z2 = -sine(y);

			for (loop2 = i3; loop2 < i4; loop2++)  {

				a1 = Real[loop2];
				a2 = Imag[loop2];

				b1  = z1*Real[loop2+i1] - z2*Imag[loop2+i1];
				b2  = z2*Real[loop2+i1] + z1*Imag[loop2+i1];

				Real[loop2] = a1 + b1;
				Imag[loop2] = a2 + b2;

				Real[loop2+i1] = a1 - b1;
				Imag[loop2+i1] = a2 - b2;
			}

			i3 += (i1 << 1);
			i4 += (i1 << 1);
		}

		i1 >>= 1;
		i2 <<= 1;
	}
}

/*
 *	Display the frequency domain.
 *
 *	The filters are aranged so that DC is in the middle filter.
 *	Thus -Doppler is on the left, +Doppler on the right.
 */

static void display()
{
	register int	loop, offset;
	int		n, x;

	max_amp();
	n = Samples >> 1;

	for (loop = n; loop < Samples; loop++)  {
		x = (int)(magnitude(loop) * 59.0 / Maxn);
		printf("%d\t|", loop - n);
		offset = 0;
		while (++offset <= x)
			putchar('=');

		putchar('\n');
	}

	for (loop = 0; loop < n; loop++)  {
		x = (int)(magnitude(loop) * 59.0 / Maxn);
		printf("%d\t|", loop + n);
		offset = 0;
		while (++offset <= x)
			putchar('=');

		putchar('\n');
	}
}

/*
 *	Find maximum amplitude
 */

static void max_amp()
{
	register int	loop;
	double		mag;

	Maxn = 0.0;
	for (loop = 0; loop < Samples; loop++)  {
		if ((mag = magnitude(loop)) > Maxn)
			Maxn = mag;
	}
}

/*
 *	Calculate Power Magnitude
 */

static double magnitude(n)
int	n;
{
	n = permute(n);
	return hypot(Real[n], Imag[n]);
}

/*
 *	Bit reverse the number
 *
 *	Change 11100000b to 00000111b or vice-versa
 */

static int permute(index)
int	index;
{
	register int	loop;
	unsigned	n1;
	int		result;

	n1 = Samples;
	result = 0;

	for (loop = 0; loop < Power; loop++)  {
		n1 >>= 1;
		if (index < n1)
			continue;

		/* Unix has a truncation problem with pow() */

		result += (int)(pow(2.0, (double)loop) + .05);
		index -= n1;
	}

	return result;
}

/*
 *	Pre-compute the sine and cosine tables
 */

static void build_trig()
{
	register int	loop;
	double		angle, increment;

	angle = 0.0;
	increment = TWO_PI / (double)Samples;

	for (loop = 0; loop < Samples; loop++)  {
		Sine[loop] = sin(angle);
		angle += increment;
	}
}

/* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲同性同志一二三专区| 国产精品123区| 国产高清不卡一区| 91精品国产全国免费观看| 国产日产欧美一区二区三区| 五月婷婷激情综合网| www.日韩av| 欧美成人精品二区三区99精品| 亚洲色欲色欲www| 成人小视频免费观看| 亚洲精品国产一区二区三区四区在线| 久久99精品一区二区三区三区| 欧美在线观看一二区| 中文字幕免费在线观看视频一区| 日韩精品三区四区| 欧美三级电影精品| 自拍偷在线精品自拍偷无码专区| 国产一区二区三区观看| 欧美成人激情免费网| 五月天网站亚洲| 欧美日韩综合在线| 亚洲综合成人在线视频| av高清不卡在线| 国产欧美一区二区精品秋霞影院| 美女一区二区视频| 欧美一级欧美一级在线播放| 图片区小说区国产精品视频| 欧美丝袜自拍制服另类| 亚洲精品美国一| 在线观看免费亚洲| 一区二区三区在线观看国产| 91久久精品一区二区| 亚洲麻豆国产自偷在线| 91在线小视频| 亚洲精品视频在线看| 91精品福利在线| 亚洲靠逼com| 在线观看日韩国产| 亚洲成av人片一区二区三区| 69堂精品视频| 黄色小说综合网站| 久久精品人人做人人综合 | 色综合久久六月婷婷中文字幕| 久久精品网站免费观看| 国产a精品视频| 亚洲丝袜精品丝袜在线| 一本色道**综合亚洲精品蜜桃冫| 一区二区三区不卡在线观看 | 亚洲国产一区在线观看| 欧美日韩一区二区不卡| 日本免费新一区视频| 欧美白人最猛性xxxxx69交| 韩国精品主播一区二区在线观看| 中文字幕免费不卡在线| 色婷婷久久一区二区三区麻豆| 午夜成人免费电影| 精品久久久久久综合日本欧美 | 夜夜嗨av一区二区三区| 欧美精品自拍偷拍| 国产精一区二区三区| 亚洲欧美二区三区| 日韩一区二区三| 成人黄色av电影| 一区二区三区四区精品在线视频 | 日本欧美一区二区三区乱码| 精品国产免费一区二区三区香蕉| 风间由美一区二区av101| 亚洲欧洲一区二区在线播放| 欧美一激情一区二区三区| 成人免费毛片app| 日本成人中文字幕| 国产精品电影一区二区| 日韩一区二区在线看| 成人国产一区二区三区精品| 日韩黄色片在线观看| 国产精品视频免费看| 欧美日韩精品欧美日韩精品一综合| 久久99久国产精品黄毛片色诱| 一区二区三区在线高清| 久久九九久久九九| 在线播放视频一区| www.欧美亚洲| 国产精品综合av一区二区国产馆| 亚洲一二三四久久| 国产精品灌醉下药二区| 26uuu精品一区二区在线观看| 欧美亚洲动漫精品| 成人午夜私人影院| 捆绑调教美女网站视频一区| 亚洲欧美精品午睡沙发| 中国色在线观看另类| 精品少妇一区二区三区| 欧美日韩国产免费| 色婷婷综合五月| 97成人超碰视| 成人手机电影网| 国产精品综合二区| 国内精品伊人久久久久影院对白| 日韩电影在线观看一区| 五月天精品一区二区三区| 一区二区三区在线免费观看 | 色老综合老女人久久久| 国产激情一区二区三区四区| 免费人成黄页网站在线一区二区| 亚洲综合在线观看视频| 国产精品大尺度| 国产欧美精品一区| 日韩欧美国产三级| 日韩欧美一级片| 精品国产乱码久久久久久蜜臀| 欧美电影一区二区| 欧美日韩亚洲综合| 欧美日韩中文国产| 在线看一区二区| 91麻豆国产香蕉久久精品| 色香蕉久久蜜桃| 欧美性受xxxx黑人xyx| 欧美三级韩国三级日本三斤| 欧美绝品在线观看成人午夜影视| 欧美日韩视频不卡| 91麻豆精品91久久久久同性| 日韩亚洲欧美高清| 亚洲精品一区二区三区福利| 久久久久免费观看| 国产精品国产自产拍在线| 国产精品视频一区二区三区不卡| 中文字幕中文字幕一区二区| 亚洲欧美另类小说| 水蜜桃久久夜色精品一区的特点| 美腿丝袜在线亚洲一区| 国产精品亚洲成人| 91麻豆免费观看| 欧美日韩中文另类| 久久婷婷国产综合国色天香| 国产精品视频麻豆| 洋洋成人永久网站入口| 日韩激情视频网站| 岛国一区二区三区| 91黄色免费观看| 欧美成人一区二区三区在线观看| 久久精品欧美一区二区三区不卡| 国产精品国产自产拍高清av王其 | 欧美性猛交xxxxxxxx| 欧美日韩一区二区在线视频| 精品伦理精品一区| 中文字幕一区在线观看视频| 亚洲va欧美va国产va天堂影院| 寂寞少妇一区二区三区| 波多野结衣中文字幕一区| 欧美精品一卡两卡| 欧美激情一区二区三区全黄| 亚洲一级在线观看| 国产精品亚洲综合一区在线观看| 97超碰欧美中文字幕| 日韩欧美电影一二三| 亚洲蜜桃精久久久久久久| 日韩av一区二区三区四区| 成人18视频在线播放| 这里只有精品99re| 国产精品久久久久久久久免费丝袜| 夜夜嗨av一区二区三区中文字幕 | 国产一区二区在线影院| 波多野结衣中文字幕一区二区三区| 欧美高清视频www夜色资源网| 欧美国产国产综合| 男女性色大片免费观看一区二区| 91视频观看免费| 国产情人综合久久777777| 午夜精品久久久久| 色成人在线视频| 中文字幕不卡三区| 激情国产一区二区| 91精品国产色综合久久| 亚洲一区成人在线| 91视频精品在这里| 国产精品国产三级国产专播品爱网| 另类专区欧美蜜桃臀第一页| 欧美日韩一区二区在线观看视频| 自拍av一区二区三区| 成人午夜大片免费观看| 精品国产乱码久久久久久蜜臀| 日韩精品一级二级| 欧美日韩成人综合| 亚洲国产日韩综合久久精品| 91在线视频观看| 亚洲色欲色欲www| 北条麻妃国产九九精品视频| 久久亚洲精精品中文字幕早川悠里| 日韩激情视频网站| 欧美午夜片在线观看| 亚洲黄色录像片| 一本色道亚洲精品aⅴ| 亚洲欧洲另类国产综合| a在线播放不卡| 最新欧美精品一区二区三区| a4yy欧美一区二区三区| 亚洲欧洲在线观看av| 91麻豆国产自产在线观看| 亚洲视频 欧洲视频| 色嗨嗨av一区二区三区|