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

📄 hilb.dsp

📁 Hilbert transform on ADSP chip (one from DSP steps)
💻 DSP
字号:
.MODULE    hilbert_transformator;

.const      Hilb_taps=51; {Length of Hilbert FIR filter}
.const      Hilb_delay=(Hilb_taps-1)/2;

.VAR/DM/RAM/CIRC/SEG=DM_OVLY        hdelay[Hilb_delay]; {[15]} {Delay line for phase matching}
.VAR/DM/RAM/CIRC/SEG=DM_OVLY        hil_dat[Hilb_taps]; {filter data values}
.VAR/PM/RAM/SEG=PM_FIXED            hilbert_coeff[Hilb_delay+1]; {[16];} {Hilbert filter coefficients}
.INIT                   hilbert_coeff: <hilb8.dat>;
    					{Hilbert filter coefficients}
{************************************************************************
* subroutine hilbert_init
**************************************************************************}
{ Initialize Hilbert Filter + Delay Line
  INPUTS:  m1=1
  OUTPUTS: i2=start of the Hilbert Delay line
           i3=start of the Hilbert Data buffer
  MODIFIED:l2,l3
}
.ENTRY hilbert_ini;
hilbert_ini:
        i2=^hdelay;   l2=%hdelay;
        cntr=%hdelay;  {Init Hilbert delay buffer}
	    do zero_hil_del until ce;
zero_hil_del:  dm(i2,m1)=0;

        i3=^hil_dat;  l3=%hil_dat;
        cntr=%hil_dat;  {Init Hilbert data buffer}
	    do zero_hil_dat until ce;
zero_hil_dat:  dm(i3,m1)=0;
    rts;


{************************************************************************
* subroutine hilbert_transform
**************************************************************************}
{ 51 Tap Fir Hilbert Filter + Delay Line
  INPUTS:  ax0=Newest Input Value
           i2=Oldest value in [hdelay]  delay line
           i3=Oldest value in [hil_dat] hilbert data line
           m0=0  m1=1  m2=-1  m5=1  l4=0
  OUTPUTS: ax1=Delayed output Xr(t)
           ay1=Hilbert output Xi(t) 

⌨️ 快捷键说明

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