24小时热门版块排行榜    

查看: 675  |  回复: 8
当前主题已经存档。

calos818

木虫 (著名写手)

新人菜鸟

[交流] 【求助】求助: 快速傅里叶变换 为何码位倒置?

在看Numerical Recipes 上的FFT源程序,采用2进制,设N=8,000-111,搞不懂为何要bit reverse,如100变成001,010变为010等,程序在下面,请各位指导下,万分感谢
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

calos818

木虫 (著名写手)

新人菜鸟

源代码

SUBROUTINE four1(data,nn,isign)
      INTEGER isign,nn
      REAL data(2*nn)
      INTEGER i,istep,j,m,mmax,n
      REAL tempi,tempr
      DOUBLE PRECISION theta,wi,wpi,wpr,wr,wtemp
      n=2*nn
      j=1
      do 11 i=1,n,2
        if(j.gt.i)then
          tempr=data(j)
          tempi=data(j+1)
          data(j)=data(i)
          data(j+1)=data(i+1)
          data(i)=tempr
          data(i+1)=tempi
        endif
        m=n/2
1       if ((m.ge.2).and.(j.gt.m)) then
          j=j-m
          m=m/2
        goto 1
        endif
        j=j+m
11    continue
      mmax=2
2     if (n.gt.mmax) then
        istep=2*mmax
        theta=6.28318530717959d0/(isign*mmax)
        wpr=-2.d0*sin(0.5d0*theta)**2
        wpi=sin(theta)
        wr=1.d0
        wi=0.d0
        do 13 m=1,mmax,2
          do 12 i=m,n,istep
            j=i+mmax
            tempr=sngl(wr)*data(j)-sngl(wi)*data(j+1)
            tempi=sngl(wr)*data(j+1)+sngl(wi)*data(j)
            data(j)=data(i)-tempr
            data(j+1)=data(i+1)-tempi
            data(i)=data(i)+tempr
            data(i+1)=data(i+1)+tempi
12        continue
          wtemp=wr
          wr=wr*wpr-wi*wpi+wr
          wi=wi*wpr+wtemp*wpi+wi
13      continue
        mmax=istep
      goto 2
      endif
      return
      END
C  (C) Copr. 1986-92 Numerical Recipes Software ,4-#.
2楼2009-08-09 09:40:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

calos818

木虫 (著名写手)

新人菜鸟

焦急等待中,哪位牛人出来说说哇
3楼2009-08-09 09:49:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

calos818

木虫 (著名写手)

新人菜鸟

还是看不懂这个FFT
4楼2009-08-09 13:20:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


calos818(金币+1,VIP+0): 10-10 13:53
还是找别的吧,NR 中的不是最好的,呵呵……
5楼2009-08-09 14:30:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

calos818

木虫 (著名写手)

新人菜鸟

但别的也是要进行bit reverse,郁闷
6楼2009-08-09 14:53:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

calos818

木虫 (著名写手)

新人菜鸟

继续请教
7楼2009-10-08 11:35:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

senlia

木虫 (小有名气)


余泽成(金币+1,VIP+0):谢谢专家! 10-10 10:38
是不是和FFT中所用点的排列顺序是从1反过来到-1 而不是-1到1有关呢?
书到用时方恨少, 天涯何处无芳草.
8楼2009-10-10 09:34:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jjdg

版主 (知名作家)

优秀版主

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):支持应助,欢迎常来程序软件版! 10-11 13:04
按频率抽取的基-2FFT蝶形运算中,输入时间序列是顺序,而输出频域序列是按码位倒读规则排列的乱序,所以,需要倒读!
具体给你个文章,自己看吧!
努力学习!以正当途径!获得需要的知识!
9楼2009-10-11 12:08:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 calos818 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见