DSP中的卷积算法.docx

上传人:b****6 文档编号:7878777 上传时间:2023-01-26 格式:DOCX 页数:21 大小:363.62KB
下载 相关 举报
DSP中的卷积算法.docx_第1页
第1页 / 共21页
DSP中的卷积算法.docx_第2页
第2页 / 共21页
DSP中的卷积算法.docx_第3页
第3页 / 共21页
DSP中的卷积算法.docx_第4页
第4页 / 共21页
DSP中的卷积算法.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

DSP中的卷积算法.docx

《DSP中的卷积算法.docx》由会员分享,可在线阅读,更多相关《DSP中的卷积算法.docx(21页珍藏版)》请在冰豆网上搜索。

DSP中的卷积算法.docx

DSP中的卷积算法

卷积算法设计总框图

YES

3.2卷积算法设计的原理

1)卷积算法基础理论

卷积的基本理论和公式

卷积和:

对离散系统“卷积和”也是求线性时不变系统输出响应(零状态响应)的主要方法。

卷积和的运算在图形表示上可分为四步:

A)翻褶现在亚变量坐标M上作出X(m)和H(m),将m=0的垂直轴为轴翻褶成H(-m).

B)移位将H(-m)移位n,即得H(n—m)。

当n为正整数时,右移n位。

当n为负整数时,左移n位。

C)相乘再将H(n-m)和X(m)的相同m值的对应点值相乘.

D)相加把以上所有点的对应点的乘积叠加起来,即得Y(n)值。

依上法,取n=……,-2,-1,0,1,2,3,……各值,即可得全部Y(n)值.

程序流程图

 

程序的自编函数及其功能

1)processing(int*input2,int*output2)

调用形式:

processing1(int*input2,int*output2)

参数解释:

input2、output为两个整型指针数组。

返回值解释:

返回一个“TURE”,让主函数的While循环保持连续。

功能说明:

对输入的input2buffer波形进行截取m点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上的各点的值存入以OUTPUT2指针开始的一段地址空间中。

2)processing2(int*output2,int*output3)

调用形式:

processing2(int*output2,int*output3)

参数解释:

output2、output3为两个整形指针数组。

返回值解释:

返回了一个“TREN",让主函数的While循环保持连续。

功能说明:

对输出的output2buffer波形进行作n点移位,然后把生成的波形上的各点的值存入以OUTPUT3指针开始的一段空间中。

3)processing3(int*input1,int*output2,int*output4)

调用形式:

processing3(int*input1,int*output2,int*output4)

参数解释:

output2、output4、input1为三个整型指针数组。

返回值解释:

返回了一个“TRUE",让主函数的While循环保持继续。

功能说明:

对输入的input2buffer波形和输入的input1buffer做卷积和运算,然后把生成的波形上的各点的值存入以OUTPUT4指针开始的地址空间中。

4)processing4(int*input2,int*output1)

调用形式:

processing4(int*input2,int*output1)

参数解释:

output1、input为两个整型指针数组

返回值解释:

返回了一个“TRUE”,让主函数的循环保持继续。

功能说明:

对输入的input2buffer波形截取m点,然后把生成的波形上的各点的值存入以OUTPUT1指针开始的一段地址空间中。

源程序:

#include"DSP281x_Device.h”

#include”DSP281x_Examples.h”

#include”f2812a。

h”

#include”stdio。

h”

#include”volume。

h"

intinp1_buffer[BUFSIZE];

intinp2_buffer[BUFSIZE];

intout1_buffer[BUFSIZE];

intout2_buffer[BUFSIZE];

intout3_buffer[BUFSIZE];

intout4_buffer[BUFSIZE*2];

intsize=BUFSIZE;

intain=MINGAIN;

intzhy=0;

intsk=64;

unsignedintprocessingLoad=1;

staticintprocessing1(int*output1,int*output2);

staticintprocessing2(int*output2,int*output3);

staticintprocessing3(int*input1,int*output2,int*output4);

staticintprocessing4(int*input2,int*output1);

staticvoiddataIO1(void);

staticvoiddataIO2(void);

int*input1=&inp1_buffer[0];

int*input2=&inp2_buffer[0];

