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

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

?? matrixoper.cpp

?? 矩陣運算處理,包括FFT,IFFT,FFTSHIFT等
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#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;	
}   
/*  參數:   
    
  FD為頻域值   
  TD為時域值   
  power為2的冪數   
    
  返回值:   
    
    
  說明:   
    
  本函數利用快速傅立葉變換實現傅立葉變換   
  ****************************************************/    
void CMatrixOper::FFT(COMPLEX*TD,COMPLEX*FD,int power)
{
	int   count;   
	int   i,j,k,bfsize,p;   
	double   angle;   
	COMPLEX   *W,*X1,*X2,*X;   
    
	/*計算傅立葉變換點數*/   
	count=1<<power;   
    
	/*分配運算所需存儲器*/   
	W = (COMPLEX *)malloc(sizeof(COMPLEX)*count/2);   
	X1 = (COMPLEX *)malloc(sizeof(COMPLEX)*count);   
	X2 = (COMPLEX *)malloc(sizeof(COMPLEX)*count);   
    
	/*計算加權系數*/   
	for(i=0;i<count/2;i++)   
	{   
		angle = -i*PI*2/count;   
		W[i].re = cos(angle);   
		W[i].im = sin(angle);   
	}   
    
	/*將時域點寫入存儲器*/   
	memcpy(X1,TD,sizeof(COMPLEX)*count);   
    
	/*蝶形運算*/   
	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];   
	}   
    
	/*釋放存儲器*/   
	free(W);   
	free(X1);   
	free(X2);   
}
/*  參數:   
    
  FD為頻域值   
  TD為時域值   
  power為2的冪數   
    
  返回值:   
    
    
  說明:   
    
  本函數利用快速傅立葉變換實現傅立葉反變換   
  ****************************************************/  
