论坛风格切换切换到宽版
  • 18220阅读
  • 212回复

方波的采样定理和DDS的问题 [复制链接]

上一主题 下一主题
离线bd1es
发帖
2096
只看该作者 180楼 发表于: 2008-08-19
是的,我也做了个“9管笙”,也许能看得更清楚些。这是用9个等间距正弦信号源产生的频带信号,他们的带外混叠符合采样定理。因为出现混叠,所以我们看到3个“笙”。

这次顺便把横坐标修正了,可以清晰看到0-0.5,0.5-1,1-1.5共3个频带的混叠表现。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线一异
发帖
868
只看该作者 181楼 发表于: 2008-08-19
这种重复采样值的阶梯状波形会导致出现多余的频谱看来已经成了定论,至于这些频谱是否是谐波失真其实并不重要,重要的是这种现象会带来多大的影响——pcm系统永远不可能是精确的,它只是提供一个足够好的近似。

要进一步的讨论这个问题,我们应当讨论一个实际的dds。
我了简便起见,我们可以讨论一个很低分辨率的dac所构成的dds,比如4bit,或者6bit。而波表长度必须大于等于4*2^n,比如,对于6bitdac,波表长度应当不小于256项。只要满足这个条件,那么波标中将会出现所有可能的取值;否则,即将会发现有一些数值是波表里面没有的,或者说波表长度不够。
然后,我们让这个dds输出一个采样点数目为波表长度的若干倍的信号,在对这个信号进行频谱分析。将频谱分析的结果中所有噪声频谱的平方进行积分,得到总失真+噪声的功率,并计算实际的信噪比。
如果我们得到的信噪比低于dac的理论信噪比(对6bit系统信噪比36db),那么可以认为阶梯波现象造成了dds输出信噪比劣化;否则,我们可以认为阶梯波现象对dds输出信号实际上没有影响。

最后,前面4*2^n只是保证了所有可能的dac输出值在波表里面都存在,但是否能得到最佳效果我并不清楚。或许8*2^n、16*2^n甚至在大一些的波表长度才是最佳的选择。总之,我认为波表长度并不只取决于相位累加器的字长,如果相位累加器字长较大,我们应当根据dac的字长来考虑波表的长度。
离线小比尔/5
发帖
2582
只看该作者 182楼 发表于: 2008-08-19
  本来采样就会扩展频带,实际上采样过程就是pam调制。
  模拟系统也不总是精确的啊。模拟放大电路的s/n要做到144db,这个难不?呵呵~
  要的就是足够性能的,就可以了。
  当然,我做的那个minidds的性能确实让我不太能接受,毕竟和音频打的交道比较多,平时s/n至少在60db以上。
  关于信噪比,实际上,d/a的非线性度才是造成谐波失真的根本原因。

暑假做开关电源时测得的数据:
dac0832单电源应用输出特性(vcc vs vout)在d=0ffh时(“filled”色彩填充处即为非线性误差):
5.5v ~ 2.40v
6.0v ~ 2.70v
6.5v ~ 3.05v
7.0v ~ 3.37v
7.5v ~ 3.69v
8.0v ~ 3.99v
8.5v ~ 4.27v
9.0v ~ 4.57v
9.5v ~ 4.86v
10.0v~ 5.17v
10.5v~ 5.49v
11.0v~ 5.80v
11.5v~ 6.11v
12.0v~ 6.39v
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线一异
发帖
868
只看该作者 183楼 发表于: 2008-08-19
[quote=小比尔/5]  本来采样就会扩展频带,实际上采样过程就是pam调制。
  模拟系统也不总是精确的啊。模拟放大电路的s/n要做到144db,这个难不?呵呵~
  要的就是足够性能的,就可以了。
  当然,我做的那个minidds的性能确实让我不太能接受,毕竟和音频打的交道比较多,平时s/n至少在60db以上。
  关于信噪比,实际上,d/a的非线性度才是造成谐波失真的根本原因。

