24小时热门版块排行榜    

查看: 3671  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600材料与化工306 +4 z1z2z3879 2026-03-21 4/200 2026-03-21 23:44 by ms629
[考研] 一志愿南大,0703化学,分数336,求调剂 +3 收到VS 2026-03-21 3/150 2026-03-21 18:42 by 学员8dgXkO
[考研] 材料学硕333求调剂 +3 北道巷 2026-03-18 3/150 2026-03-21 18:17 by 学员8dgXkO
[考研] 330求调剂0854 +3 assdll 2026-03-21 3/150 2026-03-21 13:01 by 搏击518
[考研] 306求调剂 +4 chuanzhu川烛 2026-03-18 4/200 2026-03-21 08:25 by laoshidan
[考研] 求调剂 +6 Mqqqqqq 2026-03-19 6/300 2026-03-21 08:04 by JourneyLucky
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-16 3/150 2026-03-21 03:59 by JourneyLucky
[考研] 265求调剂 +3 Jack?k?y 2026-03-17 3/150 2026-03-21 03:17 by JourneyLucky
[考研] 324分 085600材料化工求调剂 +4 llllkkkhh 2026-03-18 4/200 2026-03-21 01:24 by JourneyLucky
[考研] 311求调剂 +5 冬十三 2026-03-18 5/250 2026-03-21 00:16 by JourneyLucky
[考研] 321求调剂 +9 何润采123 2026-03-18 11/550 2026-03-20 23:19 by JourneyLucky
[考研] 323求调剂 +3 洼小桶 2026-03-18 3/150 2026-03-20 22:54 by JourneyLucky
[考研] 329求调剂 +9 想上学吖吖 2026-03-19 9/450 2026-03-20 22:01 by luoyongfeng
[考研] 中南大学化学学硕337求调剂 +3 niko- 2026-03-19 6/300 2026-03-20 21:58 by luoyongfeng
[考研] 一志愿西南交通 专硕 材料355 本科双非 求调剂 +5 西南交通专材355 2026-03-19 5/250 2026-03-20 21:10 by JourneyLucky
[考研] 260求调剂 +3 朱芷琳 2026-03-20 3/150 2026-03-20 20:35 by 学员8dgXkO
[考研] 求调剂 +3 eation27 2026-03-20 3/150 2026-03-20 19:32 by JourneyLucky
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +5 1孙悟空 2026-03-17 6/300 2026-03-19 23:46 by zcl123
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
信息提示
请填处理意见