24小时热门版块排行榜    

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

baobiao007

木虫 (职业作家)


[资源] 【分享】线性卷积与循环卷积的比较c程序

#include
#include
#include
const int L1=4;
const int L2=6;
//普通线性卷积
void conv(float x[],int m,float y[],int n,float z[],int l)
{
        int i,j;
        for(i=0; i         {
                z=0.0;
                for(j=0; j                         if(i-j>=0&&i-j<=m-1)
                                z+=y[j]*x[i-j];
        }
}
//圆周移位,x1-原始有限长序列,x2-移位后的有限长序列,m-移动长度(>0右移,<0左移)
void CircleMove(float x1[],float x2[],int m,int num)
{
        int rr;
        for(int i=0; i         {
                x2=0.0;
                rr=(i-m)%num;
                if(r>=0)
                  x2=x1[rr];
                else
                  x2=x1[num+rr];
        }
}
//时域圆周卷积,两等长序列x,y圆周卷积后得到z
//三序列长度都是num
void CircleConvolution(float x[],float y[],float z[],int num)
{
        float *y1,t;
        int i,j;
        y1=(float *)calloc(num,sizeof(float));
        for(i=1; i<=num/2; i++)
        { t=y;y=y[num-i];y[num-i]=t;}
        for(j=0; j         { z[j]=0.0;
          CircleMove(y,y1,j,num);
          for(i=0; i                   z[j]+=x*y1;
        }
        free(y1);
}

void main()
{
        float x[L1]={1,1,1,1};
        float y[L2]={1,1,1,1,1,1};
        float z1[L1+L2-1],z2[L1+L2-1];
        //直接线性卷积
        conv(x,L1,y,L2,z1,L1+L2-1);

        //要使循环卷积与线性卷积的结果相同,首先要将x,y的
        //长度扩大为L1+L2-1
        float *x1,*y1;
        x1=(float *)calloc(L1+L2-1,sizeof(float));
    y1=(float *)calloc(L1+L2-1,sizeof(float));
        for(int i=0; i                 x1=x;
        for(i=0; i                 y1=y;
        CircleConvolution(x1,y1,z2,L1+L2-1);
        printf("线性卷积:       圆周卷积:\n";
        for(i=0; i            printf("z1[%d]=%f        z2[%d]=%f\n",i,z1,i,z2);

        free(x1);free(y1);
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanggis

木虫 (著名写手)


★★★ 三星级,支持鼓励

不错。。。。。。。。。。。。
2楼2011-02-10 22:06:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 baobiao007 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 265求调剂 +4 梁梁校校 2026-03-19 4/200 2026-03-20 00:03 by 23Postgrad
[考研] 294求调剂材料与化工专硕 +14 陌の森林 2026-03-18 14/700 2026-03-19 22:38 by 学员8dgXkO
[考研] 一志愿北京化工大学0703化学318分,有科研经历,求调剂 +3 一瓶苯甲酸 2026-03-14 3/150 2026-03-19 15:17 by 尽舜尧1
[考研] 266求调剂 +5 阳阳哇塞 2026-03-14 10/500 2026-03-19 15:08 by 阳阳哇塞
[考研] 化学求调剂 +3 临泽境llllll 2026-03-17 4/200 2026-03-19 13:59 by houyaoxu
[考研] 274求调剂 +6 S.H1 2026-03-18 6/300 2026-03-19 09:34 by 花店相见
[考研] 材料专硕306英一数二 +10 z1z2z3879 2026-03-16 13/650 2026-03-18 14:20 by 007_lilei
[考博] 环境领域全国重点实验室招收博士1-2名 +3 QGZDSYS 2026-03-13 5/250 2026-03-18 11:13 by QGZDSYS
[考研] 材料,纺织,生物(0856、0710),化学招生啦 +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[考研] 考研求调剂 +3 橘颂. 2026-03-17 4/200 2026-03-17 21:43 by 有只狸奴
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 一志愿南京大学,080500材料科学与工程,调剂 +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[考研] 274求调剂 +5 时间点 2026-03-13 5/250 2026-03-17 07:34 by 热情沙漠
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 304求调剂 +5 素年祭语 2026-03-15 5/250 2026-03-16 17:00 by 我的船我的海
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
[考研] 080500,材料学硕302分求调剂学校 +4 初识可乐 2026-03-14 5/250 2026-03-14 21:08 by peike
[考研] 材料与化工 323 英一+数二+物化,一志愿:哈工大 本人本科双一流 +4 自由的_飞翔 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[考研] 中科大材料专硕319求调剂 +3 孟鑫材料 2026-03-13 3/150 2026-03-14 18:10 by houyaoxu
[考研] 070303一志愿西北大学学硕310找调剂 +3 d如愿上岸 2026-03-13 3/150 2026-03-13 10:43 by houyaoxu
信息提示
请填处理意见