暑假做开关电源时测得的数据:
dac0832单电源应用输出特性(vcc vs vout)在d=0ffh时(“filled”色彩填充处即为非线性误差):
5.5v ~ 2.40v
6.0v ~ 2.70v
6.5v ~ 3.05v
7.0v ~ 3.37v
7.5v ~ 3.69v
8.0v ~ 3.99v
8.5v ~ 4.27v
9.0v ~ 4.57v
9.5v ~ 4.86v
10.0v~ 5.17v
10.5v~ 5.49v
11.0v~ 5.80v
11.5v~ 6.11v
12.0v~ 6.39v[/quote]

你用8bit dac,理论上信噪比也只能到48db。要达到你的要求10bit勉强,12bit才够用。
离线alchemier
发帖
69
只看该作者 184楼 发表于: 2008-08-19
我也终于弄明白问题在哪了,其实我们争论的不是问题本身,而是看问题的视角不同。
对于ham来说,主要处理的是调频调幅信号,对于调频来说,使用频率承载信息,所以奈奎斯特采样定理提供了一个用最简单的办法获得所需信息的途径,在接近于奈奎斯特采样频率的情况下,反而能获得纯净的基波,至于波形的形状,并没有多大的影响,这个从我贴的奈奎斯特采样频谱图上可以看出,从调幅的角度来说,无论是语音还是编码,对波形的要求也不高,这两种情况用一个带通滤波器就可以解决大部分问题。因此阶梯波的谐波问题就基本不是什么问题(带内带外的概念)。
从另一方面来说,在其他的应用领域,比如说hifi高保真领域,发烧友们不惜牺牲效率用甲类功放,就是为了获得高度线性和低的谐波失真,在他们眼里,这种阶梯波的谐波是不可忍受的,必须平滑到极致才行。因而这谐波就是一个大问题。
dds的输出是不是只应用于高频领域呢,显然有更广的用途,我记得dds除了在雷达领域应用广泛外,在民用领域的最成功的应用恐怕就是在创新的声卡上了,还记得那个著名的音频dsp--emu10k1和所配的软波表吗,那就是一个典型的dds,在电子合成器领域,是需要谐波越多越好的,因此要合成各种复音。这又是个相反的需求。
实际上dds可以看作采样的逆过程,对于音频等应用来说,dds输出是不需要逆过程的,因而用不上采样定理,而对于接收机来说,最终的合成波形是需要采样还原为信号的,当然离不开采样定理。
所以,我前面提出的问题是想在一个广义的领域里探讨这个问题,而对于这里的ham来说,这个问题根本不是问题,因而觉得我在钻牛角尖了。
但是我所描述的事实是没有问题的,这点我可以确定,呵呵。
另外,在前面的争论中可能有时言语过激,冒犯了一些同学,在此致歉,希望各位看在我费了半天劲,又是写dds,又是写fft的辛苦上,多多包涵。
离线alchemier
发帖
69
只看该作者 185楼 发表于: 2008-08-19
说了半天倒忘了我当初对dds感兴趣的原因了,我当初是想用dds做一个宽频带软件接收机的本振发生器,与高放信号混频后,再用较为低速的ad来转化中频,这样就要求dds能输出高质量宽频段的正弦波信号,因而想探讨一下这个谐波的问题,因为在频率变化范围很宽的情况下,滤波是很困难的,所以想探讨怎样才能获得相对纯净的波形。没想到最后搞到fft上去了,就好像看过一部喜剧,好像叫黑玫瑰对白玫瑰,那位女主角本来是想擦门把手上的指纹的,后来就擦起地板来了,最后在楼下擦车时忽然抬起头来:“我是去擦指纹的,怎么擦起汽车来了?”,呵呵
离线小比尔/5
发帖
2582
只看该作者 186楼 发表于: 2008-08-19
真抱歉!原谅我,目前我正被学院派收编,脑子难免会被书堆压着。
我希望能够改进dds的性能,也很希望把理论上的问题整理清楚,因为这种问题已经不是靠瞎搞就能搞出来了。但从现在的情况来看,用单片机做dds要达到我希望的性能着实比较困难,确实与极致也有较大的差距。

