MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx

上传人:lao****ou 文档编号:220947 上传时间:2023-06-05 格式:DOCX 页数:11 大小:281.19KB
下载 相关 举报
MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx_第1页
第1页 / 共11页
MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx_第2页
第2页 / 共11页
MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx_第3页
第3页 / 共11页
MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx_第4页
第4页 / 共11页
MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx》由会员分享,可在线阅读,更多相关《MATLAB代做_FPGA代做hslogicFPGA滤波设计说明.docx(11页珍藏版)》请在第一文库网上搜索。

1、一I渺小的,。首先简单的使用MAT1AB进行仿真验证一下:中值滤波:对图像进行3*3的滤波,这里中值滤波的本质就是对邻近区域内3*3区域计算均值,这里,我们使用自己编写的程序(不使用MAT1AB自带的中值滤波函数)来仿真,仿真结果如下所示:,原始图像带噪声图像中值滤波图像SAD模版匹配跟踪算法:模版匹配算法的基本公式为:U-I1(z,)=叭川,为i)-T(iJ)i-O/aO然后得到R中最小的值,则作为匹配区域,即识别的目标。因为这里要求中要求13*13的模版大小,因为整个算法是个固定模板的模板匹配算法。这里后来是用来了你提供的那个球的视频,你是用SSD算法,我这里用SAD进行仿真,仿真效果如下

2、所示:,您,您上面的两个部分合起来,仿真效果如下所示:X下面介绍一下在FPGA中设计这两个模块,并提供测试:3*3中值滤波器在FPGA中,3*3中值滤波器的基本构架如下所示:,这里,在实际中,由于FPGA搜索九个数据的中间值是非常复杂的,通常的做法就是采用中值滤波快速算法,具体如下所示:从上面的结构可知,中值滤波器分三级进行计算,其中每级之间通过D触发器来稳定时序。然后整个模块的计算需要4个时钟周期的延迟。另外一方面,由于在FPGA中,图像即以串行保存在存储器中,而中值滤波需要每次输入9个数据进行滤波,所以这里需要一个地址控制器,用来控制输入图像像素值。在实际中:*(*.j+1)X(M-I)X

