- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SHARC DSP音频算法开发调试数据分析
SHARC DSP音频算法开发调试数据分析
摘 要 SHARC DSP广泛应用于数字音频产品中,为分析SHARC DSP音频算法开发中的调试数据,采用了文件读写、数据流、操作数组和存储空间等4种数据输入输出方法,以及在软件开发平台VisualDSP++中实现的主要步骤及关键代码。以参量均衡算法为例说明如何用MATLAB对调试数据进行分析。
【关键词】音频 数据模拟 SHARC DSP VisualDSP++
1 引言
目前很多数字音频产品都是采用DSP作为信号处理平台。为降低产品开发难度、加快进度,国内厂家目前使用较多的是基于图标编程的专用音频DSP,如ADI公司的ADAU1701 SigmaDSP和TI公司的TAS3108。然而这类基于图标编程的DSP虽然使用方便,但算法功能却受限于现有的算法图标,仅适合较常用的功能,且不同厂家开发的产品易出现同质化的现象。为提升产品的竞争力,有些厂家研究出自己的音频处理算法,在通用DSP上通过编程实现。ADI公司生产的SHARC系列DSP是数字音频产品中常用的通用DSP,其软件开发平台是VisualDSP++(近年推出了CCES软件,支持与SigmaDSP开发软件平台的互连,目前VisualDSP++还是得到广泛应用)。在SHARC DSP上调试音频算法时,除了需将算法通过程序实现外,还需对算法程序调试的调试数据进行分析。以下讨论DSP开发平台上音频数据输入输出模拟的实现方法及如何用MATLAB对调试数据进行分析。
2 音频数据输入输出模拟
常见的DSP音频信号处理框图如图1所示。
其中音频算法一般需要在DSP?件开发平台中先通过软件仿真的方式进行调试,在这个过程中没有外部声音信号输入,也无法将处理好的声音信号输出给外部设备,所以需要对图1中的信号输入输出部分进行模拟。下面讨论在VisualDSP++5.0上模拟输入输出音频数据的几种方法。
2.1 通过文件读写进行模拟
通过调用文件操作函数,对WAV、PCM等常用的声音文件进行读写,图2是操作框图。
本例程有两点需要注意:一是WAV文件有44个字节的文件头,不能作为声音数据进行处理,因为文件头有保存文件类型大小等,不是声音的具体数据;二是在SHARC DSP中各种数据类型的比特数,比如short int/int/float等数据类型均为32比特。
2.2 通过数据流进行模拟
数据流可以模拟通过外部端口或存储器与DSP处理器进行数据传输。在VisualDSP++菜单中选择“Settings\Streams\Add”,弹出图3所示界面。
共有Source和Destination两栏,通过对这两栏的相关参数进行设置即可模拟数据的输入输出。
模拟数据输入:在Source栏设定File路径,在Destination栏设定Debug target,既可以是各种接口,也可以是存储器地址。为方便处理,可以在程序中定义一个变量,然后将该变量地址作为接收文件数据的Debug target。
模拟数据输出:在Source栏设定Debug target,在Destination栏设定File路径。实际的算法仿真时,可以将保存输出数据的变量地址作为Debug target,程序运行时系统就会将输出数据保存到输出文件中。
数据流模拟时都要使用到数据文件(后缀名为dat),这种dat文件要满足一定的格式,即将所有数据排成一列,可以通过Matlab或C语言编程对dat文件进行读写。更简便的方法是通过CoolEdit软件进行dat文件读写:若要写一个dat文件,则先打开一个声音文件,然后选择另存,类型选txt,最后写自己定义的文件名(后缀写dat);并将该dat文件中的前面几行文件头信息去掉;若要读一个dat文件,直接打开该文件,然后选定采样率和数据量化比特数即可。
2.3 通过操作数组进行模拟
以上两种方法主要模拟数据量较大、无法预存到存储空间的情况,对于少量数据的情况,输入数据的模拟可以定义一个输入数组,用原始声音数据对其初始化。输出数据的模拟也可以定义一个输出数组,将所有处理好的数据都存入这个数组。
输入数组的初始化有几种方法,最直接的方法是将所有数据列出来,但对于几百甚至几千个数据的情况,显得页面不够简洁,建议用以下两种方法。
2.3.1 汇编语言环境下用dat文件初始化数组
首先将原始数据写入一个dat文件(例如input.dat),然后新建一个asm文件,定义数组名(例如_inputx),选择存储区(例如seg_dmda)。以下是相关代码:
.global _inputx;// 声明全局变量
.SECTION/DM seg
您可能关注的文档
最近下载
- 2025一级造价工程师《案例分析(土建、安装)》学霸笔记.pdf VIP
- 江苏省2024年中职职教高考文化统考财会专业综合理论试卷.pdf VIP
- 江苏省职教高考财会专业综合理论调研考试试卷.docx VIP
- 河南省职业教育条例解读课件.pptx VIP
- 2024年公路水运工程试验检测师《水运结构与地基》考前必刷必练题库500题(含真题、必会题).docx VIP
- 二千年间 胡绳新格式.pdf VIP
- 瓷砖空鼓注浆施工合同.docx VIP
- 阅读理解之研究报告类-2025年新高考最新英语模拟试题优选分类汇编(解析版).docx VIP
- 儿科护理新进展与跨学科教育模式探索题库答案-2025年华医网继续教育.docx VIP
- 全民所有自然资源资产清查指南.pdf VIP
文档评论(0)