001.cpp

来自「这是个简单傅立叶转换程序」· C++ 代码 · 共 66 行

CPP
66
字号
// 001.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
#define N 10

void main()
{
	unsigned short image[10][10] =
	{
		{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,255,255,255,255,255,255,255,255,  0},
		{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0}
	};

	double c[10][10];

	double au[10];
	int i, j, m, n;
	
	for(i=0; i<10; i++) {
		if(i==0)	
			au[i]=sqrt(1/(double)N);
		else
			au[i]=sqrt(2/(double)N);
	}
	
	double sum;
	
	for(i=0; i<10; i++) {
		for(j=0; j<10; j++) {
			sum = 0;
			for(m=0;m<10;m++) {
				for(n=0;n<10;n++) {
					sum+=image[m][n]*
						cos(((double)(2*m+1)*i*PI)/(double)(2*N))*
						cos(((double)(2*n+1)*j*PI)/(double)(2*N));
				}
			}
			c[i][j] = sum;
		}
	}

	double x;
	for(i=0;i<10;i++) {
		for(j=0;j<10;j++)
		{
			x=au[i]*au[j]*c[i][j];
			printf("%4.2lf  ", x);
		}
		printf("\n");
	}
}
	

⌨️ 快捷键说明

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