3、aJ)X(1j】)(i*jx(i1j)(i+.jn这九个数,其对应的地址分别为:AddressAddress+1Address+2Address+800Address+1+800Address+2800Address+1600Address+1+1600Address+2+1600因为你的数据是600*800,所以,总地址为480000,但是,在仿真阶段,这里设置那么大,显然没法进行,因此,这里测试图像我们使用的大小为60*80,总地址为4800这九个数,其对应的地址分别为:AddressAddress+1Address+2Address+80Address+1+80Address+2+80A

4、ddress+160Address+1+160Address+2+160上面说到的参数,在veri1og中都是可调的。修改parameters.v文件即可调用。然后,我们使用一章测试图片进行测试,使用MAT1AB产生带早上的图片,并转化为串行格式(在FPGA中,图像即以串行保存在存储器中),作为测试源进行仿真。仿真之后,将FPGA中保存得到的Rec.1x1文件复制出来,运行view.m这个MAT1AB文件,mode1sim和MAT1AB运行后期对应的结果分别如下所示:1141HJkijvS/1S1U/test_meda_tops/o_address322/test_mfetops/o_enab

5、1eOSt1t一1.一IM/test_me(ia_tops/o_enab1e1StO/test_meda_tops/o_frame_f1agStO/testjnede_tops/o_Wrte_Address0;/test_meda_tops/Images158FPGA中图像仿真效果:原始图像带噪声图像FPGA滤波之后图像MAT1AB下仿真效果:从上面的对比可知,FPGA中值滤波的功能是正确的。SAD模板匹配跟踪算法的实现:这个算法的基本运算过程如下所示:这里,需要说明的时候,由于你要求的模板大小只有13*13,所以,一般只适合适用在目标较小的情况下使用,这里我们使用如下的测试图片作为测试。根据

6、公式:“1M-JK()=!f(%i+i)-T(i)i070这里,我们将13*13模板保存到一个BRAM中,以串行方式保存,然后从图像地址中读取数值和模板做差运输(根据实际情况不同,这里需要更换模板内容)。运行MAT1AB文件gen.m分别产生模板数据文件和测试图片数据文件。这个部分的地址产生方式和上面的类似,也是以矩阵形式产生的,具体地址变化如下所示:地址的控制以13*13模板进行下去。具体为:Address,Address+1,Address+W,Address+1+W,Address+12+W,Address+12*W,Address+1+12*W,Address+12+12*W,这个部分

7、的仿真效果如下所示:messagesrII:/test_TEST_SAD/i_dkO/test_TEST_SAD/i_rstO,/test_TEST_SAD/i_images_enO/test_TEST_SAD/o_images_en_input/test_TEST_SAD/o_address_input/test_TE5T_SAD/o_images/test_TEST_SAD/o_mb,Aest_TEST_SAD/o_SADStOO103OO=市hq-SUiaMa11ik1ak.bBIRr/test_TEST_5AD/o_SAD_ready,Aest_TEST_SAD/o_SAD_C1k/t

8、est_TEST_SAD/o_min /test_TEST_SAD/oJndex /test_TEST_SAD/o_enStOStO2454556St10155-14556从上面的仿真可知,SAD值最大为245,地址为4556.4556对应的图像行列分别为28行,76列。这和MAT1AB仿真的结果相似。下面的仿真是通过搜索到的最小值,获得白色边框,从而完成定位。使用同样的方法,将仿真后的数据保存到处,用MAT1AB显示,仿真效果如下所示:97if(i_images_en=1,b1)98begin99o_enab1e1=1;100o_enab1e2=o_enato1e1;101o_enab1e3

9、=o_enab1e2;102o_enab1e4=o_enab1e3;103o_images_en_input1;以及image_position.v这个中的isbox的延迟,主要这些延迟在实际中需要测试外部存储器到内部的实际延迟而定,这里你需要自己调整一下。3*3中值滤波和SAD模板匹配跟踪整合的实现:前面,我们已经单独对中值流波和SAD算法进行了FPGA实现,下面,我们将这两个模块整合起来,这两个部分的整合构架如下所示:P由于,在实际中,所处理的图像维度较大,我们都需要将每个步骤的处理的中间结果保存到存储器中,然后在后一级处理的时候,再通过寻址来处理。所以在上面的中值滤波和SAD算法的整合的

10、时候,我们需要将中间处理结果保存下来,合理设计地址产生算法和时序以及合理布局流水,从而大大节约算法资源占用。这个部分的程序在第三个文件夹下。首先,回顾一下两个部分合起来的MAT1AB仿真,效果如下所示:一颗给小的,整个系统的连续帧仿真如下所示:火estTE5knTES17WwtTESTjsStftwtTE5To.workJ.e5tTESTojwKJMstTEST,OjWCdJwtTESToJmwtTESTo-Addre.AtTEST/ojnedeosSToJrw.AeStTES”o_Wrtte_.estTESTo.We,.AwtTEST/oJcM9e.AwtTEST/oJmage.Mrt1ES

11、JAddrewESToj5ADestTEST.5AOj.wtTE5ToSAD.CkAtTEST/ojnr)wtTESTo.mdexRwuESTfojxMrtwseTESTojenwtTESToJsboxATTEST,OJmd9.wtTESThd1cstTKTM2RbVGSftj【00111pocoooooooo卜;如二Q1】:0ox)COOwxoTOStOs惠咖0二OJ-MJJJJooco3ccooccoo00000000StOOoCWCoOoax)CmStOOjjjjCOjj:COjJjjWWWWWWWftftftOOaWCOOOcokOJCCODQCOOCOJO;bn;III1Oj1Cuj

12、CI1W1h山Ih1由山山IiIIII;III对OoUQKX1皿%30。10。电1陋导入MAT1AB成像效果如上所示:中值滤波和SAD算法整合:我这里本想把模块加入到你的程序中了,但是我没找到类似isstart相似的使能信号,这个你根据你的测试情况,当完成一帧数据保存到DDR之后,产生一个使能给我的模块就好了。另外也没有找到多余的地址接口,也就是说你的内部没有留好对应的一些接口。所以给你写了一份较为详细的整合说明。这里我暂时是把程序复制在了你的模块中,但具体的接口如何接,你根据我们下的说明从你自己的模块中给出来。这个部分见第四个文件夹,这里由于最后你还需要自己做部分的调试所以这里我们对这个部分

13、的整合也做一定的说明和补充:首先,在第三部,我们得到了一个完整的系统,丫PUOIIICCAA.VQcmTESTCrEST.v)jImages_DDR_Test_u-Images-DDR-;RAM.DDR.u1-RAM_DDR(RAM_DDR.x.工RAM-DDR.u2-RAM.DDR(RAM.DDR.x“IVContro11ers-Contro11er(COntvjiImage_Process_u-Image-Processvjmedia_tops_u-media_tops(SAD_tops_u-SAD_tops(SAD-上面的Image.Process!就是这个完整的系统,其余为仿真需要加入的配合模块,这里首先对整合需要做的调整进行说明。114115116117118119120121122(i_isStart),(o_uork_1eve11),(o_vork_1eve12),(o_work_1eve13)注意,这里临时存储单元,就是用存放中间过程处理的图像数据,如果资源允许,则使用内部块RAM,这样控制时序非常方便,否则则需要输出到外部存储器。你到手程序之后,肯定还需要自己结合实际的摄像头输入进行调试,所以这里我先给你说明一下我设计的这个模块的整体构

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

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服