24小时热门版块排行榜    

查看: 1043  |  回复: 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一区文章,我:8.O.551.O.5.4,科目全,可伽急 +5 YHiw1gou1Eda 2026-11-10 8/400 2026-11-14 22:20 by Equinoxhua
[考博] 27博士 +6 锦鲤送福至 2026-11-10 6/300 2026-11-14 21:23 by xupeii
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 G2rhSvqvhNzl 2026-11-10 5/250 2026-11-13 11:37 by Equinoxhua
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +8 zSbvVX9JFl9J 2026-11-09 9/450 2026-11-13 11:11 by Equinoxhua
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +6 FChKX8meu1ds 2026-11-09 10/500 2026-11-13 11:08 by Equinoxhua
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 cdqGD6ftHmbl 2026-11-11 5/250 2026-11-12 12:28 by ECLTXnJnRSXf
[考研] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 Z7qfCsdIiD1T 2026-11-10 4/200 2026-11-12 11:22 by HajghKOMynmz
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 Z7qfCsdIiD1T 2026-11-10 5/250 2026-11-12 11:14 by HajghKOMynmz
[教师之家] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 czAiolzR0IJC 2026-11-10 7/350 2026-11-12 11:00 by HajghKOMynmz
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 G2rhSvqvhNzl 2026-11-10 6/300 2026-11-12 10:49 by HajghKOMynmz
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 C6CRn66RYYXS 2026-11-10 7/350 2026-11-12 10:16 by HajghKOMynmz
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 cdqGD6ftHmbl 2026-11-11 3/150 2026-11-12 07:53 by HajghKOMynmz
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 Z7qfCsdIiD1T 2026-11-10 6/300 2026-11-12 07:09 by 9fOTqj074tIg
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 C6CRn66RYYXS 2026-11-10 6/300 2026-11-12 06:03 by 9fOTqj074tIg
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 C6CRn66RYYXS 2026-11-10 4/200 2026-11-12 06:03 by 9fOTqj074tIg
[考研] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 YHiw1gou1Eda 2026-11-10 7/350 2026-11-12 05:41 by 9fOTqj074tIg
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 YHiw1gou1Eda 2026-11-10 6/300 2026-11-12 05:41 by 9fOTqj074tIg
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 FChKX8meu1ds 2026-11-09 8/400 2026-11-12 05:30 by 9fOTqj074tIg
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 FChKX8meu1ds 2026-11-09 10/500 2026-11-12 05:19 by 9fOTqj074tIg
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 zSbvVX9JFl9J 2026-11-09 9/450 2026-11-12 04:57 by 9fOTqj074tIg
信息提示
请填处理意见