DSP中的卷积算法(1)

上传人:人*** 文档编号:504339641 上传时间:2022-08-31 格式:DOC 页数:16 大小:369KB
返回 下载 相关 举报
DSP中的卷积算法(1)_第1页
第1页 / 共16页
DSP中的卷积算法(1)_第2页
第2页 / 共16页
DSP中的卷积算法(1)_第3页
第3页 / 共16页
DSP中的卷积算法(1)_第4页
第4页 / 共16页
DSP中的卷积算法(1)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《DSP中的卷积算法(1)》由会员分享,可在线阅读,更多相关《DSP中的卷积算法(1)(16页珍藏版)》请在金锄头文库上搜索。

1、 卷积算法设计总框图取移位值n开 始初始化DSP产生输入信号将卷积信号X(m)和H(m)输入在同一个坐标系内翻转:将H(m)以m=0的垂直轴为轴翻褶成H(-m)移位:将H(-m)移位n,即得H(n-m)相乘:再将H(n-m)和X(m)的相同m值的对应点值相乘相加:把以上所有点的对应点的乘积叠加起来,即得Y(n)值。N值取遍整个坐标轴ES结 束。 卷积算法设计的原理)卷积算法基础理论 卷积的基本理论和公式 卷积和:对离散系统“卷积和也是求线性时不变系统输出响应(零状态响应)的主要方法. 卷积和的运算在图形表示上可分为四步:A) 翻褶 现在亚变量坐标M上作出X(m)和H(m),将m=0的垂直轴为轴

2、翻褶成(-)。B) 移位 将H(m)移位,即得H(nm)。当n为正整数时,右移n位.当n为负整数时,左移n位。C) 相乘 再将H(n)和(m)的相同值的对应点值相乘。D) 相加把以上所有点的对应点的乘积叠加起来,即得Y(n)值.依上法,取n=,,-1,0,3,各值,即可得全部Y(n)值。 程序流程图开始执行processing3()子程序执行processing2()子程序执行processing1()子程序打印“volume example tartedn” While(TRUE)执行dataIO2()子程序执行dataIO()子程序执行processing4()子程序结束YESNO执行pr

3、ocessing4()子程序程序的自编函数及其功能1) procssn(int*nput,int outt2)调用形式:pressing1(in inp2,int *otpt)参数解释:iput2、output为两个整型指针数组。返回值解释:返回一个“TUE”,让主函数的Whl循环保持连续。功能说明:对输入的nut2 bufr波形进行截取点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上的各点的值存入以OUPUT2指针开始的一段地址空间中。2) process2(int uput2,it uput3)调用形式: pocssing(it utu2,int otput3)参数解释:outut、ou

4、tput3为两个整形指针数组。返回值解释:返回了一个“TRE”,让主函数的Wle循环保持连续.功能说明:对输出的out2 buffer波形进行作点移位,然后把生成的波形上的各点的值存入以OUTPU3指针开始的一段空间中。3) proessin3(i inpu1,int outut2,n utput4)调用形式:ocesg3(n nput1,int *otpt2,intott4)参数解释:utput2、output4、ipu为三个整型指针数组。返回值解释:返回了一个“TRUE,让主函数的While循环保持继续。功能说明:对输入的npu fr波形和输入的inpt bfe做卷积和运算,然后把生成的波

5、形上的各点的值存入以OUTPT指针开始的地址空间中。4) roesing(it inpu2,int *outut)调用形式:proessing(it inpt2,ntoutt1)参数解释:outpu1、iput为两个整型指针数组返回值解释:返回了一个“E”,让主函数的循环保持继续。功能说明:对输入的iput2 buffr波形截取m点,然后把生成的波形上的各点的值存入以OUPUT指针开始的一段地址空间中.源程序:ild DSP81xDvice。” nclde DSP21x_xample。h” include f281.h”nclude stdio。#nclud volm.h it 1_bufer

6、BUSZ;i inp2_bufferUSIZ; inot1_bfferUIZE;int ut2bufferBUFSI;int ot3_ufferBUFIZ;nt out4_ufferBUFSIZE2;int size= UFSZE;in ain = MIGAI;int y=0;tk6; unsigedinprocessnLoa 1; static int pcsing1(int *uput1, int output);staic inpocesing(it*tput2,in *outpu3); staticint pocesn3(nt *input1,t *otp2,iutt4);satic

7、trcessig4(int *inp2, int otput1);sttic id daaIO1(vid);st void dat2(vod);in nt1= inp1_bufe0;it input2= in2_uffer;int *output1 = ou1_buffe0;int outpu2 ot2_bffer0;in*uput3= &ot3_buffer0;int *otput4 =&ot4_bffer0;oid mai(vid)int jihu=0; int input1= np1_bur; ntiput2=np2_bffr; intotput1 t_bufer0; nt *utt =

8、&utuer0; /it outut3 = ou3_buffer; t ouput4 =o_bffe0; puts(”olmexamplestrd); while(TR) at1(); aaIO(); procesng4(in,outt1); rocssing1(otu1,ouput2); *osing(output, output3);/ procesg(input1,tut2,out4); jish+;/在此处加断点 tc t rocessing(it *put2,it ouut1) int m=k; for(;m0;m) *outpu1+ = (*iut2+) ain; for(;(si

9、e-);+) utut1m0; stac t prossig1(it *output1,int utput2) intm=sk-1; r(;m0;m-) utput = *output1 in; tai int procsig2(toutpu2, it ouput3) in=zy,m; siz6; for(;n;n+) output+ ouputn; m=otput3; retun(TRU);icinpocesi3(int *inu1,int*outpu2,n *utut) it m=s; int y=h; int z,,w,f,g; for(;(m-y)0;) i=y; x=0; z=0;

10、f=y; fr(;i0;) g=npu1z*utpuf; x=x+; +; f-; otput+ x; y+; m=; =k-1; w=m-y1; fo(;0;m) y-; =y; z=sk; =0; =sky; for(;i0;i-,z,f+) g=inpu1zouut2; x=x+g; out_bufferwx; +; saicvid ataIO1() rtun;stacvidataI2() / o datI/O / turn;仿真设置 1)在程序中“dt1();”上单击鼠标右键选择“ogglsoftware brepoit”,设置软件断点:再在同一行上单击鼠标右键,选择“sofa reakpoin”,“dt”,来设置断点。此时打开了一个新的窗口。最后设置成如下图所示: 2)同理,在程序中“dta2();”上同样操作设置.最后设置如下图: )打开窗口菜单ViweGaphFrequecy进行如下设置:仿真图1)当输入波为IN,SIN时SN-np1IN-p2SI-out2)当输入波为SIN11 、SN1时SIN1-inp1SI1-npIN1-ut3)当输入波为SIN2、SIN2时N22-inp1SI22-inpSI22-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号