24小时热门版块排行榜    

查看: 1026  |  回复: 1
【奖励】 本帖被评价1次,作者baobiao007增加金币 0.8 个

baobiao007

木虫 (职业作家)


[资源] 【分享】频率域镶边法带通滤波c程序【原创】

#include
#include
#include
#include"FFT.h"
//效果似乎不如时域褶积法
/*构建镶边带通滤波器
  f0--通频带中心频率
  hf--通频带半宽度
  num-滤波器长度
  df--频率采样间隔
*/
void Filter(float h[],int num,float f0,float hf,float df)
{
        int i;
        double pi=3.1415926;
        float bf=hf;//镶边宽度
        float f1,f2,f3,f4,f;
        f2=f0-hf; f3=f0+hf;
        f1=f2-bf; f4=f3+bf;
        for(i=0; i<=num/2; i++)
        {
                f=i*df;
                if(f                 else if(f>=f1 && f<=f2)
                        h[ i ]=pow(sin(pi*(f-f1)/(2.0*(f2-f1))),2);
                else if(f>f2 && f                         h[ i ]=1.0;
                else if(f>=f3 && f<=f4)
                        h[ i ]=pow(sin(pi*(f-f4)/(2.0*(f4-f3))),2);
                else
                        h[ i ]=0.0;
        }
        for(i=num/2+1; i                 h[ i ]=h[num-i];
}

void main()
{
        const int M=128;//滤波器长度
        float dt=0.002;//时间采样间隔
        float df=1.0/(M*dt);//频率采样间隔
        float Inisigr[M]={0};//要滤波的信号
        float Inisigi[M]={0};
        float Afsig2r[M]={0};//滤波后的信号
        float Afsig2i[M]={0};
        float Afsig[M]={0};//理想情况下滤波后的信号
        float hr[M],hi[M];//滤波器频谱
        int i,k;
        k=(int)(log(M)/log(2.0)+0.5);
        FILE *fp1,*fp2,*fp3;
        fp1=fopen("inisig.txt","w" );//合成信号
         fp2=fopen("afsig.txt","w" );//理想50hz信号
        fp3=fopen("afsig2.txt","w" );//滤波得到的50hz信号

        //产生信号,20hz,50hz,80hz正弦信号叠加
    double pi=3.1415926;
        float f1,f2,f3;
        f1=20.0;
        f2=50.0;
        f3=80.0;
        for(i=0; i         {        Afsig[ i ]=sin(2*pi*f2*dt*i);
                Inisigr[ i ]=Afsig[ i ]+sin(2*pi*f1*i*dt)+sin(2*pi*i*f3*dt);
                               fprintf(fp1,"%f\n",Inisigr[ i ] );
        }

        //形成滤波器
        Filter(hr,M,50.0,10.0,df);
        //对要滤波的信号进行FFT
        fft(Inisigr,Inisigi,k,1);
    //频谱相乘,滤去低于40hz高于60hz的信号
        for(i=0; i         {
                Afsig2r[ i ]=hr[ i ]*Inisigr[ i ];
                Afsig2i[ i ]=Inisigi[ i ]*hr[ i ];
        }
        //FFT反变换
        fft(Afsig2r,Afsig2i,k,-1);

        //输出结果
         for(i=0; i         {               
                       fprintf(fp2,"%f\n",Afsig[ i ]);
                       fprintf(fp3,"%f\n",Afsig2r[ i ]);
        }
                fclose(fp1);
        fclose(fp2);
        fclose(fp3);

}
滤波前:
滤波后:

[ Last edited by baobiao007 on 2011-2-14 at 22:55 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

w1161392713

新虫 (初入文坛)


★★★★★ 五星级,优秀推荐

请问有没有这个快速傅里叶变换的头文件FFT.h?
2楼2017-05-20 13:45:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 baobiao007 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-29 19:27 by cqwQDCxMcL3I
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 ZYXdhzDAy9ZX 2026-09-28 4/200 2026-09-29 16:37 by etmYJ6d2rquH
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ZYXdhzDAy9ZX 2026-09-28 3/150 2026-09-29 16:03 by etmYJ6d2rquH
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 15:46 by etmYJ6d2rquH
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 tqUTOxClQUMF 2026-09-28 4/200 2026-09-29 15:15 by etmYJ6d2rquH
[博后之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 15:04 by etmYJ6d2rquH
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +6 GDBe8tDZqE8z 2026-09-28 6/300 2026-09-29 14:41 by etmYJ6d2rquH
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 3/150 2026-09-29 14:24 by etmYJ6d2rquH
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 IDs3scOF0tjC 2026-09-28 6/300 2026-09-29 14:13 by etmYJ6d2rquH
[博后之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 IDs3scOF0tjC 2026-09-28 3/150 2026-09-29 13:56 by etmYJ6d2rquH
[教师之家] 某top大学教授说“能够在市场中兑现的能力才是真能力”无比同意! +8 zju2000 2026-09-26 9/450 2026-09-29 13:47 by ahsoarli
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-29 09:59 by JzYBbHIXWSrW
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 GDBe8tDZqE8z 2026-09-28 4/200 2026-09-29 09:49 by JzYBbHIXWSrW
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 tqUTOxClQUMF 2026-09-28 3/150 2026-09-28 23:46 by b8fCuTHqckEt
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 GDBe8tDZqE8z 2026-09-28 3/150 2026-09-28 23:12 by b8fCuTHqckEt
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 CfXuS1rDhLYN 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 22:55 by ez6fGg9abYaj
[有机交流] 同一个分子,一条来自文献,一条来自AI——不告诉你答案,你会选哪条? +3 tianxiaoxian 2026-09-28 6/300 2026-09-28 22:44 by tianxiaoxian
[找工作] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 5/250 2026-09-28 22:32 by ez6fGg9abYaj
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 IDs3scOF0tjC 2026-09-28 4/200 2026-09-28 18:51 by 9lS3ad5oOymn
信息提示
请填处理意见