我做dds是为了两件事:第1,试图解决ba6bf提出的16-26khz,步进1hz的信号发生器问题;第2,希望以后用pll+dds做小步进本振,用在40m接收机上。我觉得通过这些讨论,上课学的东西能再巩固一些,不会模模糊糊了。本来,我们都一直觉得这些理论是看不见摸不到的东西。



我玩过hifi,当然目前还一事无成。不过有点觉得,现在的hifi在有些问题上似乎不太理性。不过既然人家爱玩,而且以此为乐,那也是好事,说不定能玩出什么花样来呢,就像各位ham,哈哈。

我也是ham哦,不过目前经济上的问题,暂时退休一下~
离线bd1es
发帖
2096
只看该作者 187楼 发表于: 2008-08-19
,冒犯同学的话过奖了,要冒犯也是相互的,大家就兜着算了。讨论问题免不了打嘴仗,我们只能做到尽量回避,但无论如何这都是善意的,无须计较。同样,如我有言辞过激之处也请大家批评。

可能您仍坚持认为带外混叠与谐波无异,那也没关系,我只是建议您不要这么思考问题而已。dds的用在高频和低频输出并无区别,计算方法一样。一个很好的例子是nwt-500,主频1.2g,使用很高阶的输出滤波器并截止于500mhz。这样在0-500mhz之内就没有谐波(见下一段)。

可是在nwt-500的输出端能测到一点儿谐波失真,那不是dds产生的,而是输出端的pa产生的,不可避免。所幸这点儿失真不影响什么,它的谐波水平比我的信号源还好,比mfj269就更是强多了。
离线小比尔/5
发帖
2582
只看该作者 188楼 发表于: 2008-08-19
我觉得那些“谐波失真”也有可能是dds的精度差引起的,前面已经验证过了啊,如果d/a和表格精度差,那么杂散就大嘛~那些烂谱线才是我们要消灭的对象……
离线bd1es
发帖
2096
只看该作者 189楼 发表于: 2008-08-19
[quote=小比尔/5]我觉得那些“谐波失真”也有可能是dds的精度差引起的,前面已经验证过了啊,如果d/a和表格精度差,那么杂散就大嘛~那些烂谱线才是我们要消灭的对象……[/quote]

是,如果消灭不了那些烂谱线就想办法躲避,领袖曾教导我们打不过就跑... ,好像人家原话不是这么说的。
离线小比尔/5
发帖
2582
只看该作者 190楼 发表于: 2008-08-19
'
是,如果消灭不了那些烂谱线就想办法躲避,领袖曾教导我们打不过就跑... [表情] [表情] ,好像人家原话不是这么说的。
'
问题是花钱啊!
12bits的d/a多贵啊,辛亏买了片闲置的7元,但还要考虑人家mcu愿不愿意,8位的片子,空间有限,速度有限,还要顾及到显示控制部分,唉……要是msp430就好了……
有搞一片ad9852的欲望了。
离线bd1es
发帖
2096
只看该作者 191楼 发表于: 2008-08-19
搞成品吧,我是基本打消了自制的念头,这过程中屡受打击.当然软dds原理随便用用还是很好的,比如做cw的侧音啥的,既简单又灵活,:)。
离线一异
发帖
868
只看该作者 192楼 发表于: 2008-08-20
我不同意dds是采样的逆过程的说法。
事实上,dds是对已知波形(正弦波)省略了pcm信号的采样过程。
或者说用数学计算的方法来得到已知波形的采样值,用数学计算代替了采样过程。
或者,我们也可以将这个过程称为虚拟采样。

对于声卡中的波表方式合成音频信号,除了信号来源于波表之外,合成的过程和多轨录音然后合成没有什么区别。

