[基础知识] 造一台软DAC

[复制链接] 查看: 188326|回复: 525

10

主题

0

好友

696

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
1969
帖子
583
精华
0
经验
696 点
金钱
523 ¥
注册时间
2004-10-29
发表于 2010-4-18 19:22 | 显示全部楼层
J-TEST 输出信号类似stereophile上的-6dB的11.025kHz+229Hz LSB跳变的信号,用来测jitter的.
你可能误解我的意思了,模拟PLL锁定的就是S/pdif的信号.也就是说S/pdif既是数据源就是参考时钟源,如果S/pdif足够好,那么PLL输出近端相噪也会变好.不过1212M输出jitter好像也不是特别优秀.有AP2测最好了

5

主题

2

好友

946

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

UID
156799
帖子
945
精华
0
经验
946 点
金钱
935 ¥
注册时间
2009-12-19

社区贡献 乐于助人

发表于 2010-4-18 20:13 | 显示全部楼层
  我只关心FIR的算法.......其他不关心..............

当然还有ASRC,在我看来ASRC并不是坏东西..........
卡西利亚斯 发表于 2010-4-18 17:43


用FPGA做“A”怎样,FPGA可以提供足够的异步FIFO的空间,SRC就交给专用的芯片???

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 22:19 | 显示全部楼层
J-TEST 输出信号类似stereophile上的-6dB的11.025kHz+229Hz LSB跳变的信号,用来测jitter的.
你可能误解我的意思了,模拟PLL锁定的就是S/pdif的信号.也就是说S/pdif既是数据源就是参考时钟源,如果S/pdif足够好,那么PL ...
markamp 发表于 2010-4-18 19:22

你大概指的是恢复环的质量。不过不管输入SPDIF信号质量怎么样,第二级锁相环必须要能清除掉这些抖动。AP2我估计是不可能享用了,除非转行或者交给别人来做。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 22:21 | 显示全部楼层
用FPGA做“A”怎样,FPGA可以提供足够的异步FIFO的空间,SRC就交给专用的芯片???
lter15 发表于 2010-4-18 20:13

我认为用FPGA这种要求同步设计的器件做异步的运算,是下下策
此外还没有证据表明异步采样率转换的性能就有优势

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 22:58 | 显示全部楼层
接上回继续说说D/A
  sDAC的D/A用了两片PCM1794,每片一个声道,并且配置为外部滤波器,也就是说不用PCM1794自己的内插滤波器,这种做法的目的是最大程度的挖掘这个顶级D/A的性能,榨干它每一滴资源。
其实sDAC的设计是PCM1792和1794兼容,因为这两个D/A的管脚排列几乎一样,仅仅在于配置方式不同,1794是电平高低控制状态,1792则是通过写串行的控制字来控制内部状态,因此只要修改一下FPGA的代码就可以使用1792了,两个D/A的性能是一样的。
  1794的特点是两高一低,高信噪比-最高可达132dB!,高输出电流-7.9mA!,低失真--107dB!这些成绩成立的前提是必须在单声道方式下,也就是每片1794一个声道。这种方式下后面运放的数量多,阻容元件配对困难,换句话说就是成本比较高,
7.9mA的输出电流在音频D/A中算是非常大的,因此多数运放被排除掉了,1794的规格书里的DEMO电路用的是NE5534,这是个非常合理的做法,NE5534的驱动能力很强,在较重负载下也就较低失真度,考虑到NE5534是单运放布板会困难一点,我改用NE5532,实际工作中,NE5532的温度的确不低。
  1794在外部滤波器方式下最高能跑多高采样频率?规格书里没有细说,看了半天感觉可以跑到768KHZ的采样频率。但是在进行测试中发现1794在384KHZ采样时有正常的信号输出,但是将采样率提高到768KHZ时就没声音,比较困惑,后来因为还在做功能调试,这个问题暂时搁置。
