Edit online

SINC 滤波器

3 Mar 2025
Read time: 4 minute(s)
SDFM 内置下列两套 SINC 滤波器,即 PSINC 和 SSINC:
  • PSINC,Primary SINC 滤波器,用于精确数据计算
  • SSINC,Secondary SINC 滤波器,用于数据比较

SINC 滤波器实现的功能框图如下:



  • N:SINC 滤波器阶数,可通过寄存器配置为 1/2/3
  • OSR:过采样率,可通过寄存器配置
  • PSINC:配置 N = 1/2/3,OSR = 1/2/3/…/256
  • SSINC:配置 N = 1/2/3,OSR = 1/2/3/…/32

滤波延迟

SINC 滤波器的延迟时间的计算公式如下:

T_latency = (N * OSR) / R_mod

  • N:SINC 滤波器阶数,可通过寄存器配置为 1/2/3
  • OSR:过采样率,可通过寄存器配置
  • R_mod:串行输入调制数据的速率

假设 SINC 滤波器的阶数 N = 3,过采样率 OSR = 128,输入信号的速率为 20 MHz,则 T_lantency = 19.2 us,表示 SINC 滤波器的输出延迟为 19.2 us。

PSINC 输出

PSINC 输入输出具有以下特点:
  • 低电平输入代表 -1
  • 高电平输入代表 +1
  • 采用互补的二进制格式
下表展示了 SINC1/ 2/ 3 在不同 OSR 模式下滤波器计算过程中的数据范围,其中:
  • 输出最大的是 SINC3 滤波器和 OSR = 256 的情况下,需要 25 bits 的有符号整型数,数据范围是 -224 ~ +224

OSR

SINC1

SINC2

SINC3

x

-x ~ x

-x2 ~ x2

-x3 ~ x3

4

-4 ~ 4

-16 ~ 16

-64 ~ 64

8

-8 ~ 8

-64 ~ 64

-512 ~ 512

16

-16 ~ 16

-256 ~ 256

-4096 ~ 4096

32

-32 ~ 32

-1024 ~ 1024

-32768 ~ 32768

64

-64 ~ 64

-4096 ~ 4096

-262144 ~ 262144

128

-128 ~ 128

-16384 ~ 16384

-2097152 ~ 2097152

256

-256 ~ 256

-65536 ~ 65536

-16777216 ~ 16777216

PSINC 的输出支持配置以下输出场景:
  • 32-bit 输出:无需对过程结果数据进行任何操作,因为 32-bit 位宽完全满足过程数据最大 25-bit 的需求。
  • 16-bit 输出:由于过程数据输出的范围可能超过 16-bit 可表示的范围,即超过 -215~(215-1),所以需要对过程数据进行右移,从而保证输出结果有效。推荐的数据右移配置如下表所示:

    OSR

    SINC1

    SINC2

    SINC3

    1~31

    0

    0

    0

    32~40

    0

    0

    1

    41~50

    0

    0

    2

    51~63

    0

    0

    3

    64~80

    0

    0

    4

    81~101

    0

    0

    5

    102~127

    0

    0

    6

    128~161

    0

    0

    7

    162~181

    0

    0

    8

    182~203

    0

    1

    8

    204~255

    0

    1

    9

    256

    0

    2

    9

PSINC 同步

SDFM 模块的 PSINC 滤波器支持同步信号。当同步信号生效,SINC 滤波器重新开始进行计算。同步机制,可以保证两个或多个 SDFM 的 PSINC 同步开始计算,达到数据处理的时刻对齐。

基于 SINC 的工作原理,在 SINC 使能开始工作的时刻以及同步信号生效的时刻,SINC 输出存在若干个不正确的数据点。具体如下:

  • SINC1(N=1)滤波器,任何时刻都无错误数据输出。

  • SINC2(N=2)滤波器,输出的起始存在第一个数据点错误。

  • SINC3(N=3)滤波器,输出的起始存在前两个数据点错误。

由于 SDFM 输出数据时,会自动丢弃起始的错误数据点,因此在上述 N=2 和 N=3 的情况下,输出延迟会相应的增加所丢弃的数据点的转换时间。

SSINC 输出

SSINC 输出具有以下特点:
  • 低输入代表 0
  • 高输入代表 1
  • 采用 16-bit 无符号数据表示

下表展示了 SINC1/ 2/ 3 在不同 OSR 模式下滤波器计算过程中的数据范围:

OSR

SINC1

SINC2

SINC3

x

0 ~ x

0 ~ x^2

0 ~ x^3

4

0 ~ 4

0 ~ 16

0 ~ 64

8

0 ~ 8

0 ~ 64

0 ~ 512

16

0 ~ 16

0 ~ 256

0 ~ 4096

32

0 ~ 32

0 ~ 1024

0 ~ 32768

SSINC 高低阈值比较

SSINC 的输出可以进行高低阈值的比较,高低阈值可以通过寄存器设置。如下图所所示:
  • 对于高位比较器:
    • 当 SSINC 滤波器的输出结果大于高阈值 HLT 时,高位比较器的输出信号 COMP_H 则为高电平。
    • 当 SSINC 滤波器的输出结果低于高阈值 HLT 时,高位比较器的输出信号 COMP_H 则为低电平。
  • 对于低位比较器:
    • 当 SSINC 滤波器的输出结果小于低阈值 LLT 时,低位比较器的输出信号 COMP_L 则为高电平。
    • 当 SSINC 滤波器的输出结果高于低阈值 LLT 时,低位比较器的输出信号 COMP_L 则为低电平。
  • 输出信号 COMP_H 和 COMP_L 可以作为触发 EPWM 保护的信号或者产生中断的信号。


如需监控电压,可分别设置高低阈值 HLT 和 LLT,对输入电压进行过压以及欠压检测。