梦到做饭是什么意思| 不可多得是什么意思| 性功能减退吃什么药好| 水落石出是什么生肖| 漫字五行属什么| 杭州市市长什么级别| 牙龈一直出血是什么原因| 宝宝出急疹要注意什么| 舌苔有裂纹是什么原因| 游离甲状腺素是什么| 装垃圾的工具叫什么| 疰夏是什么意思| 甲状旁腺分泌什么激素| 磨牙是什么原因引起的| 嘉靖为什么不杀严嵩| 世界上最多的动物是什么| 资产负债率高说明什么| 外传是什么意思| bgm是什么意思| 界限性脑电图是什么意思| 白色裤子搭什么颜色上衣| 什么程度算节食减肥| 珩五行属什么| 脚水肿吃什么药| 排湿气最快的方法吃什么| 考科二紧张心慌有什么方法缓解| 小儿麻痹什么症状| 超导是什么意思| 多巴胺是什么意思| 拖鞋什么材质好| 秋水仙碱是什么| 戴玉手镯有什么好处| 梦见蛇吃人代表什么预兆| 冰火是什么意思| 种牙和假牙有什么区别| 小孩晚上磨牙是什么原因引起的| 无花果什么时候种植| 卯是什么生肖| 五味指的是什么| 乳腺结节吃什么食物好| 什么是沉香木| 门昌念什么| 身体年龄是什么意思| 15岁可以做什么兼职| hennessy是什么酒价格多少| 肚子胀不排便什么原因| 新生儿白细胞高是什么原因| 女人什么时候排卵| 肠痉挛有什么症状| 转氨酶高是什么情况| 断头路是什么意思| 树欲静而风不止什么意思| 明朝为什么会灭亡| 铁低的原因是什么| 什么水果减肥| 双肾小结石是什么意思| 天空像什么| 1月27号是什么星座| 有过之而不及是什么意思| 巨蟹座女生喜欢什么样的男生| 海葡萄是什么| 胎盘厚有什么影响| 胃酸的主要成分是什么| 肠梗阻是什么原因引起的| 陶渊明是什么派诗人| 角是什么生肖| 一个尔一个玉念什么| 检查肾脏挂什么科| 谵妄是什么意思| 鸡飞狗跳的意思是什么| 红薯和什么不能一起吃| 人流后吃什么最补子宫| 什么生火| 閪什么意思| 虾米吃什么| 为什么会得霉菌感染| leep术是什么手术| 血红蛋白高是什么原因| 抬旗是什么意思| 牙齿出血是什么病表现出来的症状| 468是什么意思| pornhub是什么| 牛男和什么属相最配| 瑶是什么意思| 营养性贫血是什么意思| 什么是瞬时速度| 匹马棉是什么面料| 小朋友流鼻血是什么原因| 茄子吃了有什么好处| 滴虫性阴道炎用什么药好| 一什么冰雹| 睡觉背疼是什么原因| 脑癌是什么原因引起的| 戌怎么读音是什么| 什么水果不能上供| 吸狗是什么意思| 矫正牙齿挂什么科| 左腿酸痛是什么原因| 怀男孩和女孩有什么区别| 声音有磁性是什么意思| 站久了脚后跟疼是什么原因| 梦见打老婆是什么预兆| 色弱和色盲有什么区别| 为什么吹空调会咳嗽| 脚底出汗是什么原因女| 揭榜是什么意思| 避孕套是什么材质| 才华横溢是什么生肖| 首战告捷什么意思| babycare是什么牌子| quake是什么意思| 金星原名叫什么| 中国的全称是什么| 男人蛋蛋疼是什么原因| 为什么晚上不能倒垃圾| 冬菜是什么菜| 宫外孕和宫内孕有什么区别| 蚊子怕什么颜色| 自私是什么意思| 视力sca分别代表什么| 医学五行属什么| snoopy是什么意思| 孕检nt主要检查什么| 什么叫湿气| 指甲上有竖条纹是什么原因| 梦见虫子是什么意思| 嘴麻是什么原因| 杀马特是什么| 记仇的人是什么性格| 胆囊息肉是什么| 迪桑特属于什么档次| qcy是什么牌子| 疼痛科属于什么科| 吃什么容易发胖| 对数是什么意思| 女人肾虚是什么原因| 杨梅什么时候成熟| 吃菠萝有什么好处| 黄油是什么意思| 小孩舌头白是什么原因| 尿胆红素阳性是什么意思| 血月代表什么| 害怕是什么意思| 西洋参不适合什么人吃| 胃痛打嗝什么原因| 上网是什么意思| 一案双查是什么意思| 层峦叠翠的意思是什么| 眼睛发涩是什么原因导致的| 软文什么意思| 阴唇为什么一个大一个小| 替拉依是什么药| 舟字五行属什么| 喝什么饮料解酒| 风油精有什么功效| 肠梗阻有什么症状| 指征是什么意思| 拔完牙不能吃什么| 补牙为什么要分三次| 小周天是什么意思| 减震器坏了有什么症状| 大暑什么时候| 为什么有狐臭| 2004年是什么命| 疣是什么样子图片| dpm值是什么意思| 脚脖子肿是什么原因| 肾宝片有什么副作用吗| 牙上有黑渍是什么原因| 一个歹一个殇读什么| 拒服兵役是什么意思| 缺钠有什么症状和危害| 什么的游泳| 什么样的枫叶| s925是什么金| 老而弥坚是什么意思| 早晨六点是什么时辰| 文殊菩萨保佑什么| 尿里面有血是什么原因| 91年出生的属什么| 后会无期什么意思| 得了梅毒会有什么症状| 编程属于什么专业| 梦见钓鱼是什么意思周公解梦| 子宫内膜异位是什么原因造成的| 似曾相识是什么意思| 倒数第二颗牙齿叫什么| 日有所思夜有所梦是什么意思| 血压和血糖有什么关系| 拘禁是什么意思| 带下病是什么病| 98年属什么的| 鼻涕倒流吃什么药效果好| nas是什么| 风雨雷电代表什么生肖| 低血压不能吃什么食物| 小熊是什么牌子| 1号来月经什么时候是排卵期| 男人本色是什么意思| 颈椎反弓有什么症状| gpt是什么意思| 有机可乘是什么意思| 免疫组化是什么| 屁股上长痘痘是什么原因| 羊蝎子是什么肉| 亚甲减是什么意思| 京东快递是什么快递| 酮症酸中毒什么原因引起的| 恶露是什么东西| balmain什么档次| 云母是什么东西| 木林森属于什么档次| 东方蝾螈吃什么| 网拍是什么意思| 黄瓜敷脸有什么功效与作用| 卵巢分泌什么激素| 副军级是什么军衔| 什么是假声| 什么的柳枝| mrn是什么意思| 相思什么意思| 利可君片是治什么病| 试纸一深一浅说明什么| 黑茶金花是什么菌| 85年属牛是什么命| 七六年属什么生肖| 辅酶q10什么时候吃| 小腹胀痛吃什么药| 人的舌头有什么作用| 脑梗长期吃什么药好| 九月十号是什么节日| 一阴一阳是什么生肖| 一语惊醒梦中人是什么意思| 肌无力是什么病| 黑豚肉是什么肉| 贾宝玉的玉是什么来历| 8月10号是什么星座| 认知障碍是什么病| 老妹是什么意思| 安宫牛黄丸什么时候吃| 尿妊娠试验是检查什么| 圣母娘娘是什么神| 曹休和曹操什么关系| 4月13日是什么星座| 经常放屁是什么问题| 雪梨是什么梨| 移居改姓始为良是什么意思| 女累读什么| 竹肠是什么部位| 脚臭用什么洗效果最好| 馐什么意思| 勿忘我是什么意思| 夜叉是什么意思| 在编是什么意思| 心脏瓣膜关闭不全吃什么药| 手脚冰凉什么原因| 5月23日是什么星座| 喝荷叶茶有什么好处和坏处| pvs是什么意思| 脑血管堵塞会有什么后果| 骨髓纤维化是什么病| 抑郁症是什么意思| 0到3个月的婴儿惊吓吃什么药| 普高和职高有什么区别| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ADSP TigerSHARC中利用查找表快速计算三角函数

