第三部分
数字滤波技术
一、数字滤波原理
数字音频信号经过DAC芯片转换后输出模拟信号。
在取样频率和它的整数倍频率两侧产生等于基带频宽的边带信号,为了抑制这些镜像频率,而对音频频带平坦传输,就要求模拟低通滤波器有陡峭的滤波特性,滤波阶数要达到9~11阶,这种滤波器相位特性很差,影响定位和音扬还原。另外,高阶滤波器元件多,温度特性和稳定性不佳,元器件性能对音质影响较大,在实际中,这种高阶滤波器无论在特性上还是音质上都不尽如人意。
为了解决这个问题,人们在DAC之前引入了数字滤波器,数字滤波器是执行数字滤波算法的硬件电路,它对数字音频数据进行数值演算,输出超取样后的运算结果。CD数字滤波器一般由FIR(有限冲激响应)型滤波构成,FIR型滤波器有线性相位特性,群延迟时间对所有频率来说为定值,价数可以从几十阶至几百阶,通过选择滤波器的阶数和滤波系数,可以很容易地实现理想的滤波特性。
对于两倍超取样的数字滤波器。ai为滤波系数,T/2噗延迟单元,滤波器输入周期的二分之一时间为节拍,在数据输出端产生多一倍的数据量,实现2倍超取样。滤波器中包含有乘法器和加法器单元,乘法器和加法器的位数决定了滤波运算的精度,延迟单元的个数决定了滤波器的阶数。CD用的超取样滤波器都具有低通特性。数字滤波器可以通过方式,实现更高倍数的超取样功能,最终的滤波特性,由各个串联的滤波器共同决定。
数字滤波器有三个方面的优点:第一、音频带上限20kHz附近截止特性取决于数字滤波器,而数字滤波器性能由滤波算法决定,不易受温度变化、无器件老化等因素的影响,性能稳定。第二、可以选用低价模拟滤波器,使音频范围内没有相位失真。第三、后续模拟滤波器结构简化,可降低制造成本,对音质影响也小。所以,数字滤波技术是实现高性能音频解码器的关键技术,配合高精度DAC,就能构成完整的高性能CD重放系统。
使用数字滤波器后DAC输出信号的频谱,可见音频频带和镜像频带之间的高频分量都被抑制,只需使用低阶的模拟滤波器就能取得良好的滤波效果。
二、常见数字滤波器芯片
1、DF1700
(1)功能:
DF1700是BB公司生产的唯一高性能8倍超取样数字滤波器,它接收16比特输入数据,可选择输出16、18、20位输出数据。经过数字滤波,可使输出数据频率为输入数据频率的8倍,再送到DAC作转换,能简化模拟低通滤波器的设计,减小模拟滤波器相位非线性失真,改善音质。
DF1700有两种封装:28脚DIP和40脚SOIC,它是设计来和PCM1700、PCM63配合工作的。
(2)特点:
1)双声道数字滤波器
2)接收16位输入数据
3)可选择输出16、18、20位数据
4)输出数据格式符合PCM1700、PCM63要求
5)通带纹波小于0.00005dB
6)通带外衰减大于110dB
7)单5V电池,功耗小于250mW
8)28脚DIP封装和40脚SOIC封装
(3)引脚排列见表5。
2、PMD100
(1)功能
PMD100 HDCD解码芯片是采用0.6亚微米技术制成的CMOS集成电路,用来作HDCD录音的精密解码工作。在处理非HDCD唱片时,它表现为一个经典的数字滤波器。接口电路经过仔细设计可以和常见的DIR、DAC连接。使用了PMD100以后,不再需要普通的数字滤波器,PMD100
的各方面都经过仔细设计达到最佳性能,并能方便地应用于各种用途。
(2)特点
1)自动HDCD解码
当PMD100在输入数据中检测到HDCD信号后,它自动转换到HDCD解码模式,并以27脚输出一电流信号驱动发光二极管。当非HDCD数据输入时,PMD100自动工作于数字滤波器方式。
2)极好的滤波性能
在工作于数字滤波器方式时,PMD100的滤波特性经仔细设计能够保证声音精确再现。通带内纹波小于0.0001dB,通带外衰减大于120
dB。
3)两种操作方式
硬件逻辑
在这种模式,PMD100不需要额外的微处理器。
可编程模式
可编程模式下,通过外部的微处理器,可以设定许多高级功能。
4)DAC优化操作模式
为配合各种不同的DAC类型,PMD100提供8种抖动方式和“宁静转换”定时功能。
5)稳定的时钟输出
PMD100提供稳定的时钟输出,即使没有输入数据和主时钟时也如此。
6)运算精度大于24比特
7)可接受24比特输入数据
8)32kHz至55kHz输入取样频率
9)数字音量衰减范围96dB,步长0.188dB
10)支持软静音和硬静音
11)16、18、20和24比特输出数据精度
12)8倍、4倍、2倍超取样可选
13)数字域去加重
14)256fs或384fs系统时钟
(3)引脚描述见表6
(4)常见数字滤波器芯片性能比较见表7
表5
DF1700的引脚排列
引脚号 |
名称
|
输入
输出 |
描述
|
SOIC |
DIP |
1 |
- |
NC |
- |
|
2 |
- |
NC |
- |
|
3 |
- |
NC |
- |
|
4 |
9 |
CK0 |
O |
时钟输出 |
5 |
- |
NC |
- |
|
6 |
- |
NC |
- |
高:自由运行方式 |
7 |
10 |
/SYN |
I |
低:强制同步方式 |
8 |
11 |
NC |
- |
|
9 |
12 |
NC |
- |
|
10 |
13 |
NC |
- |
|
11 |
14 |
/RST |
I |
高:正常运行,低:系统复位 |
12 |
15 |
/COB |
I |
输出数据格式选择 |
|
|
|
|
高:输出2的补码 |
|
|
|
|
低:输出原码 |
13 |
16 |
/OW20 |
I |
低:输出数据20位 |
14 |
17 |
OW18 |
I |
低:输出数据为18位 |
15 |
- |
NC |
- |
|
16 |
18 |
NC |
- |
|
17 |
19 |
NC |
- |
|
18 |
20 |
DG |
O |
抗尖峰控制时钟 |
19 |
- |
NC |
- |
|
20 |
21 |
Vss2 |
- |
地2 |
21 |
22 |
Vdd |
- |
+5V |
22 |
- |
NC |
- |
|
23 |
23 |
DOR |
O |
右声道数据输出 |
24 |
- |
NC |
- |
|
25 |
24 |
DOL |
0 |
左声道数据输出 |
26 |
- |
NC |
- |
|
27 |
25 |
WCKO |
O |
字时钟输出 |
28 |
26 |
BCKO |
O |
位时钟输出 |
29 |
27 |
FSC0 |
O |
fs内部时钟 |
30 |
28 |
LRC1 |
I |
左右声道时钟输入 |
31 |
- |
NC |
- |
|
32 |
1 |
DIN |
I |
串行数据输入 |
33 |
2 |
BCK1 |
I |
位时钟输入 |
34 |
3 |
CKSL |
I |
时钟选择 |
35 |
- |
NC |
- |
|
36 |
5 |
NC |
- |
|
37 |
4 |
CKDV |
I |
时钟选择 |
38 |
6 |
XT1 |
I |
晶振输入端,外部时钟输入端 |
39 |
7 |
XT0 |
O |
晶振输出端,外接时钟时是空 |
40 |
8 |
Vss1 |
- |
地1 |
表6
PMD100的引脚排列
1 |
DIN |
I |
串行数据输入 |
2 |
BCKI |
I |
位时钟输入 |
3 |
XTIM |
I |
选择系统时钟频率,高:384fs,低:256fs |
4 |
DITH |
I |
抖动选择,高:允许抖动,低:禁止抖动; |
5 |
GAIN |
O |
模拟输出级增益控制 |
6 |
XTIM |
I |
系统时钟输入 |
7 |
VDD1 |
|
+5V电源 |
8 |
VSS1 |
|
地 |
9 |
PROG |
I |
编程模式 |
10 |
OSIZ0 |
I |
输出比特数选择 |
11 |
OSIZ1 |
I |
输出比特数选择 |
12 |
/COB |
I |
低:原码
高:2的补码 |
13 |
JUST |
I |
低:输入数据左对齐
高:右对齐 |
14 |
BCPL |
I |
低:BCKI上升沿锁存数据 |
|
|
|
高:BCKI下降沿锁存数据 |
15 |
SMUTE |
I |
软静音 |
16 |
DEEMPH |
I |
去加重 |
17 |
HMUTE |
I |
硬静音 |
18 |
FSEL |
I |
去加重频率,低:44.1kHz,高:48kHz |
19 |
SCAL |
I |
增益加控 |
20 |
DG |
O |
抗尖峰信号 |
21 |
VSS2 |
|
地 |
22 |
VDD2 |
|
+5V |
23 |
D0R |
O |
右声道输出 |
24 |
D0L |
O |
左声道输出 |
25 |
WCK0 |
O |
字时钟输出 |
26 |
BCK0 |
O |
位时钟输入 |
27 |
HDCD |
O |
HDCD唱片指示 |
28 |
CRCI |
I |
左右声道指示时钟 |
表7
|
PMD100 |
SM5842 |
SM5803 |
DF1700 |
HDCD解码 |
有 |
无 |
无 |
无 |
操作方法
|
可编程/
硬件逻辑 |
硬件逻辑
|
可编程
|
硬件逻辑
|
数字音量衰减 |
0~96dB |
无 |
0~96dB |
无 |
|
0.188dB步长 |
|
0.188dB步长 |
|
通带外衰减 |
〉120dB |
〉117dB |
〉110dB |
〉110dB |
抖动方式 |
8种 |
1种 |
噪声整形 |
无 |
超取样率 |
8倍,4倍,2倍 |
8倍 |
8倍,4倍 |
8倍 |
输入字长(位) |
最大到24 |
16,18,20,24 |
16,18 |
16 |
输出字长(位) |
16,18,20,24 |
18,20,22,24 |
16,18,20 |
16,18,20 |
系统时钟(Fs) |
256,384 |
256,384 |
192,256,384 |
192,256,384 |
输入取样频率kHz |
35~55 |
32,44.1,48 |
32,44.1,48 |
4~50 |
静音 |
硬,软 |
软,左右独立 |
软,左右独立 |
无 |
数字去加重 |
有 |
有 |
有 |
无 |
无抖动时钟 |
有 |
有 |
有 |
无 |
|