24小时热门版块排行榜    

查看: 3672  |  回复: 2

weivichen

铁虫 (初入文坛)

[求助] sin函数的傅里叶变换

我想做sin函数的傅里叶变换 可是程序没有error,但是运行就说那个exe文件停止工作,程序如下,好像很多问题的样子,新手求指教!
program main
use textgraphlib
implicit none
real,parameter::endx=3.1,startx=0.0,xinc=0.1
integer,parameter::maxx=32,maxy=20
real ::x,px=0.0,py=0.0
integer i,num,fx,fy,xx
real,allocatable::datax(,datay(
x=startx

do i=1,maxx
x=px
py=sin(x)
datax(i)=px
datay(i)=py
px=px+xinc
end do

call four1(datay,16,1)
call setscreen(maxx,maxy)


  do xx=1,maxx
    fy=datay(xx)
    call putchar(xx,fy)
  end do
  
  call updatescreen()
   stop
   end program

subroutine four1(data1,nn,isign)
integer isign,nn
real data1(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  i=1,n,2
    if(j.gt.i)then
        tempr=data1(j)
        tempi=data1(j+1)
        data1(j)=data1(i)
        data1(j+1)=data1(i+1)
        data1(i)=tempr
        data1(i+1)=tempi
        end if
        m=n/2
1        if((m.ge.2).and.(j.gt.m)) then
           j=j-m
           m=m/2
           goto 1
           end if
           j=j+m
           end do
           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  m=1,mmax,2
          do  i=m,n,istep
              j=i+mmax
                  tempr=sngl(wr)*data1(j)-sngl(wi)*data1(j+1)
                  tempi=sngl(wr)*data1(j+1)+sngl(wi)*data1(j)
                  data1(j)=data1(i)-tempr
                  data1(j+1)=data1(i+1)-tempi
                  data1(i)=data1(i)+tempr
                  data1(i+1)=data1(i+1)+tempi
                  end do
                  wtemp=wr
                  wr=wr*wpr-wi*wpi+wr
                  wi=wi*wpr+wtemp*wpi+wi
                  end do
                  mmax=istep
  goto 2
  end if
  return
  end
回复此楼

» 猜你喜欢

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

virtualzx

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
没看你的程序,不过sin的傅立叶变换直接是两个delta函数之差,为啥要写代码算呢

如果你计算的话在delta函数的原点上都是无穷大,恐怕反而会出问题。
2楼2012-11-03 05:03:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weivichen

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by virtualzx at 2012-11-03 05:03:53
没看你的程序,不过sin的傅立叶变换直接是两个delta函数之差,为啥要写代码算呢

如果你计算的话在delta函数的原点上都是无穷大,恐怕反而会出问题。

sin函数是来做实验用的,然后取一小段出来看看对不对,那应该是怎么写呢
3楼2012-11-03 18:45:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 weivichen 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂 +4 要好好无聊 2026-03-21 4/200 2026-03-21 18:57 by 学员8dgXkO
[考研] 0805 316求调剂 +3 大雪深藏 2026-03-18 3/150 2026-03-21 18:55 by 学员8dgXkO
[考研] 生物学调剂 +3 Surekei 2026-03-21 3/150 2026-03-21 18:31 by 学员8dgXkO
[考研] 一志愿深大,0703化学,总分302,求调剂 +4 七月-七七 2026-03-21 4/200 2026-03-21 18:20 by 学员8dgXkO
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-16 3/150 2026-03-21 03:59 by JourneyLucky
[考研] 310求调剂 +3 baibai1314 2026-03-16 3/150 2026-03-21 03:56 by JourneyLucky
[考研] 083200学硕321分一志愿暨南大学求调剂 +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[考研] 265求调剂 +9 梁梁校校 2026-03-17 9/450 2026-03-21 02:17 by JourneyLucky
[考研] 材料专业求调剂 +6 hanamiko 2026-03-18 6/300 2026-03-21 00:24 by JourneyLucky
[考研] 287求调剂 +7 晨昏线与星海 2026-03-19 8/400 2026-03-20 22:19 by JourneyLucky
[考研] 329求调剂 +9 想上学吖吖 2026-03-19 9/450 2026-03-20 22:01 by luoyongfeng
[考研] 289求调剂 +6 怀瑾握瑜l 2026-03-20 6/300 2026-03-20 20:30 by 学员8dgXkO
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 求调剂 +3 暗涌afhb 2026-03-16 3/150 2026-03-20 00:28 by 河南大学校友
[考研] 085600材料与化工调剂 324分 +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
[考研] 085600材料与化工求调剂 +6 绪幸与子 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[考研] 0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287 +8 小李0854 2026-03-16 8/400 2026-03-18 14:35 by 搏击518
[考研] 301求调剂 +4 A_JiXing 2026-03-16 4/200 2026-03-17 17:32 by ruiyingmiao
[考研] 一志愿,福州大学材料专硕339分求调剂 +3 木子momo青争 2026-03-15 3/150 2026-03-17 07:52 by laoshidan
[考研] 一志愿211 0703方向310分求调剂 +3 努力奋斗112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
信息提示
请填处理意见