2017年9月全国英语等级考试二级阅读理解训练

作者: 时间:2025-08-04 来源:网络 收藏
百度 早在2017/18赛季的AsLMS(AsianLeMansSeries,亚洲勒芒系列赛)中,他们三人组成的“马来西亚三叉戟”就曾经在武里南(Buriram)站上赢得了比赛。

作者Email: batistuta810226@sina.com

摘要:DSP算法中,是一种运算量比较大,占用时间比较长的运算。如果通过直接调用DSP生产商或者第三方提供的库函数进行运算,往往需要占用比较多的时钟周期。在实时性要求比较高的场合,调用库函数进行就不能够达到实时性的要求。在这种情况下,表的方法来得到的值就成为一种可行,并能获得很高实时性的方法。本文给出了一种在TS101中来实现三角函数计算的方法,并对这种算法的误差和运算量进行了分析,从结论可以看出,文中提出的通过表计算三角函数的方法有效而且运行效率比较高。

关键词:查找表TS101DSP实时性

1.概述:

我们知道,在三角函数的运算中,涉及到大量倒数和平方根的运算。TS101的ALU指令中,提供了很方便的求倒数指令RECIPS和求平方根倒数指令RSQRTS,在一个指令周期内,可以完成求一个浮点数的倒数或者平方根倒数的运算。但是,在TS101中,倒数和平方根倒数指令仅仅提供了8位浮点的近似值,特别在小数点后位数比较多的情况下,误差比较大。并且,在很多计算过程中,随着运算步骤的增加,其误差也不断扩大,最终将会导致运算的结果远远偏离正常的数值。如果需要提高倒数和平方根倒数的运算精度,就需要用到收敛算法,这样就大大增加了运算的周期数,使得运算量骤增。在需要大量三角函数运算的场合,这么大的运算量就显得很不合适,大大占用了系统的运行时间。在的集成开发环境VisualDSP3.5++中,生产商虽然提供了进行三角函数计算的库函数,并具可以得到很高的计算精度,但是它的运算周期却比较长,很多情况下并不能满足我们的要求。

TS101中提供了专用的加法器和乘法器,使得高精度的乘加运算可以在一个周期内得以完成。如果我们可以乘加运算代替大运算量的求倒数和求平方根运算,那么程序运行中就可以大大降低程序的时间消耗。而且,三角函数具有一定的周期性,我们可以通过三角函数周期性的变换,将角度值变换到一个周期内,通过查表的方式来获得三角函数的数值。这种方式直接利用了三角函数的周期性,其误差大小决定于查找表的大小,也就是对一个周期内三角函数的数值进行采样的密度。在误差允许的情况下,可以以很高的运算速度得到三角函数的数值。

2.算法理论与DSP实现:

(1)DSP算法:正弦和余弦函数是按照2π为周期周期性变化的函数。对于和形式的函数,当我们知道x的数值以后,就可以根据浮点数x的小数部分的数值求得函数的数值,而整数部分可以作为周期循环的部分不予考虑。所以运算的重点在于如何将小数部分的数值转变为查表时候所对应的地址单元。我们取余弦函数区间上的数值,在允许的计算精度范围内首先对其进行采样。因为余弦函数为偶函数,所以在整个自变量变化的范围内的三角函数运算都可以转变到区间内进行。

对于三角函数的数值的计算,我们将其自变量x的取值区间以0为中心分为小于零和大于等于零两部分。对于小于零的区间,首先求出x的绝对值,然后减去0.5,将得到的结果用fix指令求整,再用float指令将其表示为浮点数,将x的绝对值与用float指令求得的数值相减就提取出了数据的小数部分。对于大于零的区间,我们不用求其绝对值就可以直接按照上面的步骤提取出其小数部分。对于正弦函数,由于正弦函数是奇函数,情况就相对比较复杂一些。这时需要判断x的数值是大于零等于零还是小于零,如果在大于零的情况下,可以直接将小数部分提取出来,并对其进行查表得到对应的三角函数的数值,而在x的数值小于零的情况下,我们需要将在区间内查表得到的数值再对其取负才可以得到相应的三角函数的数值。我们得到小数部分的数值以后,将小数部分的数值和采样的样本点数进行乘法运算,就可以得到查表所需要的相对地址。查表实现的简单的汇编语言算法实现如下(未优化):

xr11=0.5;;
xfr20=absr19;;
fr21=r20-r11;;
xr22=fixfr21;;
xfr23=floatr22;;
xfr4=r20-r23;;
xfr5=r4*r3;;//r30查找表采样样本点数
xr6=fixfr5;;
j3=xr6;;
xr1:0=l[j30+j3];;//j30查找表绝对地址

(2)查找表样本制作和复指数信号的查表:在我们进行科学计算时,经常要碰到形式的复指数运算,由欧拉公式我们可以得到。在我们得到x的值之后,可以对和一起进行查表,从而得到相应的三角函数数值。TS101种,每次可以对4个word进行寻址操作。所以,我们在之前制作查找表的时候,对一个周期内的正弦和余弦函数采样之后,可以将正弦和余弦函数的查找表交叉存放。以64bit为单位,低32bit存放余弦函数的查找表数值,高32bit存放正弦函数的查找表数值。这样,在我们每次得到一个x的小数位数值之后就可以直接查找到两个函数的三角函数值,从而得到的数值,极大的方便了复指数的运算。而且,采用TS101的单周期多指令方式,我们可以实现一个程序循环内并行查找多个复指数信号数值的操作,从而将速度大大提高。

在我们进行查找表运算的时候,因为函数是周期性变化的,所以往往涉及到很多边界点的问题。在我们提供的这种算法中,对于x的数值为0的情况下,根据我们提供的算法,这个时候最后提取的数值为1。这是一个很特殊的边界点,在我们进行运算的时候必须将它的影响考虑进去,否则将会影响运算的结果。我们可以利用一种很简单的方法,就是在我们制作查找表的时候,将这种情况考虑进去。对采样的区间取而不是。这样,在我们进行查表运算的时候就可以避免边界点错误情况的出现。
3.误差分析

利用查找表进行三角函数的运算是一种近似的算法。由于我们是对一个周期之内的三角函数进行的采样,最终的结果必定会存在一种误差。误差的来源源自于两个方面,一个是采样存在的误差,一个是在进行查表运算的时,计算表地址的时候由于需要对数值取整,会引入一定的误差。这些误差的大小直接决定了我们所需要的查找表的大小,下面我们就对信号处理中经常用到的线性调频信号脉冲压缩的性能的影响来看一下该查表算法的精确度。(查找表采样长度16k)

图二:查表数据与标准三角函数数据对比
(上图为标准实部数据,下图为查表所得实部数据)

图三:绝对误差示意图

我们看到,在查找表采样点为16K的情况下,理论上的最大相对误差为: 2 * 2 * 2 / 16384 = 4.8828 *10^(-4)。我们运算得到的最大相对误差约为5.2 * 10 ^ (-4),在精度不是要求十分高的情况下,已经可以完全满足我们的需要。

在经过脉冲压缩之后对比,经过验证可以看出。两者的结果的误差已经十分小,完全达到了可以忽略的地步。

图四:脉冲压缩结果比较(dB)

