²é¿´: 2102  |  »Ø¸´: 3
¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û2´Î£¬×÷Õßbaobiao007Ôö¼Ó½ð±Ò 1.2 ¸ö
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

baobiao007

ľ³æ (Ö°Òµ×÷¼Ò)


[×ÊÔ´] ¡¾·ÖÏí¡¿ÆµÂʲ¨ÊýÓò¶þάÉÈÐεÍͨÂ˲¨c³ÌÐòʾÀý¡¾Ô­´´¡¿

ÀûÓöþά¸µÀïÒ¶±ä»»½«µØÕð¼Ç¼ÓÉx-tת»»µ½f-kÓòÔÚ½øÐÐÂ˲¨£¬ÕâÖÖ·½·¨Ö÷ÒªÀûÓÃÓÐЧ²¨Óë¸ÉÈŲ¨Ö®¼äµÄÊÓËٶȲîÒìÀ´·ÖÀëÁ½ÀàÐźš£ ¶ÔÓÚѧϰµØÕðÊý¾Ý´¦ÀíµÄÅóÓÑ£¬Àι̵ØÕÆÎÕºÃÊý×ÖÐźŴ¦ÀíÊǺÜÓкô¦µÄ¡£ÓÈÆäÊǸµÀïÒ¶±ä»»£¬ÓÃ;·Ç³£¹ã·º¡£Õâ¸ö³ÌÐò½øÒ»²½Õ¹Ê¾ÁËÀëÉ¢¸µÀïҶƵÆ×µÄÐÔÖÊ£¨¹²éî¶Ô³ÆÐÔ£©£¬ÕâÖÖÐÔÖÊÔÚ±à³ÌʵÏÖʱÊÇÓÈÆäҪעÒâµÄ¡£ÀíÂÛ¿ÉÒÔ²ÎÕÕÈκÎÒ»±¾µØÕðÊý¾Ý´¦Àí½Ì²Ä¡£

#include
#include
#include
#include"FFT.h"

