- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(DSP原理课练习题参考答案应电
《DSP原理与应用》练习题参考答案
32学时版本
用于应用电子方向
注意:红色字体文字为解题注解与说明,万万不可作为答题内容
Q.15表示是16位数据中第15位为符号位,第14~0位为小数位。试写出下面问题的答案:
⑴ 分别写出十进制正数0.68和十进制负数-0.245的Q.15表示。
0.68*32768=570AH
-0.245*32768=-1F5CH=E0A4H
⑵ 分别写出Q.15表示的A200H和5A00H的十进制数值。
A200H/32768=-5E00H/32768=- 0.734375
5A00H/32768=0.703125
上面两小题使用教材P7两条公式,公式中Q为数据中的小数位数,digits-data。取补码的正规方法是按位取反得到的反码加上1。16进制下快速算法是找出互补的数,即加上该互补数得10000H。例如求1F5CH补码,1F5CH+E0A4H=10000H。故E0A4H为所求。
⑶ 已知两个Q.15数相乘的乘积存放于累加器A中。FRCT=0时A为16进制0xFFEA000000,该乘积的十进制数是多少?FRCT=1时A为16进制0x007D000000,该乘积的十进制数又是多少?
FRCT=0时累加器A低30位为小数位
解法一,取乘积Q.15形式,乘积Q.15形式为D400H=-2C00H/32768=-11264/32768=- 0.34375
解法二,运用教材P7公式,EA000000/230=/230=-11/25=-0.34375
解法三,写出小数点后二进制位数值,乘积为,小数点后的二进制为01011B,得2-2+2-4+2-5=-11/25=-0.34375
FRCT=1时累加器A低31位为小数位
解法一,取乘积Q.15形式,乘积Q.15形式为7D00H=32000/32768=0.9765625
解法二,运用教材P7公式,7D000000H/231=125/27= 0.9765625
解法三,写出小数点后二进制位数值,乘积7D000000H小数点后的二进制为1111101B,得2-1+2-2+2-3+2-4+2-5+2-7=125/27= 0.9765625
在C54x DSP的C语言开发环境中,数据类型与通常的C语言开发环境的数据类型不同,主要数据类型如下表所示:
数据类型 位长 char, unsigned char 16 short, unsigned short, signed short 16 int, unsigned int, signed int 16 long, unsigned long, signed long 32 float 32 double 32 现在利用一个15阶Hamming低通滤波器对16位音频信号进行FIR滤波。在C54x DSP和CCS2.2上的C语言程序如下:
const double coef[15] = { 0 0-0-0
-0 0 0 0
0 0-0-0
-0 0 0;
void fir(int *x, int *y)
{
int i, j;
for (i = 0; i 1024; i++)
{
double accumulator = 0.0;
for (j = 0; j 15; j++)
{
accumulator += x[i - j] * coef[j];
}
y[i] = (int)accumulator;
}
}
以上表达式中,, 分别是低通滤波输入、输出的16位整型数组变量。
现在要求把以上过程优化为在C54x平台上运行的精度最高、执行效率最高的16位定点运算形式。试写出在C54x DSP和CCS2.2环境下完成16位相乘和32位累加的定点运算的C程序。
第一步:把全部滤波器系数转化为Q.15定点数
第二步:把乘累加转化为整数乘法,Q.15乘以整数的小数点位置在第14位和第15位之间,累加结果为32位整数,其中最高两位为符号位,接着15位为整数,低15位为小数
第三步:舍去低15位小数,取一位符号位和15位整数位作为滤波输出结果
在下面有符号数乘法中小数点位置:
const int coef[15]={158, 264, -290, -1406, -9
文档评论(0)