void CMatrixOper::IFFT(COMPLEX*FD,COMPLEX*TD,int power)
{
	int   i,count;   
	COMPLEX *x;   
    
	/*計算傅立葉反變換點數*/   
	count = 1<<power;   
    
	/*分配運算所需存儲器*/   
	x = (COMPLEX *)malloc(sizeof(COMPLEX)*count);   
    
	/*將頻域點寫入存儲器*/   
	memcpy(x,FD,sizeof(COMPLEX)*count);   
    
	/*求頻域點的共軛*/   
	for(i = 0 ;i < count; i++)   
		x[i].im = -x[i].im;   
    
	/*調用FFT*/   
	FFT(x,TD,power);   
    
	/*求時域點的共軛*/   
	for(i = 0;i<count;i++)   
	{   
		TD[i].re /= count;   
		TD[i].im = -TD[i].im / count;   
	}   
    
	/*釋放存儲器*/   
	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
		{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品一区二区三区三区| 国产精品国产三级国产专播品爱网 | 91丝袜美女网| 欧美私人免费视频| 精品处破学生在线二十三| 国产日韩欧美高清在线| 亚洲一级二级三级| 狠狠色丁香婷综合久久| 99re8在线精品视频免费播放| 欧美老年两性高潮| 国产视频一区在线观看| 亚洲福利视频导航| 国产成人免费视频网站| 欧美日韩亚洲综合一区| 久久久精品影视| 亚洲国产欧美在线| 国产河南妇女毛片精品久久久 | 亚洲国产视频网站| 国内精品视频666| 色狠狠色噜噜噜综合网| 久久美女高清视频| 午夜欧美在线一二页| 成人免费视频视频| 日韩欧美的一区| 亚洲欧美一区二区三区国产精品 | 久久久久久久久久看片| 亚洲电影你懂得| 成人精品高清在线| 精品日韩欧美在线| 亚洲高清免费视频| 成人av在线电影| 精品少妇一区二区三区在线视频| 亚洲欧美激情视频在线观看一区二区三区 | 国产中文一区二区三区| 色噜噜狠狠色综合欧洲selulu| 久久综合给合久久狠狠狠97色69| 一级女性全黄久久生活片免费| 国产美女久久久久| 欧美一区日韩一区| 亚洲小说欧美激情另类| 国产91精品久久久久久久网曝门| 337p亚洲精品色噜噜狠狠| 亚洲精品免费在线播放| 国产在线观看免费一区| 欧美久久一二三四区| 亚洲美腿欧美偷拍| 国产成人精品影视| 欧美大白屁股肥臀xxxxxx| 亚洲线精品一区二区三区| 成人h动漫精品一区二区| 337p日本欧洲亚洲大胆精品| 日日夜夜精品视频免费| 欧洲精品一区二区三区在线观看| 中文成人综合网| 精品一区二区免费视频| 欧美一区二区三区性视频| 亚洲综合999| 色婷婷综合中文久久一本| 国产精品无码永久免费888| 国产精品综合视频| 久久久美女毛片| 久久99精品国产麻豆婷婷| 欧美精品v日韩精品v韩国精品v| 一区二区三区自拍| 91视频国产资源| 日韩美女视频一区| 97se狠狠狠综合亚洲狠狠| 国产精品区一区二区三| 波多野结衣在线aⅴ中文字幕不卡| 国产亚洲视频系列| 国产一区二区看久久| 26uuu精品一区二区| 国内国产精品久久| 久久影视一区二区| 国产福利一区二区三区视频 | 成人综合在线观看| 国产精品无遮挡| 99久久精品免费看国产| 亚洲日本成人在线观看| 日本精品一级二级| 性久久久久久久| 日韩一级片在线观看| 久久精品人人做人人综合| 91麻豆文化传媒在线观看| 国产精品欧美经典| 97精品国产露脸对白| 亚洲女性喷水在线观看一区| 色综合网色综合| 亚洲精品成人天堂一二三| 欧美三级视频在线观看 | 91在线观看视频| 亚洲精品精品亚洲| 欧美理论在线播放| 精品在线免费视频| 欧美激情一区二区三区在线| 99精品久久99久久久久| 亚洲曰韩产成在线| 欧美一级在线视频| 国产精品亚洲人在线观看| 国产精品福利一区二区| 91成人免费电影| 免费精品99久久国产综合精品| xfplay精品久久| thepron国产精品| 亚洲午夜电影在线观看| 精品国产乱码久久久久久夜甘婷婷 | 欧美日韩免费不卡视频一区二区三区| 亚洲aⅴ怡春院| 亚洲一区二区三区自拍| 一区二区三区精品在线观看| 欧美日韩另类一区| 美国十次了思思久久精品导航| 国产日韩欧美高清| 欧美系列日韩一区| 国精产品一区一区三区mba视频 | 成人自拍视频在线| 一区二区三区四区视频精品免费 | 国产乱色国产精品免费视频| ㊣最新国产の精品bt伙计久久| 精品视频999| 丰满白嫩尤物一区二区| 香港成人在线视频| 久久久国产综合精品女国产盗摄| 91免费国产视频网站| 伦理电影国产精品| 亚洲欧美经典视频| 久久久久高清精品| 欧美专区日韩专区| 丰满亚洲少妇av| 日本欧美在线看| 亚洲另类在线制服丝袜| 精品久久久久久久久久久院品网| 91在线观看高清| 精品在线亚洲视频| 亚洲高清在线精品| 国产精品久久久久9999吃药| 欧美一级在线免费| 91成人网在线| 成人久久久精品乱码一区二区三区 | 成人av综合一区| 免费人成精品欧美精品| 亚洲人成网站色在线观看| 精品国产乱码久久久久久牛牛| 一本久道中文字幕精品亚洲嫩| 精品亚洲欧美一区| 午夜精品久久久久久久久久| 国产精品久久久久久久久动漫| 精品成人私密视频| 欧美片网站yy| 色狠狠一区二区| 丁香另类激情小说| 国产中文字幕一区| 日本美女一区二区| 亚洲成人免费在线| 亚洲免费观看高清完整版在线观看熊| 久久日韩粉嫩一区二区三区| 欧美丰满少妇xxxbbb| 色噜噜狠狠成人网p站| 成人sese在线| 成人中文字幕在线| 国产成人在线色| 久久国产精品区| 日产欧产美韩系列久久99| 亚洲精品视频在线| 国产精品免费免费| 久久久久久日产精品| 久久亚洲精华国产精华液| 日韩色视频在线观看| 欧美精品丝袜中出| 欧美日韩一区二区三区不卡| 色综合中文综合网| 日韩影视精彩在线| 亚洲成av人片在www色猫咪| 亚洲女女做受ⅹxx高潮| 国产三级久久久| www久久久久| 久久这里只有精品首页| 精品精品国产高清a毛片牛牛| 欧美一区二区三区视频| 在线综合视频播放| 欧美一区二区视频在线观看2020| 欧美日韩一区二区三区在线 | 蜜臀av亚洲一区中文字幕| 亚洲第一电影网| 日韩不卡一二三区| 天堂资源在线中文精品| 婷婷六月综合亚洲| 免费看欧美女人艹b| 精品一区二区在线看| 韩国一区二区视频| 国产suv精品一区二区6| 丁香婷婷综合色啪| 成人激情图片网| 91蝌蚪porny成人天涯| 色美美综合视频| 欧美日韩精品免费| 日韩精品中文字幕一区二区三区| 精品国产乱码久久久久久久久| 久久久久久麻豆| 国产精品大尺度|