| 查看: 2103 | 回复: 1 | ||
| 【奖励】 本帖被评价1次,作者baobiao007增加金币 0.6 个 | ||
[资源]
【分享】线性卷积与循环卷积的比较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 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 CircleMove(y,y1,j,num); for(i=0; i } 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 for(i=0; i CircleConvolution(x1,y1,z2,L1+L2-1); printf("线性卷积: 圆周卷积:\n" ;for(i=0; i free(x1);free(y1); } |
» 猜你喜欢
长江大学石油工程学院佘跃惠团队招收2025年9月入学的博士研究生
已经有2人回复
祈福,祝自己今年好运
已经有100人回复
地球化学论文润色/翻译怎么收费?
已经有138人回复
关于会评
已经有1人回复
据说!出现这些情况,国基金会评本子会被拿下!
已经有19人回复
无人打捞,直接陪跑
已经有16人回复
定了定了,明天出结果!2025 国自然基金结果即将揭晓,查询攻略看这里
已经有107人回复
2025国家自然科学基金放榜时间,根据官方回应,8月15日基本没戏了
已经有5人回复
各位未来院士帮忙看看评审意见
已经有9人回复
【招聘】科研助理+五险一金
已经有19人回复
《风吹过日常的缝隙》
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
C++2011标准_ISO_IEC-14882-2011
已经有3人回复
循环伏安 电位差
已经有8人回复
循环伏安法沉积聚苯胺太不稳定了
已经有5人回复
循环利用????
已经有3人回复
【求助】信号与系统中的卷积问题
已经有7人回复
【分享】线性卷积c程序
已经有4人回复
【原创】求英国Hansatech公司生产的FMS-2型便携调制式叶绿素荧光仪数据导出驱动程序
已经有9人回复
【求助】请教这个是否算高斯卷积核?
已经有7人回复
【求助】最小二乘法编写指数拟合方程
已经有19人回复
【分享】转一篇好文——谈谈卷积的物理意义
已经有18人回复
2楼2011-02-10 22:06:22












;
回复此楼