爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4216|回复: 3

请问下面这一段代码是什么滤波,具体是怎么算的?

[复制链接]

新浪微博达人勋

发表于 2014-4-15 20:44:45 | 显示全部楼层 |阅读模式
GrADS
系统平台: fortran
问题截图: -
问题概况: 这个是计算位涡反演的一段程序,请问下面这一段代码是什么滤波,具体是怎么算的?
我看过提问的智慧: 看过
自己思考时长(天): 4

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x

PARAMETER (KS=22,LS=33,NS=401,MS=467,G1=0.3,G2=0.3,        1             C1=30.,C2=28000.,RR1=200.,RR2=400.,A1=100.,B1=15.)
CALL DTLB(uw,u1,MS,NS,KS,LS,C1,G1,s,RR1)   CALL DTLB(uw,u2,MS,NS,KS,LS,C2,G2,s,RR2)

SUBROUTINE DTLB(X,XP,MS,NS,KS,LS,C,G,s,RR)                                             
           INTEGER s        
        DiMENSiON X(MS,NS),XP(MS,NS),RN(2*s+1,61),WN(2*s+1,2*s+1),
     1          F0(MS,NS)
          PARAMETER(UNDEF=1e37)
         
          DO i=1,MS
          DO j=1,NS
          F0(i,j)=X(i,j)
          END DO
          END DO                                                         
       DO 10 j=s+1,NS-s                                                         
        DO 10 i=s+1,MS-s                                                         
              WNN=0
                FWW=0
          DO 20 jj=1,2*s+1                                                         
        DO 20 ii=1,2*s+1
             RN(ii,jj)=(float(jj-(s+1))*5.)**2+(float(ii-(s+1))*5.)**2
          iF (RN(ii,jj).GT.RR**2) THEN
           WN(ii,jj)=0
               
          GOTO 20
          ELSE
          WN(ii,jj)=EXP(-RN(ii,jj)/(4*C))
        IF (X(ii-s-1+i,jj-s-1+j).NE.UNDEF) THEN
          FWW=FWW+WN(ii,jj)*X(ii-s-1+i,jj-s-1+j)
          WNN=WNN+WN(ii,jj)
        else
          WNN=0
          FWW=0
        END iF
         END iF
           
20   CONTiNUE
                    F0(i,j)=FWW/WNN

  10      CONTiNUE

        DO 110 j=s+1,NS-s                                                         
       DO 110 i=s+1,MS-s                                                                       
              WNN=0
                FWW=0
          DO 120 jj=1,2*s+1                                                         
        DO 120 ii=1,2*s+1

             RN(ii,jj)=((jj-s-1)*5.)**2+((ii-s-1)*5.)**2
          iF (RN(ii,jj).GT.RR**2) THEN
           WN(ii,jj)=0
               
          GOTO 120
          ELSE
           WN(ii,jj)=EXP(-RN(ii,jj)/(4*C*G))
            if (X(ii-s-1+i,jj-s-1+j).NE.UNDEF) THEN
           FWW=FWW+WN(ii,jj)*(X(ii-s-1+i,jj-s-1+j)-F0(ii-s-1+i,jj-s-1+j))
           WNN=WNN+WN(ii,jj)
            else
          WNN=0
            FWW=0
            end if
          END iF
           
120   CONTiNUE
          XP(i,j)=F0(i,j)+FWW/WNN

110   CONTiNUE

      RETURN                  
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-15 20:54:00 | 显示全部楼层
子程序的拼音上都写了,DTLB=低通滤波。
计算原理去查书,算法请自行阅读程序。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-15 21:12:28 | 显示全部楼层
lqouc 发表于 2014-4-15 20:54
子程序的拼音上都写了,DTLB=低通滤波。
计算原理去查书,算法请自行阅读程序。

也有可能是带通滤波啊,我看了一些材料,可是对应不上!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-15 21:27:33 | 显示全部楼层
lgg00828 发表于 2014-4-15 21:12
也有可能是带通滤波啊,我看了一些材料,可是对应不上!

好吧,除非正好有人用过你这个程序,否则没法帮你。
这种事情不是应该问问给你程序的人么。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表