📄 hilb.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 + -