w[k +  3] =  M * cos(2.0 * PI * (i + j) / n);
      w[k +  2] =  M * sin(2.0 * PI * (i + j) / n);
       
      /*twiddle factor for the third output of first butterfly*/
      w[k +  5] = -M * cos(4.0 * PI * (i    ) / n);
      w[k +  4] = -M * sin(4.0 * PI * (i    ) / n);
      
/*twiddle factor for the third output of second butterfly*/
      w[k +  7] = -M * cos(4.0 * PI * (i + j) / n);
      w[k +  6] = -M * sin(4.0 * PI * (i + j) / n);
       
      /*twiddle factor for the fourth output of first butterfly*/
      w[k +  9] =  M * cos(6.0 * PI * (i    ) / n);
      w[k +  8] =  M * sin(6.0 * PI * (i    ) / n);
       
      /*twiddle factor for the fourth output of second butterfly*/
      w[k + 11] =  M * cos(6.0 * PI * (i + j) / n);
      w[k + 10] =  M * sin(6.0 * PI * (i + j) / n);       
      k += 12;
    }
  }
}  
请注意,上面的代码里,为了 FFT乘法的方便,有些旋转因子的符号被调整。FFT实现在做复数乘法运算时都巧妙的补偿了这些调整的符号。其它FFT函数需要的旋转因子表可能略有不同,在 DSP库里面,每个 FFT函数都提供了一个对应的旋转因子生成函数。通常,旋转因子生成函数在软件初始化阶段调用,生成的旋转因子表被存到数组里。对于不同的FFT点数,要生成不同的旋转因子表。FFT函数则在运行的过程中反复调用,旋转因子表也被反复使用。同时也要注意,旋转因子和输入输出矩阵也一样,也是实部虚部交错存放的。
5.2  图像的预处理
在图像进行FFT之前,首先要满足长度和宽度都是2的整数次幂,但是视频来源往往有不满足这个条件的情况,例如,我所使用的红外视屏的分辨率是320*256的格式。所以,要想办法来解决这一问题。
传统的解决这一问题的方法是补零法,即在图像宽或高的一边补上零,直到宽和高都是2的整数次幂,但是在实际操作中证明,补上的零会成为整个图像相当于噪声的存在,所以,补零法是不可取的。经过思考和实践,可以使用图像的缩放来解决这个问题,例如将320*256的分辨率缩放为256*256的分辨率。常见的缩放算法有均值差值法,双线性差值法和三线性差值法。这里我们就采用双线性插值法来实现。
使用下面的公式算出转换后图像上的点对应于原图像上哪一点:
 
其中w1为原图像的宽度,w2为转换后图像的宽度;h1为原图像的高度,h2为转换后的图像的高度。那么可以算出这一点P(x,y)如下图:
 
x和y算下来都不是整数, 、 、 、 为离P点最近的4个整点,通过这四点能近似得算出P点对应的灰度值:
 
我使用的320*256的分辨率转化为了256*256的分辨率,具体代码如下:
void scaling(short *imin,short *imout)
{
    int i,j,k1,k2;
    float m,m1,m2;
    for(j=1;j<255;j++)
    {
        m=j*1.25;
        k1=m;
        k2=k1+1;
上一篇:渥拉斯顿棱镜透射光强扰动分析+文献综述
下一篇:含葡萄糖的混浊液后向散射特性的Mueller矩阵实验研究

基于大概念的初中科学教材分析力学相关部分

二三维一体化CAD系统中工...

基于初中科学实验教具的创新

基于landsat8遥感影像的水稻田降温效应研究

基于大概念的初中科学教材分析

FLUENT基于CFD圆柱绕流数值模拟研究

光波单向波导的设计与实现

10万元能开儿童乐园吗,我...

医院财务风险因素分析及管理措施【2367字】

承德市事业单位档案管理...

神经外科重症监护病房患...

AT89C52单片机的超声波测距...

公寓空调设计任务书

国内外图像分割技术研究现状

中国学术生态细节考察《...

C#学校科研管理系统的设计

志愿者活动的调查问卷表