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

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

?? matrixoper.cpp

?? 矩陣運(yùn)算處理,包括FFT,IFFT,FFTSHIFT等
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "stdafx.h"
#include "math.h"
COMPLEX CMatrixOper::Add(COMPLEX c1,COMPLEX c2)
{
	COMPLEX   c;   
	c.re=c1.re+c2.re;   
	c.im=c1.im+c2.im;   
	return   c; 	
}

COMPLEX CMatrixOper::Sub(COMPLEX c1,COMPLEX c2)
{
	COMPLEX   c;   
	c.re=c1.re-c2.re;   
	c.im=c1.im-c2.im;   
	return   c; 
}

COMPLEX CMatrixOper::Mul(COMPLEX c1,COMPLEX c2)
{
	COMPLEX   c;   
	c.re=c1.re*c2.re-c1.im*c2.im;   
	c.im=c1.re*c2.im+c2.re*c1.im;   
	return   c;  	
}

void CMatrixOper::Convert(COMPLEX*c1)
{
	(*c1).im = -(*c1).im;	
}   
/*  參數(shù):   
    
  FD為頻域值   
  TD為時(shí)域值   
  power為2的冪數(shù)   
    
  返回值:   
    
    
  說明:   
    
  本函數(shù)利用快速傅立葉變換實(shí)現(xiàn)傅立葉變換   
  ****************************************************/    
void CMatrixOper::FFT(COMPLEX*TD,COMPLEX*FD,int power)
{
	int   count;   
	int   i,j,k,bfsize,p;   
	double   angle;   
	COMPLEX   *W,*X1,*X2,*X;   
    
	/*計(jì)算傅立葉變換點(diǎn)數(shù)*/   
	count=1<<power;   
    
	/*分配運(yùn)算所需存儲(chǔ)器*/   
	W = (COMPLEX *)malloc(sizeof(COMPLEX)*count/2);   
	X1 = (COMPLEX *)malloc(sizeof(COMPLEX)*count);   
	X2 = (COMPLEX *)malloc(sizeof(COMPLEX)*count);   
    
	/*計(jì)算加權(quán)系數(shù)*/   
	for(i=0;i<count/2;i++)   
	{   
		angle = -i*PI*2/count;   
		W[i].re = cos(angle);   
		W[i].im = sin(angle);   
	}   
    
	/*將時(shí)域點(diǎn)寫入存儲(chǔ)器*/   
	memcpy(X1,TD,sizeof(COMPLEX)*count);   
    
	/*蝶形運(yùn)算*/   
	for(k = 0;k<power;k++)   
	{   
		for(j = 0;j<1<<k;j++)   
		{   
			bfsize = 1<<(power-k);   
			for(i = 0;i<bfsize/2;i++)   
			{   
				p = j*bfsize;   
				X2[i+p] = Add(X1[i+p],X1[i+p+bfsize/2]);   
				X2[i+p+bfsize/2] = Mul(Sub(X1[i+p],X1[i+p+bfsize/2]),W[i*(1<<k)]);   
			}   
		}   
		X = X1;   
		X1 = X2;   
		X2 = X;   
	}   
    
	/*重新排序*/   
	for(j = 0;j < count;j++)   
	{   
		p = 0;   
		for(i = 0;i<power;i++)   
		{   
			if(j&(1<<i))   
			p+=1<<(power-i-1);   
		}   
		FD[j] = X1[p];   
	}   
    
	/*釋放存儲(chǔ)器*/   
	free(W);   
	free(X1);   
	free(X2);   
}
/*  參數(shù):   
    
  FD為頻域值   
  TD為時(shí)域值   
  power為2的冪數(shù)   
    
  返回值:   
    
    
  說明:   
    
  本函數(shù)利用快速傅立葉變換實(shí)現(xiàn)傅立葉反變換   
  ****************************************************/  