“在电子合成器领域,是需要谐波越多越好的”这种说法更没有道理。实际上,电子合成器希望输出谐波成分受到严格的控制,既不能多也不能少。
离线小比尔/5
发帖
2582
只看该作者 193楼 发表于: 2008-08-20
现在的普通合成器一般波表都是真实乐器的采样录音,像soundfont、gus eawpatch什么的,已经不是以前的了,以前是fm的,就像玩具电子琴一样。现在只有高档合成器、破电子琴和旧式设备用fm了。
离线bd1es
发帖
2096
只看该作者 194楼 发表于: 2008-08-20
dds的确不是采样的逆过程,它是对已知采样的一种特定取舍。这个过程破坏了原信号的连续性,产生了附加调制,所以才有了那些“烂谱线”。这大概就是常说的相位抖动,其实叫抖动也不大合适,它不是随机的,是有规律的,我们可以随时复现它。就这么叫吧,随波逐流的好。

合成器与新型函数源同出一辙,是对特定波表的一种查找和复现。当然为了在时域塑造特定的几何图形,这图形的周期就可能远大于取样周期了,这是采样带宽受限的结果。以函数源为例,正弦和方波输出可达到20mhz,而斜波和三角波也许顶多200khz。可能alchemier是想说这个意思,但这仍符合采样定理的,就是考虑带内而不是带外。

采样定理也可以变相应用,以dds为例,如确实需要输出高于奈奎斯特频率的信号,我们就可以用带通滤波器选出某一个混叠段加以利用。当然这时候信号的能量下降,信噪比会变差,波段覆盖也变小了,除非迫不得已就别这样玩。估摸厂家也不保这样玩法的后果,:)
离线alchemier
发帖
69
只看该作者 195楼 发表于: 2008-08-20
'
[表情] [表情] ,冒犯同学的话过奖了,要冒犯也是相互的,大家就兜着算了。讨论问题免不了打嘴仗,我们只能做到尽量回避,但无论如何这都是善意的,无须计较。同样,如我有言辞过激之处也请大家批评。
可能您仍坚持认为带外混叠与谐波无异,那也没关系,我只是建议您不要这么思考问题而已。dds的用在高频和低频输出并无区别,计算方法一样。一个很好的例子是nwt-500,主频1.2g,使用很高阶的输出滤波器并截止于500mhz。这样在0-500mhz之内就没有谐波(见下一段)。
可是在nwt-500的输出端能测到一点儿谐波失真,那不是dds产生的,而是输出端的pa产生的,不可避免。所幸这点儿失真不影响什么,它的谐波水平比我的信号源还好,比mfj269就更是强多了。 [表情] [表情]
'

首先声明我是非电专业的,所以对于你说的带外混叠不太明白,在我的理解里除了基频之外的频率尖峰都叫谐波,这个概念或许在专业范围里是不正确的,希望指正。
离线alchemier
发帖
69
只看该作者 196楼 发表于: 2008-08-20
[quote=一异]我不同意dds是采样的逆过程的说法。
事实上,dds是对已知波形(正弦波)省略了pcm信号的采样过程。
或者说用数学计算的方法来得到已知波形的采样值,用数学计算代替了采样过程。
或者,我们也可以将这个过程称为虚拟采样。

对于声卡中的波表方式合成音频信号,除了信号来源于波表之外,合成的过程和多轨录音然后合成没有什么区别。

“在电子合成器领域,是需要谐波越多越好的”这种说法更没有道理。实际上,电子合成器希望输出谐波成分受到严格的控制,既不能多也不能少。[/quote]

