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

📄 ifft1.java

📁 java 实现的 快速傅立叶变换
💻 JAVA
字号:
//IFFT1.java
/*
	程序说明:
	
	程序修改:
	
	最后修改时间:2008-11
	
	作者:朱磊
	
*/

public class IFFT1 {
  	
  	// 付立叶变换点数
	int count;
  	int power;
  	
  	Complex[] x;
  	Complex[] fd;
  	
  	FFT1 fft1;
  	
  	public IFFT1(){
  		
  		//System.out.println("IFFT1.java");
  	}
  	
  	
  	public void setData(Complex [] data,int power){
  	
  	 	this.power=power;
  		 		
  		//计算傅立叶变换的点数
  		count=1<<power;	
  		
  		//分配空间
  		x=new Complex[count];
      		fd=new Complex[count];
      		
      		for(int i=0;i<count;i++)
      		{
      			x[i]=new Complex();
      			fd[i]=new Complex();
      		}
      		
      		//将频域点写入x
      		for(int i=0;i<count;i++)
      		{
      			x[i]=data[i];
      			
      		}
  	}
  	
  public Complex [] getData(){
  	
  	// 求共轭
  	for(int i=0;i<count;i++)
  	{
  		double im=-x[i].im;
  		x[i].im=im;
  	}
  	
  	fft1=new FFT1();
  	fft1.setData(x,power);
  	fd=fft1.getData();
  	
  	for(int i=0;i<count;i++)
  	{
  		double re=fd[i].re;
  		double im=-fd[i].im;
  		fd[i].im=im/count;
  		fd[i].re=re/count;
  	}
  	
      	return fd;
 }
 	//测试
 	/*
	public static void main(String[] args){
		Complex [] td;
		Complex [] fd;
		
		int i=0;
		td=new Complex[4];
		fd=new Complex[4];
		
		for(i=0;i<4;i++)
		{
			td[i]=new Complex();
			fd[i]=new Complex();
		}
		
		IFFT1 ifft1=new IFFT1();
		
		td[0].re=10;
		td[0].im=0;
		
		td[1].re=-2;
		td[1].im=2;
		
		td[2].re=-2;
		td[2].im=0;
		
		td[3].re=-2;
		td[3].im=-2;
	
		ifft1.setData(td,2);
		fd=ifft1.getData();
		
		for(i=0;i<4;i++)
		{
			System.out.println("the re of answer is "+td[i].re+"\n");
			System.out.println("the im of answer is "+td[i].im+"\n");
				
		}
		
		for(i=0;i<4;i++)
		{
			System.out.println("the re of answer is "+fd[i].re+"\n");
			System.out.println("the im of answer is "+fd[i].im+"\n");
		}	
	}
	*/
		
}

⌨️ 快捷键说明

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