void CMatrixOper::IFFT(COMPLEX*FD,COMPLEX*TD,int power)
{
	int   i,count;   
	COMPLEX *x;   
    
	/*計(jì)算傅立葉反變換點(diǎn)數(shù)*/   
	count = 1<<power;   
    
	/*分配運(yùn)算所需存儲(chǔ)器*/   
	x = (COMPLEX *)malloc(sizeof(COMPLEX)*count);   
    
	/*將頻域點(diǎn)寫入存儲(chǔ)器*/   
	memcpy(x,FD,sizeof(COMPLEX)*count);   
    
	/*求頻域點(diǎn)的共軛*/   
	for(i = 0 ;i < count; i++)   
		x[i].im = -x[i].im;   
    
	/*調(diào)用FFT*/   
	FFT(x,TD,power);   
    
	/*求時(shí)域點(diǎn)的共軛*/   
	for(i = 0;i<count;i++)   
	{   
		TD[i].re /= count;   
		TD[i].im = -TD[i].im / count;   
	}   
    
	/*釋放存儲(chǔ)器*/   
	free(x);     
}

void CMatrixOper::MatrCOMRePointMulMatr(double*Matr1,int row,int colum,COMPLEX*Matr2,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).re = *(Matr1 + i) * (*(Matr2 + i)).re;
	}
}

void CMatrixOper::MatrCOMImPointMulMatr(double*Matr1,int row,int colum,COMPLEX*Matr2,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).im = *(Matr1 + i) * (*(Matr2 + i)).im;
	}
}

void CMatrixOper::MatrPointMul(double*Matr1,int row,int colum,double*Matr2,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr1 + i) * *(Matr2 + i);
	}
}

void CMatrixOper::MatrPointDiv(double*Matr1,int row,int colum,double*Matr2,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr1 + i) / *(Matr2 + i);
	}
}

void CMatrixOper::MatrPointAdd(double*Matr1,int row,int colum,double*Matr2,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr1 + i) + *(Matr2 + i);
	}
}

void CMatrixOper::MatrPointSub(double*Matr1,int row,int colum,double*Matr2,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr1 + i) - *(Matr2 + i);
	}
}

void CMatrixOper::MatrreAddim(COMPLEX*Matr,int row,int colum)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).re = (*(Matr + i)).re + (*(Matr + i)).im;
	}
}
void CMatrixOper::MatrPointAddNum(double*Matr,int row,int colum,double a)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr + i) + a;
	}
}
void CMatrixOper::MatrPointMulNum(double*Matr,int row,int colum,double a)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr + i) * a;
	}
}
void CMatrixOper::MatrPointMulNumre(COMPLEX*Matr,int row,int colum,double a)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).re = (*(Matr + i)).re * a;
	}
}

void CMatrixOper::MatrPointMulNumim(COMPLEX*Matr,int row,int colum,double a)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).im = (*(Matr + i)).im * a;
	}
}
void CMatrixOper::MatrPointMulNumretoim(COMPLEX*Matr1,int row,int colum,double a,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).im = (*(Matr1 + i)).re * a;
	}
}

void CMatrixOper::MatrGetre(double*Matr1,int row,int colum,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).re = cos(*(Matr1 + i));
	}
}
void CMatrixOper::MatrGetim(double*Matr1,int row,int colum,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).im = sin(*(Matr1 + i));
	}
}
void CMatrixOper::MatrPointMulNumimtore(COMPLEX*Matr1,int row,int colum,double a,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).re = (*(Matr1 + i)).im * a;
	}
}
void CMatrixOper::MatrPointPow2(double*Matr1,int row,int colum,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr1 + i) * *(Matr1 + i);
	}
}
void CMatrixOper::MatrPointPow2re(COMPLEX*Matr1,int row,int colum,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).re = (*(Matr1 + i)).re * (*(Matr1 + i)).re;
	}
}

void CMatrixOper::MatrCOMreEquMatr(COMPLEX*Matr1,int row,int colum,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = (*(Matr1 + i)).re;
	}
}

void CMatrixOper::MatrCOMimEquMatr(COMPLEX*Matr1,int row,int colum,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = (*(Matr1 + i)).im;
	}
}
void CMatrixOper::MatrEqu(double*Matr1,int row,int colum,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = *(Matr1 + i);
	}
}
void CMatrixOper::MatrPointPow2im(COMPLEX*Matr1,int row,int colum,COMPLEX*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		(*(Matr + i)).im = (*(Matr1 + i)).im * (*(Matr1 + i)).im;
	}
}
void CMatrixOper::MatrPointSqrt(double*Matr1,int row,int colum,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = sqrt(*(Matr1 + i));
	}
}