//½«ÎļþfilenameÖеÄÄÚÈݶÁÈë¶þάÊý×éa
void MyReadFile(char *filename,float **a,int m,int n)
{
     int i,j;
         FILE *fp;
         fp=fopen(filename,"rb" );
         for(i=0; i                  for(j=0; j                          fread(&a[ i ][j],sizeof(float),1,fp);
         fclose(fp);
}
//½«¶þάÊý×éaÖеÄÊý¾ÝдÈëÎļþfilenameÖÐ
void MyWriteFile(char *filename,float **a,int m,int n)
{
     int i,j;
         FILE *fp;
     fp=fopen(filename,"wb" );
         for(i=0; i                  for(j=0; j                          fwrite(&a[ i ][j],sizeof(float),1,fp);
         fclose(fp);
}
//ÉêÇë¶þά¶¯Ì¬Êý×éµÄº¯Êý
float **MySpace(int m, int n)
{
        int i;
        float **p;
        p=(float **)calloc(m,sizeof(float *));
        if(p==NULL)
        {  printf("ÉêÇë¿Õ¼äʧ°Ü\n" );
           exit(1);
        }
        for(i=0; i                 p=(float *)calloc(n,sizeof(float));
        return p;
}
//ÊÍ·ÅÉêÇëµÄ¶þά¶¯Ì¬Êý×é
void FreeMySpace(float ***p, int m)
{
        int i;
        for(i=0; i                 free((*p));
        free(*p);
}
//¾ØÕóתÖÃa[m][n]->b[n][m]
void Zhuan(float ***a,float ***b,int m,int n)
{
        int i,j;
        for(i=0; i                 for(j=0; j                         *(*(*b+i)+j)=*(*(*a+j)+i);
}
//2D-FFT tag=1,Õý±ä»»;tag=-1,·´±ä»»
void FFT2D(float **xr,float **xi,int m,int n,int tag)
{
        int i,k1,k2;
        float **xtr, **xti;
        xtr=MySpace(n,m);
        xti=MySpace(n,m);
        k1=log(m)/log(2.0);
        k2=log(n)/log(2.0);
        if(n>pow(2,k1)) k1=k1+1;
        if(m>pow(2,k2)) k2=k2+1;
    for(i=0; i         fft(xr[ i ],xi[ i ],k2,tag);
    Zhuan(&xr,&xtr,m,n);
    Zhuan(&xi,&xti,m,n);
    for(i=0; i         fft(xtr[ i ],xti[ i ],k1,tag);
        Zhuan(&xtr,&xr,n,m);
        Zhuan(&xti,&xi,n,m);
        FreeMySpace(&xtr,n);
        FreeMySpace(&xti,n);       
}
//ÉèÖÃÉÈÐÎÂ˲¨Æ÷ƵÆ×,Ò»¶¨Òª×¢Òâ¶þά¸µÀïÒ¶±ä»»µÄ¹²éî¶Ô³ÆÐÔ
void FilterFan(float v,float fn,float df,float dk,float ***h,int m,int n)
{
        int i, j;
        int m2, n2;
        float b;
        m2=m/2; n2=n/2;
        //ÉèÖõÚÒ»ÏóÏÞ
        for(i=0; i<=m2; i++)
                for(j=0; j<=n2; j++)
                {   b=i*df/(v*dk);
                        if(i*df<=fn && j<=b)
                                (*h)[j]=1.0;//ÏëµÃµ½ÁíÒ»ÌõÏß,Ö»Ðèif elseµÄ1.0ºÍ0.0¶Ôµ÷                       
                        else
                                (*h)[j]=0.0;
                }
        //ÉèÖõڶþÏóÏÞ
        for(i=0; i<=m2; i++)
                for(j=n2+1; j                         (*h)[j]=(*h)[n-j];
        //ÉèÖõÚÈýÏóÏÞ
        for(i=m2+1; i                 for(j=n2+1; j                         (*h)[j]=(*h)[m-i][n-j];
        //ÉèÖõÚËÄÏóÏÞ
        for(i=m2+1; i                 for(j=0; j                         (*h)[j]=(*h)[m-i][j];
}
void main()
{//////////ÉèÖòÎÊý,¸ù¾ÝÇé¿ö×ÔÐÐÐÞ¸Ä////////////////
        const int M=64;//ÐÐÊý
        const int N=256;//ÁÐÊý
        const float V=3700.0;//ÊÓËÙ¶È£¬ÖØÒªÂ˲¨²ÎÊý
        const float Fn=100.0;//ƵÂʱ߽ç,¸ù¾ÝЧ¹ûµ÷½Ú
        const float dt=0.002;//2msʱ¼ä²ÉÑù¼ä¸ô£¬ÖØÒª²ÎÊý
        const float dx=10.0;//½ÓÊÕµÀ¼ä¾à10Ã×£¬ÖØÒª²ÎÊý
////////////////////////////////////////////////////       
        int i,j;
        float **record1;//ÒªÂ˲¨µÄ¶þάÐźŵÄʵ²¿
        float **record2;//Ð鲿
        float **mid1;//Öмä½á¹û
        float **mid2;//Öмä½á¹û
        float **filter;//Â˲¨Æ÷
        float df;//ƵÂʲÉÑù¼ä¸ô
        float dk;//²¨Êý²ÉÑù¼ä¸ô
        char fname[]="test-64-256.dat";//´ý·ÖÎöÐźÅÎļþÃû
        char fresult[]="after64-256.dat";//Â˲¨½á¹û
        char ffuliye[]="pu-64-256.dat";//ÐźŵĶþλƵÆ×
        //ÀëÉ¢¸µÀïÒ¶±ä»»±ØÐëÂú×ãµÄÌõ¼þ
        df=1.0/(N*dt);
        dk=1.0/(M*dx);
        printf("%f\n",df);
        //ÉêÇë¿Õ¼ä
        record1=MySpace(M,N);
        record2=MySpace(M,N);
        mid1=MySpace(N,M);
        mid2=MySpace(N,M);
        filter=MySpace(N,M);       
        //¶ÁÈë´ýÂ˲¨ÐźÅ
        MyReadFile(fname,record1,M,N);
        //¶Ô´ýÂ˲¨ÐźŽøÐжþά¸µÀïÒ¶±ä»»
        FFT2D(record1,record2,M,N,1);
        MyWriteFile(ffuliye,record1,M,N);
        //²úÉúÉÈÐÎÂ˲¨Æ÷
        FilterFan(V,Fn,df,dk,&filter,N,M);
        //תÖøµÀïÒ¶±ä»»ºóµÄÐÅºÅÆµÆ×
        Zhuan(&record1,&mid1,M,N);
        Zhuan(&record2,&mid2,M,N);
    //ƵÆ×Ïà³Ë
        for(i=0; i                 for(j=0; j                 {
            mid1[j]=mid1[j]*filter[j];
            mid2[j]=mid2[j]*filter[j];
                }
        //ÔÙÒ»´Î¾ØÕóתÖÃ
        Zhuan(&mid1,&record1,N,M);
        Zhuan(&mid2,&record2,N,M);
        //¸µÀïÒ¶·´±ä»»
        FFT2D(record1,record2,M,N,-1);
        //Êä³öÂ˲¨½á¹û
    MyWriteFile(fresult,record1,M,N);
        //Êͷſռä
        FreeMySpace(&record1,M);
        FreeMySpace(&record2,M);
        FreeMySpace(&mid1,N);
        FreeMySpace(&mid2,N);
        FreeMySpace(&filter,N);
}
ԭʼµØÕðÆÊÃæÊÇÁ½Ìõ½»²æµÄͬÏàÖ᣺

ËüµÄ¶þάƵÆ×£º

·ÖÀëºóµÄͼÏñ£º



·ÖÀëЧ¹û²»Ì«ÀíÏ룬ԭÒòÊÇ¶à·½ÃæµÄ,¼ÈÓë²ÎÊýµÄÑ¡ÔñºÏÀíÐÔÓйأ¬»¹¿ÉÄÜÒòΪûÓп¼ÂǼª²¼Ë¹Ð§Ó¦µÈ£¬Óдý½øÒ»²½Ñо¿¡£

[ Last edited by baobiao007 on 2011-2-16 at 08:48 ]
»Ø¸´´ËÂ¥

» ÊÕ¼±¾ÌûµÄÌÔÌûר¼­ÍƼö

¿Æ¼¼Ð´×÷Óë»æÍ¼

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

×ÏÑ©»¨¿ª

Í­³æ (³õÈëÎÄ̳)


¡ï¡ï¡ï ÈýÐǼ¶,Ö§³Ö¹ÄÀø

ÎÊһϣ¬³ÌÐòÊÇÄã×Ô¼ºÐ´µÄÂð

·¢×ÔСľ³æAndroid¿Í»§¶Ë
3Â¥2016-01-19 21:57:58
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 4 ¸ö»Ø´ð
¼òµ¥»Ø¸´
baobiao0074Â¥
2016-01-19 23:21   »Ø¸´  
ÒýÓûØÌû:
3Â¥: Originally posted by ×ÏÑ©»¨¿ª at 2016-01-19 21:57:58 ÎÊһϣ¬³ÌÐòÊÇÄã×Ô¼ºÐ´µÄÂð

yes
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] Ϊʲô×ÊÖúÊý¸÷´ó¸ßУ¶¼´´Ð¸ߣ¬×Ô¼ºÉêÇëÔõô¾ÍÕâôÄÑ +3 Kittylucky 2026-08-27 3/150 2026-08-27 11:12 by marinewhale
[»ù½ðÉêÇë] »ù½ðδÖУ¬ÕâÖÖ´ð¸´ÊÇÄ£°åÂ𣿠+4 zhaosm1982 2026-08-27 4/200 2026-08-27 10:53 by chengyan1220
[½Ìʦ֮¼Ò] µ¼Ê¦Í²ۣºÎÒÔõô̯ÉÏÁËÕâô¸ö¼«Æ·Ñо¿Éú£¡ +5 ËÕ¶«ÆÂ¶þÊÀ 2026-08-23 5/250 2026-08-27 10:39 by ì¿Óê
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøT0PÎÄÕ£¬ÎÒ:8.O.55.1.O.54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 02:01 by Ie9AyIAvGbvs
[»ù½ðÉêÇë] ÎÒ²»Àí½â£¡ +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[»ù½ðÉêÇë] ÄÄλ¸ßÈËÖÐÁË£¬°Ñ²éѯµ½µÄ½ØÍ¼Ìù³öÀ´ÈÃÎÒ¿´¿´£¬ÈÃÎÒ³¤³¤¼ûʶ +4 yuleib84 2026-08-26 5/250 2026-08-26 13:40 by yuleib84
[»ù½ðÉêÇë] ¿ÆÑй¶ùÌ«ÄÑÁË +21 ÎÒ4´ó°×²Ë 2026-08-20 22/1100 2026-08-26 11:29 by nlgza
[»ù½ðÉêÇë] ¹úºÏÀïÃæÄÜ¿´µ½ÁË +7 Ò»»³Ü°Çï 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[»ù½ðÉêÇë] ÏîÄ¿ÐÅÏ¢ºÍ¾­·ÑÐÅÏ¢ÔÚϵͳÀï¶¼¿ÉÒÔ¿´µ½ÁË +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[»ù½ðÉêÇë] ¹úºÏ¿É²éÁË +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[Ö°³¡ÈËÉú] ѧÉúײ¼û¸¨µ¼Ô±ËÍÍâÂô£¬µÚ¶þÌìÈ«°à¶¼³ÁĬÁË +3 ¾¨ÓãÈÚ½ð_Õã½­_É 2026-08-22 3/150 2026-08-26 09:01 by zzuzxg
[»ù½ðÉêÇë] ¹úºÏÏÖÔڲ鲻µ½ÁËÂ𣿠+10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[»ù½ðÉêÇë] ÔÚ¼á±ù»¹¸Ç×ű±º£µÄʱºò£¬ÎÒ¿´µ½ÁËÅ­·ÅµÄ÷»¨¡£ (½ð±Ò+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[»ù½ðÉêÇë] ûÓÐÈκÎÏûÏ¢-ÊDz»ÊǾÍÁ¹ÁË +9 ͼÀ²Í¼À² 2026-08-24 10/500 2026-08-25 11:59 by ÄϺ£Ð¡¸ç
[»ù½ðÉêÇë] ÈËÆø²»ÐÐÁË +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by ¹Â¶ÀµÄÓ¢ÐÛ6
[»ù½ðÉêÇë] ½¨Òé»ù½ð·¢²¼Ìáǰ¸ø³öÃ÷È·µÄʱ¼äµã +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
[»ù½ðÉêÇë] ¿´À´½ñÌì²»»á·Å°ñÁË£¿ +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[»ù½ðÉêÇë] ʱ¼ä´ÁÓÖ±äÁË +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by ×Ïɼ´¼
[»ù½ðÉêÇë] »ù½ð°¡»ù½ð +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û