24小时热门版块排行榜    

Znn3bq.jpeg
查看: 3679  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学工程调剂289 +44 yang婷 2026-04-07 50/2500 2026-04-12 02:36 by 秋豆菜芽
[考研] 一志愿新疆大学085401,314分 +4 咔咔咔咔9 2026-04-05 4/200 2026-04-12 02:21 by 秋豆菜芽
[考研] 调剂 +5 文道星台 2026-04-11 5/250 2026-04-11 15:01 by 凯凯要变帅
[考研] 0854调剂 +5 音像店听花鼓戏 2026-04-10 5/250 2026-04-11 10:49 by qingpingzhu
[考研] 0854调剂 +4 长弓傲 2026-04-09 4/200 2026-04-11 09:18 by 猪会飞
[考研] 302分求调剂 +9 凡语祈愿 2026-04-08 10/500 2026-04-10 23:26 by 314126402
[考研] 326求调剂 +5 Shansyn 2026-04-10 5/250 2026-04-10 22:23 by 猪会飞
[考研] 一志愿西交机械专硕求调剂 +8 求上岸的小王 2026-04-10 8/400 2026-04-10 15:09 by hemengdong
[考研] 材料专硕调剂 +16 哈哈哈吼吼吼哈 2026-04-07 17/850 2026-04-09 21:16 by wutongshun
[考研] 328求调剂 +17 lftmya 2026-04-07 18/900 2026-04-09 08:05 by 5268321
[考研] 304求调剂 +16 c297914 2026-04-05 17/850 2026-04-08 13:00 by grayjzr
[考研] 388求调剂 +6 四川王涛 2026-04-07 8/400 2026-04-08 00:17 by JourneyLucky
[考研] 313求调剂 +3 十六拾陆 2026-04-07 3/150 2026-04-07 23:20 by lbsjt
[考研] 307求调剂 +3 Youth@@ 2026-04-07 3/150 2026-04-07 22:00 by hemengdong
[考研] 一志愿西南090202求调剂 +4 在线求有学上 2026-04-07 4/200 2026-04-07 19:47 by biomichael
[考研] 一志愿南科大生物学297分,求调剂推荐 +8 Y-yyusx 2026-04-06 9/450 2026-04-07 19:38 by biomichael
[考研] 信工所11408 340分 本科西安交大自动化 +3 moontrek 2026-04-06 3/150 2026-04-07 09:56 by chongya
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +11 大火山小火山 2026-04-05 11/550 2026-04-06 22:55 by yunlongyang
[考研] 338求调剂 +4 我想上岸ii 2026-04-05 4/200 2026-04-06 21:04 by 木子君1218
[考研] (调剂)一志愿报考哈尔滨工业大学0857资源与环境专业378分考生 +7 狠狠加油 2026-04-05 8/400 2026-04-06 16:52 by momo皓
信息提示
请填处理意见