void CMatrixOper::MatrPointcos(double*Matr,int row,int colum)
{
	for(int i = 0;i < row*colum;i++)
	{
		*(Matr + i) = cos(*(Matr + i));
	}
}

void CMatrixOper::MatrPoinJudge(double*Matr,int row,int colum,double range1,double range2)
{
	for(int i = 0;i < row*colum;i++)
	{	
		if ((*(Matr + i) >= range1)&&(*(Matr + i)<=range2)) 
		{
			*(Matr + i) = 1;
		}
		else
		{
			*(Matr + i) = 0;
		}
	}
}

void CMatrixOper::MatrJudge(double*Matr1,int row,int colum,double*Matr)
{
	for(int i = 0;i < row*colum;i++)
	{	
		if ((*(Matr1 + i)<=*(Matr + i))) 
		{
			*(Matr + i) = 1;
		}
		else
		{
			*(Matr + i) = 0;
		}
	}
}

void CMatrixOper::MatrPoinJudgeSmal(double*Matr,int row,int colum,double range)
{
	for(int i = 0;i < row*colum;i++)
	{	
		if (*(Matr + i)<range) 
		{
			*(Matr + i) = 1;
		}
		else
		{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区| 久久久亚洲精品石原莉奈| 国产综合一区二区| 亚洲欧美日韩中文播放| 欧美一区二区三区免费大片| 99九九99九九九视频精品| 日本中文字幕一区二区视频| 国产精品日日摸夜夜摸av| 欧美一区二区视频免费观看| 91年精品国产| 国产主播一区二区| 天堂精品中文字幕在线| 一区二区三区精品在线观看| 久久久高清一区二区三区| 在线播放/欧美激情| 色哟哟日韩精品| 国产精品一二二区| 老司机精品视频导航| 亚洲成av人**亚洲成av**| 一区二区中文字幕在线| 久久精品免费在线观看| 日韩一区二区在线播放| 在线视频国内一区二区| 91丨porny丨在线| 成人动漫一区二区在线| 国产黄色成人av| 国产精品中文欧美| 另类欧美日韩国产在线| 日日欢夜夜爽一区| 亚洲第一二三四区| 亚洲影视在线播放| 亚洲黄色av一区| 亚洲精品免费一二三区| 亚洲欧洲韩国日本视频| 国产精品另类一区| 国产精品免费视频一区| 国产精品国产三级国产aⅴ原创| 久久综合999| 久久午夜国产精品| 国产婷婷精品av在线| 欧美国产亚洲另类动漫| 国产欧美日韩精品在线| 亚洲国产电影在线观看| 国产精品护士白丝一区av| 国产欧美视频一区二区| 国产午夜精品福利| 日韩一区在线看| 亚洲男同性恋视频| 亚洲国产美国国产综合一区二区| 亚洲欧美乱综合| 亚洲国产一区二区视频| 亚洲超碰精品一区二区| 日本不卡123| 久久97超碰色| 国产a级毛片一区| 99视频精品在线| 91国内精品野花午夜精品| 欧美在线色视频| 欧美一二三四在线| 久久蜜臀精品av| 日韩伦理免费电影| 亚洲国产aⅴ成人精品无吗| 日韩主播视频在线| 韩国v欧美v日本v亚洲v| 粉嫩嫩av羞羞动漫久久久| 色一区在线观看| 4438x亚洲最大成人网| 精品少妇一区二区三区在线播放 | 色婷婷av一区二区三区软件 | 视频一区二区国产| 国产做a爰片久久毛片| 91在线视频网址| 69堂亚洲精品首页| 国产午夜精品一区二区三区视频| 亚洲精品乱码久久久久| 日韩成人精品视频| 成人天堂资源www在线| 欧美在线看片a免费观看| 日韩精品一区二区三区视频播放| 国产色爱av资源综合区| 亚洲综合丝袜美腿| 欧美日韩成人在线一区| 精品国产一区二区三区av性色 | 日韩视频中午一区| 国产精品丝袜一区| 亚洲123区在线观看| 风间由美性色一区二区三区| 欧美色图天堂网| 精品精品欲导航| 亚洲综合一二区| 国产精品白丝jk黑袜喷水| 欧美日韩视频一区二区| 久久精品人人做| 日韩国产精品久久久久久亚洲| 国产aⅴ综合色| 日韩欧美在线综合网| 亚洲日本在线看| 国产一区 二区 三区一级| 欧美日韩在线观看一区二区| 欧美激情一区二区三区蜜桃视频 | 不卡视频一二三| 欧美不卡视频一区| 亚洲精品免费看| 不卡大黄网站免费看| 精品久久人人做人人爽| 亚洲一区二区欧美激情| 成人丝袜18视频在线观看| 日韩欧美国产成人一区二区| 亚洲午夜免费视频| av成人动漫在线观看| 久久久久久久久久久电影| 日韩高清在线一区| 欧美性受极品xxxx喷水| 国产精品色哟哟| 国产乱子轮精品视频| 欧美一区二区国产| 午夜av区久久| 欧美曰成人黄网| 亚洲另类一区二区| 国产999精品久久| 亚洲精品一区二区三区精华液 | 精品一区免费av| 欧美久久久久久久久久| 一个色综合av| 91福利国产精品| 亚洲欧美另类小说| eeuss国产一区二区三区| 国产女人18毛片水真多成人如厕| 另类综合日韩欧美亚洲| 精品美女一区二区| 久久99精品一区二区三区 | 亚洲日本在线看| 91在线观看视频| 亚洲欧美中日韩| 91免费在线视频观看| 亚洲另类在线一区| 欧美日韩在线三区| 天天做天天摸天天爽国产一区| 欧美特级限制片免费在线观看| 一区二区三区四区乱视频| 日本丶国产丶欧美色综合| 亚洲乱码中文字幕| 欧美色图天堂网| 午夜电影久久久| 欧美一区二区三区四区在线观看| 蜜桃久久久久久| 亚洲精品在线观看网站| 国产一区二区视频在线| 国产亚洲精品超碰| 波多野结衣中文字幕一区二区三区| 中文字幕第一区二区| 99久久精品国产毛片| 亚洲精品成人在线| 欧美日韩国产综合视频在线观看| 青青草国产精品亚洲专区无| 精品免费日韩av| 国产激情视频一区二区三区欧美 | 亚洲成在人线在线播放| 91精品视频网| 久久电影国产免费久久电影| 精品久久久久久久久久久久久久久久久 | 久久色中文字幕| 99九九99九九九视频精品| 亚洲一二三四久久| 日韩欧美国产午夜精品| 国内精品写真在线观看| 国产精品蜜臀av| 欧美日韩一区二区三区四区| 经典三级一区二区| 国产精品蜜臀av| 欧美日韩在线精品一区二区三区激情| 日韩精品五月天| 日本一区二区三区免费乱视频| 色综合天天综合网天天狠天天| 日本欧美在线看| 中文字幕欧美激情一区| 欧美日韩午夜在线| 国产成人综合自拍| 亚洲一区在线视频| 国产区在线观看成人精品| 欧洲精品视频在线观看| 久久se这里有精品| 亚洲激情综合网| 精品国产乱码久久久久久浪潮| 91丨九色丨蝌蚪富婆spa| 久久丁香综合五月国产三级网站| 亚洲精品国产无天堂网2021| 精品人伦一区二区色婷婷| 色欧美乱欧美15图片| 国产在线不卡一区| 亚洲一区二区三区美女| 久久久精品影视| 制服丝袜中文字幕一区| 不卡影院免费观看| 蜜臀va亚洲va欧美va天堂| 亚洲欧美一区二区久久| 久久蜜桃一区二区| 制服丝袜国产精品| 一本大道久久精品懂色aⅴ| 国产成人精品一区二区三区网站观看|