直到后来,simmconn 发了一个强帖:http://bbs.hifidiy.net/viewthrea ... p;extra=&page=1
讨论中,simmconn建议可以提高MCK频率试试,于是我立刻修改FPGA代码,把MCK提高到24.576MHZ。采样率设置在768KHZ,居然出声了。但是工作电流也提高了10mA。
再到后来,为了兼容96KHZ输入,我把MCK提高到49.152MHZ,采样率跑到1.536MHZ,居然也成功了,同时电流又增大了10mA。换句话说,在48KHZ输入下,sDAC最高可以支持32X的超采样,96KHZ下,最高支持16X。
不知道这是不是论坛上第一个采样率跑到1.536MHZ的PCM1794。。。
附一张图,去年DAC在家测试采样率768KHZ输出384KHZ那奎斯特频率的示波器截图。这个音频数据是FPGA内部产生的。
384K.jpg

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 23:03 | 显示全部楼层
  我只关心FIR的算法.......其他不关心..............

当然还有ASRC,在我看来ASRC并不是坏东西..........
卡西利亚斯 发表于 2010-4-18 17:43

FIR的算法应该是最成熟的东西了吧。

10

主题

0

好友

696

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
1969
帖子
583
精华
0
经验
696 点
金钱
523 ¥
注册时间
2004-10-29
发表于 2010-4-18 23:06 | 显示全部楼层
和第二锁相环没关系,就是DIR9001内部的锁相环,其实模拟锁相环截止频率太低了不是好事,因为输入S/PDIF的近端相噪可以低于内部VCO自由振荡的相噪,当PLL锁定时,就可以减小近端相噪(相当于误差反馈后抵消了VCO近端相噪). 不过在这里肯定是不如再加DDS的近端相噪了,我只是想知道差得有多远.呵呵

5

主题

2

好友

946

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

UID
156799
帖子
945
精华
0
经验
946 点
金钱
935 ¥
注册时间
2009-12-19

社区贡献 乐于助人

发表于 2010-4-18 23:22 | 显示全部楼层
我认为用FPGA这种要求同步设计的器件做异步的运算,是下下策
此外还没有证据表明异步采样率转换的性能就有优势
laurel 发表于 2010-4-18 22:21


其实我是有一个这样的想法:常用音频的采样率是32K,44.1k,48k,96k,192k,那么只要采用两个高精度的本地时钟,通过分频就可以得到MCLK,BCLK,LRCLK,
再让分频得到的时钟自动跟踪输入的时钟,然后采用FPGA的异步FIFO来隔离输入时钟的抖动。当然,这样做的首先要求FIFO足够大;还有就是输入的采样率只能是规定的32K,44.1k,48k,96k,192k,否则锁不住信号。

小弟刚学了一点FPGA,觉得上面的想法实现起来难度不大。就是不知实际情况是怎样?
还望LZ大侠指点

133

主题

0

好友

4912

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
278
帖子
4622
精华
4
经验
4912 点
金钱
2799 ¥
注册时间
2004-4-4

元老级

发表于 2010-4-18 23:25 | 显示全部楼层
学习了,楼主水平很高!呵呵。建议楼主设计一个象英国之宝这种用光驱的CD机电路吧,你设计DAC再好,还要买好的转盘,好转盘也不便宜,和CD差不多了。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 23:32 | 显示全部楼层
和第二锁相环没关系,就是DIR9001内部的锁相环,其实模拟锁相环截止频率太低了不是好事,因为输入S/PDIF的近端相噪可以低于内部VCO自由振荡的相噪,当PLL锁定时,就可以减小近端相噪(相当于误差反馈后抵消了VCO近端相噪). ...
markamp 发表于 2010-4-18 23:06

10HZ以上是抖动,10HZ以下算漂移,如果我做到环路带宽在10HZ以下,那么10HZ以上的可以算成是由本地VCO决定,VCO用一般PLL的LC振荡器是肯定不行了,只有用VCXO或者XO做参考时钟的DDS。
模拟锁相环带宽做不到很低,否则电容量会很夸张。倒不是因为VCO自由振荡的相噪,VCO如果是VCXO,低频相噪也是很小的。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 23:35 | 显示全部楼层
其实我是有一个这样的想法:常用音频的采样率是32K,44.1k,48k,96k,192k,那么只要采用两个高精度的本地时钟,通过分频就可以得到MCLK,BCLK,LRCLK,
再让分频得到的时钟自动跟踪输入的时钟,然后采用FPGA的异 ...
lter15 发表于 2010-4-18 23:22

