网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> 综合代码 >> 文章正文
  DSP实现的语音U律(ulaw)压缩-c语言编写并调试通过         ★★★ 【字体:
DSP实现的语音U律(ulaw)压缩-c语言编写并调试通过
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-22    

 

; INT2MU.ASM
;
; Integer originally loaded into A Accumulator
; (Q13 number is assumed to be sign-extended to 16 bits)
;
; mucode = musign + muchord + mustep
;
; muchord = (19h - T|EXP)<<4
; = 190h - (T|EXP)*16
; = 180h - (T|EXP)*16 + 10h
;
; musign = (AH * (-1)) <<7
; = (AH * FFFFh) * 128 = AH * (FFFFh * 128)
; = AH * (FFFFh << 7) = AH * FF80h
;
; mustep = (((|int| + 33) << (T|EXP)) << -26) - 10h
;
; Inversion of 8-bit mu code is equivalent to:
;
; mucode' = FF - mucode = FF - musign - muchord - mustep
;
; mucode' = FF-180h-AH*FF80h+(T|EXP)*16-((|int|+33)<<(T|EXP))>>26
;
; Final output is stored in Low accumulator B(7:0)
**********************************************************************
*************this is ulaw compressing*********************************
**********************************************************************
               .mmregs
               .global _main
      .data
bias1          .word 0FFh-180h
bias2          .word 0FF80h
bias3          .word 21h
bias4          .word 16
table          .word 0,13,25,36,44,48,49,47,40,31,19,6
               .word -6,-19,-31,-40,-47,-49,-48,-44,-36,-25,-13,0
               ;test values is sine wave lengh=24 start address=0x0a04h at data address
          .text
_main:          STM 3000h,AR3
                STM  17h,AR4
    STM #table, AR0
    LD #bias1, DP
cbeg            LD *AR0+, A        ;LOAD INTEGER FOR CONVERSION
    LD bias1, B        ;LOAD (FFh-180h)
    MASA bias2, B      ;Acc B = (FFh-180h-AH*FF80h)
    ABS A              ;A = |int|
    ADD bias3, A       ;A = |int| + 33 (33 = 21H)
    EXP A              ;# OF LEADING ZEROS -> (T|EXP)
    MAC bias4, B       ;ACCB += (T|EXP)*16
    NORM A             ;A<<(T|EXP)
    SFTA A,-16         ;(A<<(T|EXP))>>16
    SUB A,-10, B       ;mucode' = B - (A<<(T|EXP))>>26
    STL B, *AR3
    ANDM 0X00FF,*AR3+
    BANZ cbeg ,*AR4-    ;DO IT AGAIN!!
    
******************************************************************
*********this is ulaw companding**********************************
******************************************************************
; MU2INT.ASM
;
;IMPLEMENT EQUATION
;
; mucode = musign : muchord : mustep
;            X        XXX      XXXX
;
; INTNUM = [ ((2 * mustep + 33) << muchord) - 33 ] * SGN(musign)
;
; NOTE: since mucode is inverted for xmission, received is
; mucode' = musign' : muchord' : mustep'
;
; Inversion of 8-bit mucode, extended to 15 bits is equivalent to
;
; mucode = 7FFFh - mucode'
;
; The 15 bit extension is used for easy musign removal
;
;The final output is stored in high accumulator B(31:16)

  .data
BIAS    .word 21h
MASK    .word 7FFFh,1Fh
TREG    .set 14
        .text
        STM 2000h,AR5
        STM  17h,AR6
        STM #3000h, AR4
  STM #MASK, AR2
  STM #TREG, AR3
  LD #-12, ASM
  LD #BIAS, DP
loop:

  SUB *AR2+,*AR4, A            ;7FFFh - mucode' -> AH
  AND A,8                      ;REMOVE POLARITY BIT
                               ;(A<<8 AND A)=(7F AND A(16-23))<<24
  ST A,*AR3                     ;STORE CHORD TO T: (A<<ASM-16)-> T and
  || LD *AR2-,B                   ;LOAD MASK FOR STEP ISOLATION B=1F<<16
  AND A,-7,B                     ;ISOLATE STEP BITS (17-20): BH = 2*mustep
  ADD BIAS,16,B                  ;BH = 2*mustep + 33
  BIT *AR4+,8                   ;COPY SIGN OF mcode'->TC of ST0
  NORM B                      ;BH = (2*mustep+33)<<(muchord)
  SUB BIAS,16,B                ;BH = (2*mustep+33)<< muchord) - 33
  XC 1,NTC                     ;mucode NEGATIVE? (BIT8 == 0; TC ==0)
  NEG B                        ;IF SO NEGATE INTEGER: BH *= -1
  STH  B,*AR5+                 ;DO IT AGAIN!
  BANZ loop, *AR6-                       
here:   B here
        .end
**************************************************************************
*****input data at address 0a04h (data space)*****************************
*****encoder result at address 3000h(ar3 data space)**********************
*****decoder result at address 2000h(ar5 data space)**********************
*****data length 24*******************************************************
**************************************************************************                 
    

 

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    DSP中的键盘控制程序的算法
    DSP中的综合交通灯演示实例的…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号