⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fususiyong.cpp

📁 傅立叶变换和逆变换
💻 CPP
字号:
// fususiyong.cpp: implementation of the Cfususiyong class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "fususiyong.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Cfususiyong::Cfususiyong()
{
	jisuan_cansu(8);
}

Cfususiyong::~Cfususiyong()
{

}

void Cfususiyong::jisuan_cansu(int p)
{
	r=p;
	if(r<2)r=2;
	if(r>8)r=8;

	if(r==8)
	{
		max_a=256;
		max_b=128;
		fenmu=16320.0;
	}
	if(r==7)
	{
		max_a=128;
		max_b=64;
		fenmu=8160.0;
	}
	if(r==6)
	{
		max_a=64;
		max_b=32;
		fenmu=4080.0;
	}
	if(r==5)
	{
		max_a=32;
		max_b=16;
		fenmu=2040.0;
	}
	if(r==4)
	{
		max_a=16;
		max_b=8;
		fenmu=1020.0;
	}
	if(r==3)
	{
		max_a=8;
		max_b=4;
		fenmu=510.0;
	}
	if(r==2)
	{
		max_a=4;
		max_b=2;
		fenmu=255.0;
	}
}

void Cfususiyong::seding_TD(int i, int uc)
{
	if(i<max_a)
	{
		TD[i].a=uc;
		TD[i].b=0.0;
	}
}

void Cfususiyong::seding_FFT()
{
	pfusu.FFT(TD,FD,r);	
}

void Cfususiyong::seding_FDm()
{
	int i,m;
	double a,b,c,d;

	for(i=0;i<max_b;i++)
	{
		a=FD[i+1].a;
		b=FD[i+1].b;
		c=sqrt(a*a+b*b);
		d=c*255.0/fenmu;

		m=(int)d;
		if(m<0)m=0;
		if(m>255)m=255;

		FDm[i]=(unsigned char)m;
	}
}

int Cfususiyong::get_FDm(int i)
{
	int ri=0;
	if(i<max_b)
	{
		ri=FDm[i];
	}
	return ri;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -