![]() |
|
||||||||||||||||||
| . 网站首页 . 新品 . 新闻 . 方案 . 文库 . TI应用 . TI资源 . FPGA应用 . FPGA资源 . 移动技术 . 爱科技 . 厂商 . 代码 . 下载 . 产品 . 商城 . 邮购须知 . | ||
|
||
|
|||||
| C实现Matlab中的xcorr 互相关 | |||||
作者:BlueDrea… 文章来源:BlueDream 点击数: 更新时间:2011-12-31 ![]() |
|||||
|
#include <stdio.h> #define NN 10 void xcorr(float *r, unsigned short *x, unsigned short *y, int N); int main() fclose(fp_out); void xcorr(float *r, unsigned short *x, unsigned short *y, int N) 参考来源:http://www.mathworks.com/access/helpdesk/help/toolbox/signal/xcorr.html 这种方法在DSP中运行起来很慢,目前正在寻找更有效的方法。 在网上还有说可以在频域相乘,再IFFT回来。我要240个点算一次,算一下复杂度: xcorr()需要256*256=65536 次乘法; 频域相关:256点FFT要做1024次乘法,256点IFFT要做1024次乘法,再加频域的256次乘法,一共1024*4+256=4352次乘法,貌似效率提高了65536/4352 = 15倍。 我在C6747上算,C674x的核的速度是2400MIPS,1800MFLOPS,按MIPS算的话,xcorr要240*240/2400=24s(这个算错了,是Million没注意到,呵呵,具体在DSP中算一次乘法需要多少个指令周期,我还不太清楚),哦,mygod,黄花菜都凉了! 频域相关的matlab实现见:http://hi.baidu.com/yorkbluedream/blog/item/caedfa3eef6272f1828b13fc.html 算相关应该还有一种方法,就是先把一个序列反向,再用TI的DSPlib中卷积来算,不知道速度会不会提高。 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 关于C6747的PLL中SYSCLK1/2/… C6747不能读写SDRAM |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|