4.运算量大小比较

集成开发环境VisualDSP3.5++中进行开发时,通过调用系统提供的库函数计算正弦和余弦函数的时候,所耗用的周期个数最少为20个周期,最多为58个周期,可以提供40bit的计算精度。在我们提供的算法中,虽然精度不能够达到这么高,但是可以在35个周期内计算2个复指数信号的函数值,也就是4个三角函数的数值。连续运算,可以达到38个周期,对2个复指数信号的运算。可以看出,我们虽然牺牲了三角函数的精度,但是却得到了很高的运算速度。在很多的计算场合下,我们并不需要得到十分精确的三角函数数值,只需要保证计算得到的函数规律在误差允许的范围内就可以。这时候,本文提供的查表运算可以保证有比较好的实时性。

利用这种查找表的方式进行三角函数的运算,优点在于运算的速度比较快,在精度要求不是很高的情况下,可以达到比较高的运算速度。当然,对于速度上的要求必然也会影响到处理的精度和误差。如果对于三角函数的数值要求有比较高的精度,那么这种查表的方式就显得不适合。这样,我们所允许的误差的大小,也就决定了我们所需要的查找表的大小。

5.结论

笔者在这里只是介绍了一种以查找表方式进行三角函数运算的方法,在笔者所需的实时运算要求下,可以达到所需的要求。实际上该算法还有可以改进和值得优化的地方,比如(1)查找表缩小到区间内,根据函数的周期性,可以把运算统一到的区间内,在采样点数不增加的情况下,而提高精度。(2)TS101种,提供了三个Bank的内部存储空间,每块存储空间的大小分别为2Mbit。如果我们的查找表比较大,占用了很大的内存空间的话,在最终程序修订,并需要通过主控计算机或者EPROM加载的时候,就会增大加载的文件的大小。所以,我们需要在查表的大小和精度、误差、程序占用空间大小方面取一个权衡,来决定查表的大小和计算的精度。

笔者在这里介绍的是一种在本人实际工程经验中所采用的三角函数的计算方法,望不足之处读者能够给与指出与修正。

联系E_mail:batistuta810226@sina.com

绝对值编码器相关文章:绝对值编码器原理


评论


相关推荐

技术专区

关闭
海粉是什么 1012是什么星座 肛门痒痒的是什么原因 alpha什么意思 衢是什么意思
泡黄芪水喝有什么好处 1947属什么生肖 10.21是什么星座 七八年属什么生肖 黑手是什么意思
nuxe是什么牌子 楔形是什么形状图片 这是什么鱼 抗体和抗原有什么区别 生气过度会气出什么病
什么是大专 如如不动什么意思 爱睡觉是什么原因 洁白的什么 黑色搭配什么颜色好看
全身发烫但不发烧是什么原因jingluanji.com 办理身份证需要带什么hcv9jop1ns8r.cn 锦鲤是什么意思inbungee.com 四肢发达是什么生肖hcv9jop4ns9r.cn 芍药花什么时候开花1949doufunao.com
因子是什么hcv8jop3ns6r.cn 中耳炎吃什么消炎药hcv9jop4ns1r.cn 6月6是什么星座hcv9jop3ns2r.cn 脑梗前期有什么症状hcv9jop7ns4r.cn 跨境电子商务是什么yanzhenzixun.com
渣男最怕什么样的女人bysq.com 男性生殖系统感染吃什么药tiangongnft.com 梅花鹿吃什么xjhesheng.com 蔡徐坤粉丝名叫什么hcv9jop6ns2r.cn 翻白眼是什么意思hcv8jop8ns6r.cn
宝宝咳嗽挂什么科hcv8jop4ns7r.cn 万圣节应该送什么礼物hcv8jop9ns5r.cn visa是什么hcv7jop6ns9r.cn 什么样的脸型有福hcv9jop2ns0r.cn 公鸡为什么会啄人helloaicloud.com
百度