HLS系列–实例分享用HLS实现Goertzel算法(快速频点检测).docx
-
资源ID:837792
资源大小:37.77KB
全文页数:3页
- 资源格式: DOCX
下载积分:3金币
快捷下载

账号登录下载
微信登录下载
三方登录下载:
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
HLS系列–实例分享用HLS实现Goertzel算法(快速频点检测).docx
H1S系列-实例分享,用H1S实现Goertze1算法(快速频点检测)H1S非常适合一些信号处理模块的快速实现。下面是一个实际的例子,由于使用了H1S,非常高效的就完成了模块的rt1的实现,比用手工Coding节约了大量的时间!需求描述:在一个项目里面,需要快速检测输入信号的几个特定频点。如下所示,输入信号来自于一个ADC,采样频率约为IOMSamPIes,位宽为16bits.16bitsi潞/sFPGA实现方案选择:通常来说,计算信号的频谱可以采用快速傅里叶变换FFT,不过本例只需要求特定频点的信号能量,有一个更快捷的算法叫做GOertZe1。GOertZeI基本算法在每次采样后立即进行处理,其具体原理和推导过程在此不详述,感兴趣的朋友可以自行搜索。在此只给出其计算频谱的公式:其中VkT=Vk-2=Oo频谱的平方幅度表示为:这个公式全都是基于实数进行运算,因此非常好操作。c语言描述:把上述公式翻译成C语言是很简单的事情,假设采样点数N=256,那么C函数如下:1staticintN=256;2staticf1oatWx2=0.85162*2;35678910114-f1oatGoertze1(unsignedshortadcDataN)Din;Vn_2=0;Vn1=0;Vn_0=0;Xk?itj;f1oatf1oatf1oatf1oatf1oat1213 for(j=0;j<N;j+)14 Din=(f1oat)adcDataj;15 Vn_2-Vn_1;16 Vn二1=V2;17 V2=W×2*Vn_1-Vn_2+Din;181920Xk=Vn_0*Vn_0+Vn_1*Vn_1-V1x2*Vn_1*Vn_0;returnXk;£H1S实现:上述代码基本不用做任何修改,直接丢到H1S里面去实现即可。实现后的资源使用情况如下:BSummaryNameBRAM.18KDSP48EFF1UTDSP-Expression-013RFO-InstanceMemory-87201582Mu1tip1exer-227Register-286-Tota1O8161822Avai1ab1e280关印X)Uti1ization(%)O一;阴4沛珏金1atency如下:0Summary1atencyInterva1minmaxminmaxTyPe3598359835993599noneDetai1B1oop1atency1oopNameminmax-1oop135843584端口情况如下:RT1PortsDirBitsProtoco1SourceObjectCTyPeap.ckin1ap_ctr1_hsGoertze1returnva1ueap.rstin1ap_ctr1_hsGoertze1returnva1ueap_startin1aP-CtrIJsGoertze1returnva1ueap_doneout1ap_ctr1_hsGoertze1returnva1ueapJdIeout1ap_ctr1_hsGoertze1returnva1ueap_readyout1ap_ctr1_hsGoertze1returnva1ueap_returnout32ap_ctr1_hsGoertze1returnva1ueadcData_doutin16ap.fifoadcDatapointeradcData_empty_nin1ap_fifo.JF二eradcData_readout1ap_fifopointer