⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8ptdct.dsp

📁 载dsp上实现16dct和8dct的程序
💻 DSP
字号:
{  ONE DIMENSIONAL, FAST, DISCRETE COSINE TRANSFORM, 8 POINTS
 
   Implementation:
        as described by Hsieh S. Hou in IEEE Transactions on Acoustics, 
        Speech, and Signal Processing, Vol. ASSP-35, No. 10, October 1987

   Target Processor:
        ADSP-2100 family of DSP processors from Analog Devices, Inc.

   Execution Benchmark:
        158 instruction cycles -- ADSP-2101 -- 7.90 us at CLKIN=20.00MHz

   Memory Storage Requirement:
        163 PM = 156 program memory code, 7 program memory data (coefficients)
        16 DM = 8 data memory scratch pad, 8 data memory (8-pt vector)
        Note: resulting transform coefficients written over original input data
        assumes: unsigned 8-bit input data, signed 16-bit output coefficients

   Author of Code:
        Christoph D. Cavigioli -- DSP Applications Engineer -- (617) 461-3672

   Release History:
        27-March-1989
        Revised: 23-July-1989. 
        Revised for ADSP-2101 by Ron Coughlin 28-july-1993

   Analog Devices, Inc., DSP Division, P.O.Box 9106, Norwood, MA 02062, USA
}
.module/ram/abs=0       fast_8pt_dct;
.var/pm/ram             cosvals[7];         { cosine coefficients }
.var/circ/abs=0x3800    tmp[8];             { temporary scratch memory }
.var                    x[8];               { 8-pt vector to transform }
.global                 tmp;
.external  DIF8_8, DIF4_8, DIF2_8, RLR4_8, RLR8_8, DC_AND_BREV_8;
.init      x: <x.dat>;
.init  cosvals[0]: h#7D8A00, h#471C00, h#E70800, h#959300;
.init  cosvals[4]: h#764100, h#CF0500;
.init  cosvals[6]: h#5A8200;

        jump setup; rti; rti; rti;      { jump here at reset }
        rti; rti; rti; rti;             { irq2 interrupt vector }
        rti; rti; rti; rti;             { sport0 tx interrupt vector }
        rti; rti; rti; rti;             { sport0 rx interrupt vector }
        rti; rti; rti; rti;             { sport1 tx interrupt vector }
        rti; rti; rti; rti;             { sport1 rx interrupt vector }
        rti; rti; rti; rti;             { timer interrupt vector }


setup:  l0=0; l1=0; l2=0; l3=0; l5=0; l6=0; m6=1; se=1;
dct8:   i2=^x;
        i3=^x+7;
        m5=1;
        i6=^cosvals;
        m2=2;
        m3=-2;
        call DIF8_8;
        call DIF4_8;
        call DIF2_8;
        call RLR4_8;
        call RLR8_8;
        i5=^x;
        call DC_AND_BREV_8;
wait2:  idle;
        jump wait2;
.endmod;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -