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

📄 gnrom256.cpp

📁 8-1024可变点数FFT/IFFT变换,VHDL语言设计, 仿真通过,可以很容易综合.
💻 CPP
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <math.h>void main(){	const numbits = 32;	int i,k;
	long stmp;
	long scale;
	FILE *sinw1text,*sinw2text,*sinw3text;	FILE *cosw1text,*cosw2text,*cosw3text;	char quote;	float pi,w;	long cosdataw1[256],cosdataw2[256],cosdataw3[256];	long sindataw1[256],sindataw2[256],sindataw3[256];	char data[32+1];//32 bits + /0           pi = 3.141592653589;		  w = 2*pi*1/1024;		  quote = '"';		  scale = pow(2,numbits-1);		  sinw1text = fopen("sin256w1.txt","w+");		  cosw1text = fopen("cos256w1.txt","w+");		  sinw2text = fopen("sin256w2.txt","w+");		  cosw2text = fopen("cos256w2.txt","w+");		  sinw3text = fopen("sin256w3.txt","w+");		  cosw3text = fopen("cos256w3.txt","w+");		  // generate the first half wave cosine		  for (i=0;i<=255;i++){					 cosdataw1[i] = (long) ((scale-1)  * cos(i*w));					 sindataw1[i] = (long) ((scale-1)  * sin(i*w));
					 cosdataw2[i] = (long) ((scale-1)  * cos(2*i*w));
					 sindataw2[i] = (long) ((scale-1)  * sin(2*i*w));
					 cosdataw3[i] = (long) ((scale-1)  * cos(3*i*w));
					 sindataw3[i] = (long) ((scale-1)  * sin(3*i*w));
		  };
		  //sin w1			for (i=0;i<=255;i++){					 stmp = sindataw1[i];					 for (k=0;k<=numbits-1;k++){						 if ((stmp & 0x0001) != 0){							 data[numbits-1-k]='1';						 }else{							 data[numbits-1-k]='0';						 };						 stmp = stmp >> 1;					 };					 data[numbits]='\0';					 fprintf(sinw1text,"\t\tROMWORD'(%c",quote);					 fprintf(sinw1text,"%s",data);					 fprintf(sinw1text,"%c),--address=%d\n",quote,i);			};			fclose(sinw1text);		  //sin w2			for (i=0;i<=255;i++){					 stmp = sindataw2[i];					 for (k=0;k<=numbits-1;k++){						 if ((stmp & 0x0001) != 0){							 data[numbits-1-k]='1';						 }else{							 data[numbits-1-k]='0';						 };						 stmp = stmp >> 1;					 };					 data[numbits]='\0';					 fprintf(sinw2text,"\t\tROMWORD'(%c",quote);					 fprintf(sinw2text,"%s",data);					 fprintf(sinw2text,"%c),--address=%d\n",quote,i);			};			fclose(sinw2text);		  //sin w3			for (i=0;i<=255;i++){					 stmp = sindataw3[i];					 for (k=0;k<=numbits-1;k++){						 if ((stmp & 0x0001) != 0){							 data[numbits-1-k]='1';						 }else{							 data[numbits-1-k]='0';						 };						 stmp = stmp >> 1;					 };					 data[numbits]='\0';					 fprintf(sinw3text,"\t\tROMWORD'(%c",quote);					 fprintf(sinw3text,"%s",data);					 fprintf(sinw3text,"%c),--address=%d\n",quote,i);			};			fclose(sinw3text);			//cos w1			for (i=0;i<=255;i++){					 stmp = cosdataw1[i];					 for (k=0;k<=numbits-1;k++){						 if ((stmp & 0x0001) != 0){							 data[numbits-1-k]='1';						 }else{							 data[numbits-1-k]='0';						 };						 stmp = stmp >> 1;					 };					 data[numbits]='\0';					 fprintf(cosw1text,"\t\tROMWORD'(%c",quote);					 fprintf(cosw1text,"%s",data);					 fprintf(cosw1text,"%c),--address=%d\n",quote,i);			};			fclose(cosw1text);			//cos w2			for (i=0;i<=255;i++){					 stmp = cosdataw2[i];					 for (k=0;k<=numbits-1;k++){						 if ((stmp & 0x0001) != 0){							 data[numbits-1-k]='1';						 }else{							 data[numbits-1-k]='0';						 };						 stmp = stmp >> 1;					 };					 data[numbits]='\0';					 fprintf(cosw2text,"\t\tROMWORD'(%c",quote);					 fprintf(cosw2text,"%s",data);					 fprintf(cosw2text,"%c),--address=%d\n",quote,i);			};			fclose(cosw2text);			//cos w3			for (i=0;i<=255;i++){					 stmp = cosdataw3[i];					 for (k=0;k<=numbits-1;k++){						 if ((stmp & 0x0001) != 0){							 data[numbits-1-k]='1';						 }else{							 data[numbits-1-k]='0';						 };						 stmp = stmp >> 1;					 };					 data[numbits]='\0';					 fprintf(cosw3text,"\t\tROMWORD'(%c",quote);					 fprintf(cosw3text,"%s",data);					 fprintf(cosw3text,"%c),--address=%d\n",quote,i);			};			fclose(cosw3text);};

⌨️ 快捷键说明

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