基本思路没问题,只是本地时钟要跟踪输入时钟的话就是锁相环了。FIFO可以用FPGA做,锁相环既可以用FPGA做DLL也可以用模拟锁相环方式。关键是时钟质量要好

3

主题

2

好友

2223

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
20597
帖子
2892
精华
1
经验
2223 点
金钱
2130 ¥
注册时间
2007-3-21
发表于 2010-4-18 23:43 | 显示全部楼层
建议楼主做一个CD,看看能否有好的效果,造福论坛的朋友。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-18 23:43 | 显示全部楼层
学习了,楼主水平很高!呵呵。建议楼主设计一个象英国之宝这种用光驱的CD机电路吧,你设计DAC再好,还要买好的转盘,好转盘也不便宜,和CD差不多了。
万健 发表于 2010-4-18 23:25

万健兄,我水平有限,如果做CD机,ATA接口我估计就得研究上一阵。
sDAC的设计初衷就是再烂的数字音频信号进去,只要不误码,就能出高质量的模拟信号,所以理论山讲对转盘质量不敏感。

284

主题

0

好友

8239

积分
     

超级版主 当前离线

Rank: 8Rank: 8

UID
135523
帖子
3204
精华
2
经验
8239 点
金钱
2519 ¥
注册时间
2009-9-27
发表于 2010-4-19 00:01 | 显示全部楼层
laurel 兄是哪里的?近的话想来听听

10

主题

0

好友

696

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
1969
帖子
583
精华
0
经验
696 点
金钱
523 ¥
注册时间
2004-10-29
发表于 2010-4-19 00:14 | 显示全部楼层
看来你还是没理解我的意思.其实我想说的是前端转盘足够好的话,增加DDS能提高多少.这样对比我们能看到实际提升的值.
其实环路滤波带宽最主要考虑是锁定信号,当然电容大也是一个问题.

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-19 00:30 | 显示全部楼层
看来你还是没理解我的意思.其实我想说的是前端转盘足够好的话,增加DDS能提高多少.这样对比我们能看到实际提升的值.
其实环路滤波带宽最主要考虑是锁定信号,当然电容大也是一个问题.
markamp 发表于 2010-4-19 00:14

理论上讲,转盘出来的抖动越大,sDAC提高的效果越明显。不过无论用什么烂转盘,我都保证sDAC出来的抖动都差不多。

96

主题

12

好友

3705

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1077
帖子
3315
精华
6
经验
3705 点
金钱
2485 ¥
注册时间
2004-7-24

社区贡献

 楼主| 发表于 2010-4-19 00:30 | 显示全部楼层
laurel 兄是哪里的?近的话想来听听
BG5CJT 发表于 2010-4-19 00:01

我现在在上海

1

主题

0

好友

5

积分

注册会员 当前离线

Rank: 2

UID
83163
帖子
27
精华
0
经验
5 点
金钱
23 ¥
注册时间
2009-2-24
发表于 2010-4-19 01:41 | 显示全部楼层
好文,mark

133

主题

0

好友

4912

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
278
帖子
4622
精华
4
经验
4912 点
金钱
2799 ¥
注册时间
2004-4-4

元老级

发表于 2010-4-19 09:33 | 显示全部楼层
理论上讲,转盘出来的抖动越大,sDAC提高的效果越明显。不过无论用什么烂转盘,我都保证sDAC出来的抖动都差不多。
laurel 发表于 2010-4-19 00:30

这也只是理论上,事实上对于差的转盘出的声音也比不带2次锁相的要好不少,但是转盘的好坏对声音影响还是很明显,本地器材友有高档解码器,带类似功能,最后还是要配高档转盘,才能发挥它的水平,呵呵!楼主的计算机方面的水平非我辈能及,希望能做些套件造福我等菜鸟。建议楼主往这2个方面设计:1,用光驱的CD机。2,用笔记本USB 1394口输出的声卡。USB有采用异步传输的,听说效果不错。谢谢!

0

主题

0

好友

72

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
139441
帖子
81
精华
0
经验
72 点
金钱
72 ¥
注册时间
2009-10-14
发表于 2010-4-19 09:54 | 显示全部楼层
支持!学习学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部