的确我的说法可能不严格,上面也说了原因。
我的本意是想说dds是把样表里的样点输出为波形,而采样是把波形转化为样点。
至于电子合成器的谐波,我是想说原来单一的正弦波,令人听起来感觉单调,而自然的音响是有很多谐波成分的,因而听起来感觉很丰富。比如同样的音调,小提琴和钢琴听起来就完全不一样,同样是丰富的谐波成分起作用,至于我说的谐波专业术语怎么说,我也不知道,当然谐波成分太多了就是噪音了,我肯定也不是那个意思。
离线alchemier
发帖
69
只看该作者 197楼 发表于: 2008-08-20
还有不知为什么看你们的帖子总感觉很费劲,明明每个字都看得懂,可连起来就看不懂了,我觉得可能是专业术语太多了,ham这个群体本来就小,专业人员更少,如果在技术问题的讨论中能用通俗易懂的方式来解释一下观点,以及配图说明,或许能吸引更多的人来讨论。
像这个帖子参加讨论的就是这几个人,争了好长时间各自的观点也没有搞明白,其他人就更难评价了。
当然可能首先是我在这里乱用概念,造成了混乱,这点我也在努力,争取能搞清楚你们说的那些名词。同时也希望你们能照顾一下我们这些外行,稍微花点时间用通俗的词语做些说明,呵呵
离线小比尔/5
发帖
2582
只看该作者 198楼 发表于: 2008-08-20
  被学校关久,脑子死掉了,要解释起来确实还有点难度……
  我想了一个例子:比如说照相,有个轮子在转,它转一圈的频率必须比曝光的频率慢(假设一定可以拍清楚轮子的细节),否则,比如说,闪光的时候轮子也恰好转了一圈,轮子是不是就不动了?如果转速再快些,轮子是不是看起来就反过来转了?这个就是因为不遵守采样定理产生的假象,或者是假信号。
  所以啊,原始信号的频率必须有个约定,采出来的结果才不会出错。而人眼看不清快速运动的物体,是“低通”的,那么就要求“f<1/2fs(采样频率)”了。
  再比如说,你采了一些nyquist频率的样点,那么它的2倍频信号(当作正弦哦,比较简单一点)恰好也能穿过这些样点吧?甚至4倍频都可以,但这些都不是我们想要的,它们就叫做混叠成分(alias),就得用低通滤波器去掉,不然就可能会造成干扰了。
离线bd1es
发帖
2096
只看该作者 199楼 发表于: 2008-08-20
唉,共同努力吧,哈哈。要说乱用概念,也许我比谁都乱,连我自己都咂舌这同一个帖子里我用的术语都不统一,显然这是缺乏专业素养的表现。我也是非电的,严格说我们软件专业与电是没有任何关系的。总之我是想说我们只是在讨论问题,咋想咋说罢了,我们之所以有勇气说出来就是因为我们爱好这个,同样也是希望能得到大家的指正。所谓能看懂是对我等的宽容和理解,而看不懂就是我们的不对,这点需要改进。

再接小比尔/5的话题,如果混叠叫alias,那么谐波就叫harmonics。

alias暗含锯齿之意,信号处理中我们说的抗混叠,在图形学里就有人叫反锯齿,且不说这样的翻译是否好玩,单说它的内涵我们就知道那一定是出现假象了,就是我们说的假频(镜像、混叠等等),而反锯齿的办法是高抽样再求平均,这样图像的边缘就平滑了,这与我们说的nyquist带宽内的低通滤波是何等相似。图像平滑有多种算法,含那些高阶插值的,而我们的反混叠低通滤波器也有多种实现方式,性能各不相同、“软”些的“硬”些的不完善的各有千秋,这在思想上又是何等相似。

而harmonic暗含和谐之意,就是说它定与原信号成某种倍率关系,否则我们必感觉跑调、不和谐。谐波是信号经非线性变换的产物,比如原信号1000hz,那经过指数响应的系统,它可能出现2000、3000、4000等谐波。谐波也是不需要其他信号参与就能自主产生的少数信号之一。而我们说的混叠实际上是一种调制产物,它是采样频率(载频)直接作用的结果。所以混叠必呈现某种边频特性,也就是必与载频和原信号的差值有关联,而它们不是原信号的倍频关系。

区别谐波与边带的另一简单方法是设法生成一个频带信号。如果有谐波,那么谐波频带必宽于原信号的带宽,比如原信号带宽100hz,那它的3次谐波带宽就是300hz。如果发现那些新产生的信号与原信号同宽,则它必是一种调幅边带,因为采样是一种pam,前面小比尔/5说过。这与我们的单边带发生器有点儿像。

唉,又不知说什么了,到此为止。 :o :o