[讨论] 关于FFT的问题请教高手!!!急!!!

313345607   2008-7-26 16:19 楼主
关于FFT的问题请教高手!!!急!!!请教高手一个问题,非常着急,希望明白的给个回答,先谢谢大家了!!!
我最近下载了一个FFT算法的Verilog程序,在看到旋转因子这个地方怎么也不明白,程序如下:
always @ (posedge clock_c)
  if (i4 == 1'b1)
    case (i3)
      1'b0 : n11 <= 16'b0111111100000000;
      1'b1 : n11 <= 16'b0000000010000000;
      default : n11 <= 16'bxxxxxxxxxxxxxxxx;
    endcase
assign n12 = {n11[15],
  n11[14],
  n11[13],
  n11[12],
  n11[11],
  n11[10],
  n11[9],
  n11[8]};
assign n13 = {n11[7],
  n11[6],
  n11[5],
  n11[4],
  n11[3],
  n11[2],
  n11[1],
  n11[0]};
assign n14 = {{8{n5[7]}}, n5} * {{8{n12[7]}}, n12};
assign n15 = {n14[14],
  n14[13],
  n14[12],
  n14[11],
  n14[10],
  n14[9],
  n14[8],
  n14[7]};
我的理解是:n5是采集的一个数据的实部,n12是旋转因子的实部,不明白这里为什么要把两个数据扩为16位,另外如果是两个16位数相乘,结果应该有36位才能保证不溢出,为什么n14只有16位,而n15只取7至14位呢?另外n11的第一种赋值n11 <= 16'b0111111100000000应该就是Wn0,其实部为1,虚部为0,怎么就能表示成0111111100000000的形式呢?
希望有明白的高手能给解释一下,不胜感激。也可以给我发email:nerd12@163.com.

回复评论 (3)

怎么没人回答呀?
点赞  2008-7-28 10:43

老兄 你好歹把代码贴全啊。。。

点赞  2008-7-28 11:10
代码几千行,没法贴。这一段已经能说明我的问题了,可惜怎么没人回答呢?
点赞  2008-7-31 15:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复