12下一页
返回列表 发新帖
收起左侧

信号卷积的计算函数(C语言)

[复制链接]
发表在  2008-10-8 17:24:39  | 显示全部楼层 | 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转微网社区

您需要 登录 才可以下载或查看,没有帐号?注册

x
在信号处理中,离散信号的卷积计算在通信仿真中要消耗大量的时间,提高卷积计算代码运行速度是直观重要的。
下面是根据数值信号的卷积公式直接写出的代码:

tt.JPG
void conv(vector<float> &xv,vector<float> &yv,vector<float> &vres)
{
int nx,ny,N,l,n;
vres.clear();
nx=xv.size();
ny=yv.size();
N=nx+ny-1;
float tmp;
for(l=0;l<N;l++){
  tmp=0;
  for(n=0;n<nx;n++){
   if((l-n)<0||(l-n)>=ny) continue;
   tmp+=xv[n]*yv[l-n];   
  }
  vres.push_back(tmp);  
}
}
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2008-10-8 17:50:04  | 显示全部楼层

快速计算方法

仿真一段时间后,发现计算上10万个数据时,特别慢,找找是什么原因,本身算法如此,也够简洁了,还能有什么提高...
一天看通信的书,讲解离散信号卷积时,等同于两数值信号的不进位的乘法原理,想到一种算法,哈哈
游客,如果您要查看本帖隐藏内容请回复

这样避免了循环计算中的没有实际计算的空循环
计算速度大大地提高了
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2008-10-8 17:51:43  | 显示全部楼层

更快的计算......

欲知更快的计算,请回帖,听下回分解
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2008-10-8 19:29:10  | 显示全部楼层
以前本科学通信的时候也编过这些程序,呵呵,不过没那么深入,现在很久没用了,都快忘记差不多了
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2008-11-29 22:16:00  | 显示全部楼层
都是强人哦,呵呵。学习学习,呵呵呵
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2012-2-28 10:42:33  | 显示全部楼层
楼主确实是强人啊,学习了
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2012-4-19 20:40:57  | 显示全部楼层
瞧瞧 更快的计算......
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2012-5-22 21:18:23  | 显示全部楼层
谢谢楼主
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2012-10-16 11:22:28  | 显示全部楼层
多謝了,正在找類似程序
以己之微·网博天下:博览微网之术·创造成功之路!
回复 支持 反对

使用道具 举报

发表于 2012-10-16 22:00:50  | 显示全部楼层
路过顺便看看。
以己之微·网博天下:博览微网之术·创造成功之路!
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心 搜索
关于我们
关于我们
友情链接
联系我们
站务中心
发展历程
合作伙伴
社区推荐
服务支持
服务条款
免责声明
广告合作
关注我们
官方微博
官方空间
官方微信

QQ|微网社区 ( 蜀ICP备09016811号 )|

GMT+8, 2021-12-5 12:21

Powered by Discuz! X3.4 Design by Comiis

Copyright © 2006-2020 Mwtee.Com All Rights Reserved.

快速回复 返回顶部 返回列表