DSP技术及应用 教学课件 作者 江金龙 第5 8章第6章.pptVIP

DSP技术及应用 教学课件 作者 江金龙 第5 8章第6章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 汇编程序设计       6.1 算法设计方法   一个复杂的算法, 如果不考虑实时实现, 可以考虑调用现有的函数实现。如求y=sin(x),可以直接调用C语言的sin函数。 该函数直接采用浮点运算, 其内部用泰勒级数公式实现计算, 输入和输出参数也都为浮点数。 调用C语言的sin函数不仅简单、 快捷, 而且精度高, 但运算量大,要求较多的运行时间。 如果时间不够, 可考虑用以下方法改进。 6.1.1 查表法   如果输入变量与输出变量可以用简单的映射关系来描述, 就可以用查表法实现相关函数。 如sin函数(这里泛指任意一个非线性函数), 若在它一个周期内先均匀采样N个点, 制作成一个表, 然后将输入变量x变换成表的偏移地址, 即可实现, 如图6.1所示。 图 6.1 sin函数一个周期的采样值(N=16)   表的偏移地址的计算方法是, 将x=[0~2π)弧度变换到0~N-1之间的整数index。   如果存储单元数富有余地, 可采用加大表的长度的方法提高精度; 如果存储单元数不足, 可采用线性插值的方法提高精度。 设采用线性插值计算x′和index, 如图6.2所示。 图 6.2 线性插值示意图 则插值点x对应的y值近似等价于 y≈y′=y(index)+[y(index+1)-y(index)](x′-index) (6.4)式中, y(index+1)-y(index)可单独制作一张表, 而不必每次都查表计算。 采用更高阶插值的方法可以进一步提高数据精度, 但运算量也随之增加。 6.1.2 数学变换法   C54x的直接运算只有加、 减、 乘、 移位和逻辑运算等, 要实现其他运算, 需采用数学变换将其他运算变换成 这类运算才可以实现, 最常见的数学变换为级数展开法。 如正弦用级数展开, 取前5项为   式(6.5)具有迭代性。 若系数用Q15格式表示, 从最里面的括号开始计算, 均为乘加(减)运算, 可用C54x的汇编专用指令快速实现。 余弦等其他函数也可用类似的方法处理。      正弦函数也可用迭代公式(6.6)计算, 但不推荐使用, 因为它容易产生累加误差。    sin(nθ)=2cos(θ)sin[(n-1)θ]-sin[(n-2)θ](6.6)   例6.1  用查表法产生线性调频信号。   线性调频信号(Linear Frequency Modulation, LFM)的理论公式为   若用数字系统实现调频信号, 需对信号进行离散化处理。 设采样频率为fs=1/Ts, Ts为采样周期, 则t=nTs, n=0, 1, 2, …, N-1, N=T/Ts为一个LSF信号周期的采样总点数。 另设一个正弦周期的离散相位数为M,离散化式(6.7), 得   公式虽然简单, 但运算量却不小。 要在一个采样周期内算出一个采样值u(n), 需要足够快的CPU。 一般将运算公式变换成运算量小的加减运算, 尽量避免运算量大的乘除运算。   令   当n0时,f(n)可写成递推公式的形式    f(n)=f(n-1)+2Kcn-Kc+Kp      (6.13)   用两个累加器实现:   从式(6.7)可以看出, u(n)仍为正弦信号, 只要按式(6.13)求出n时刻的 f(n), 查正弦表即可求出u(n)(直接计算正弦值的运算量很大, 一般不采用)。    如f1=450 Hz, f2=150 Hz, T=5 s, 设采样频率fs=8 kHz, 一个正弦周期的离散相位数M=1024,可算出Kc=-4.8×10-4, Kp= 57.6。 6.2 FIR滤波器的设计   数字滤波器可分为IIR滤波器和FIR滤波器。 从设计理 论来讲, 设计数字滤波器是比较复杂的过程, 但借助于 MATLAB等现代设计软件, 可使问题大大简化。 如果利用这些工具设计出来的结果不能满足实践要求, 则需要根据数字滤波器的设计理论进行计算, 再转化为DSP来实现。   FIR滤波器的系统函数为   这是一个典型的乘加运算, 可采用直接型结构实现, 如图6.3所示。 图 6.3 FIR滤波器的直接型实现   FIR的实现结构还有级联型、 频率抽样型、 快速卷积结构和线性相位FIR滤波器(也称系数对称FIR滤波器)结构等多种 形式。 如果系数具有对称性, 可采用线性相位FIR滤波器结构, 以节省运算时间。 在DSPLIB库函数中, 一般采用级联型结构, 因为级联型结构更容易实现代码的重复使用。    要实现FIR滤波器, 需合理使用存储器, 以获得较高的运算效率。 6.2.1 直接型FIR滤波器实现   直接型FIR滤波器

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档