int*output1=&out1_buffer[0];

int*output2=&out2_buffer[0];

int*output3=&out3_buffer[0];

int*output4=&out4_buffer[0];

voidmain(void)

{intjishu=0;

int*input1=&inp1_buffer[0];

int*input2=&inp2_buffer[0];

int*output1=&out1_buffer[0];

int*output2=&out2_buffer[0];

//int*output3=&out3_buffer[0];

int*output4=&out4_buffer[0];

puts("volumeexamplestarted\n");

while(TRUE)

dataIO1();

dataIO2();

processing4(input2,output1);

processing1(output1,output2);

/*processing2(output2,output3);*/

processing3(input1,output2,output4);

jishu++;//在此处加断点

}

}

staticintprocessing4(int*input2,int*output1)

{intm=sk;

for(;m>=0;m--)

{

*output1++=(*input2++)*ain;

for(;(size—m)〉0;m++)

{output1[m]=0;

}

staticintprocessing1(int*output1,int*output2)

{

intm=sk—1;

for(;m〉0;m—-)

*output2++=*output1++*ain;

}

}

staticintprocessing2(int*output2,int*output3)

{intn=zhy,m;

size=64;

for(;n〈64;n++)

{*output3++=output2[n];

m=*output3;

}

return(TRUE);

staticintprocessing3(int*input1,int*output2,int*output4)

{intm=sk;

inty=zhy;

intz,x,w,i,f,g;

for(;(m—y)>0;)

{i=y;

x=0;

z=0;

f=y;

for(;i〉=0;i—-)

{g=input1[z]*output2[f];

x=x+g;

z++;

f--;

}

*output4++=x;

y++;

}

m=sk;

y=sk-1;

w=m—zhy—1;

for(;m>0;m--)

{

y-—;

i=y;

z=sk-1;

x=0;

f=sk-y;

for(;i〉0;i——,z--,f++)

{g=input1[z]*output2[f];

x=x+g;

out4_buffer[w]=x;

w++;

staticvoiddataIO1()

return;

}

staticvoiddataIO2()

{

/*dodataI/O*/

return;

}

仿真设置

1)在程序中“dataIO1();”上单击鼠标右键选择“Togglesoftwarebreakpoint",设置软件断点:

再在同一行上单击鼠标右键,选择“softwarebreakpoint”,“edit”,来设置断点。

此时打开了一个新的窗口.最后设置成如下图所示:

2)同理,在程序中“dataIO2();”上同样操作设置。

最后设置如下图:

 

3)打开窗口菜单Viwe->Graph->Frequency…进行如下设置:

仿真图

1)当输入波为SIN,SIN时

SIN-—-—-—---——---—--——--inp1

SIN——-—--—————--—-—-—-——inp2

SIN--——--—-—--—-——-—-—-—out

2)当输入波为SIN11、SIN11时

SIN11---——-—-———-——-——————inp1

SIN11----——-—--—-——--—————inp2

SIN11——---—-———--———--—-——out

3)当输入波为SIN22、SIN22时

SIN22—---——---———-------—-inp1

SIN22—--—-—-——-——--—————-—inp2

SIN22--—-—----—-——--—---——out

5)当输入波为SIN33、SIN33时

SIN33—-—-----————-—-—--—--inp1

SIN33---——---———-—--—-——-—inp2

SIN33—-—-——--———-——-—-————out

6)当输入波为SIN44、SIN44时

SIN44--——--—-——--—-—-——-—-inp1

SIN44—--—-—-——----——-——-——inp2

SIN44---—---——---———---—-—out

7)当输入波为SIN44、SIN

Sin44-——-—--————-—---inp1

Sin—---—-—---—-—---—--inp2

SIN44、SIN-———-———-Out

8)当输入波为SIN11、SIN33时

Sin11—-——--—----—-————-—-—-——--inp1

Sin33——-——-——--—--—--———------inp2

Sin11。

sin33-———---———-—--——-——Out

9)当输入波为SIN22、SIN时

Sin22----—-————--——————-————inp1

Sin—-—---——--—-—---—----——-—--inp2

Sin22。

Sin--—----—-——-———---—--Out

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1