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

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

上一主题 下一主题
离线feifeivictor
 
发帖
535
只看楼主 倒序阅读 0楼 发表于: 2007-07-08
采样定理说正弦波一周期要采两点,就能恢复了
方波呢,要采多少点?
其实我想知道dds一定需要rom波表和dac吗,可不可以只用1个累加器直接分频?
dds的相位噪声与什么有关系啊(我用dds做发射,其他频率的杂波不用考虑,可以滤掉)?
如果传模拟信号,在规定的信噪比下,接收机能容忍多大的相位噪声呢
如果是数字信号呢?
离线bd1es
发帖
2096
只看该作者 1楼 发表于: 2007-07-08
dds我还不算了解,以前拿cpld和avr单片机玩过自制的,一头雾水。最近是刚刚搞到正规的芯片,还没实验,不多说。但是采样定理多少知道些。

其实耐亏斯特同志说的是为了保证离散序列中不包括混叠的带外谱信息,采样频率至少要高于基带截止频率的两倍。那么基带中不会发生混叠的最高频率被称为奈奎斯特频率。即使如此,序列的复现也需要滤波,因为它毕竟离散了,复现后会出现与基带有关的无穷个边带,导致干扰,想一下sinc(x)这个函数就明白了。

对于频带信号,为了保证离散序列不发生混叠,采样频率也必须大于两倍频带带宽,且要遵循一定的选取原则。这 是带通采样定理,咱们软件无线电的基础,要么我们不知道要用多快的adc才能做一个业余电台,而实际只需要十几到几十千赫的采样率就够了。

反过来想,方波的傅氏级数无限长,包含众多倍频,各谐波的幅度和相位都有严格安排,稍有错位就会引起波形失真,产生过冲和振荡。即便很近似地,也要考虑到7-9次倍频,在此频带内电路不仅要有平直的频响,也要有固定的群延时。就是说比如10khz的采样频率,它的奈奎斯特频率为5khz,大约仅可以复现500hz的方波。喜欢视频的朋友一定有体会。

dds是否需要rom表取决于您需要啥波形,比如斜波就根本不要波表,本来dds的输出就是一个线性递增的循环。如需要方波也不要波表,制作一个一半为零,另一半填充ff的方波波表基本相当于把dds累加器的最高一位引出。方波的dds较比一般dds多一个噪声:呈倍频的谐波。当然这很容易滤掉。

严格讲数字系统到模拟系统之间都需要dac做转换,那是数字变模拟的隔离器,因为两边对电源的质量、地线的噪声等等要求未必一样的。当然,如不考究的话可以用电阻网络代替dac,如果是“方波dds”,就可以直接一跟线引出。当然这样一定会把数字系统的电源噪声和数字芯片输出端口的特有噪声带入模拟系统!最好拿示波器看好了再决定。

有另一个噪声该注意,镜像频率,所有dds都有!当dds输出频率远低于奈奎斯特频率时,可以忽略它,因为dds后面的低通可以把它滤掉。当dds的输出频率接近奈奎斯特频率时,镜像与输出频率就靠得非常近,它以奈奎斯特频率为轴,跟输出频率照镜子。这时侯即便有再好的滤波器也不能滤掉,滤波器总有过渡带的。所以dds的采样频率一般要高于最高输出频率的3-4倍,而不是采样定理说的两倍,因为它有这个特殊的干扰。

其他还不知道,待我接着试验后再说...猴年以后
离线老干部
发帖
7646
只看该作者 2楼 发表于: 2007-07-09
模拟tx,rx情况下,本振的相噪如果在ssb调制解调情况下,表现为接收到信号解调后的不纯,单音频有噪声对频率的调制,看到音频(如果解调后是音频的话)存在变浑浊的倾向。对于数字调制解调,相噪使得调制信号的矢量不再清晰,降低临界解调门限。
离线bg4kc
发帖
2640
只看该作者 3楼 发表于: 2007-07-09
用dds有个好处,能覆盖很大频率范围,这时候如果用方波和斜波,要做滤波器就复杂了。 波表dac生成的波形近似正弦,做滤波器很简单。

牺牲掉dds的这个好处,就不用波表也成,滤波法方波变正弦。
离线bd1es
发帖
2096
只看该作者 4楼 发表于: 2007-07-09
'
用dds有个好处,能覆盖很大频率范围,这时候如果用方波和斜波,要做滤波器就复杂了。 波表dac生成的波形近似正弦,做滤波器很简单。
牺牲掉dds的这个好处,就不用波表也成,滤波法方波变正弦。
'

这是个问题呢,本来dds输出范围可以很宽的,但如果加上谐波滤波器的话,工作范围就很难超过一个倍频程,要不就要切换多个波段。这也算是方波dds的缺点吧,
离线feifeivictor
发帖
535
只看该作者 5楼 发表于: 2007-07-09
我想试一下,如果效果好就推荐给大家.
现在cpld很便宜的,epm240十几块一片,还有内置锁相环,出短波调频方波肯定没问题.
离线bd1es
发帖
2096
只看该作者 6楼 发表于: 2007-07-09
以前我试过7128,使用maxplusii可以综合一个32位dds,通过仿真可知时钟大约36兆赫,实际超过40兆没问题,可惜波表做不进去,需要外置.我想用新型号片子应更好,可惜我没坚持试下去.
离线feifeivictor
发帖
535
只看该作者 7楼 发表于: 2007-07-09
不要波表,取相位累加器最高位,直接出方波,这相当于出正弦波再经过比较器吧.而且根据某些(我不知所云的)论文,不会有相位截断,也没有量化误差.
滤波后得到基频波,不知道会是什么样子,理论上又是什么样子
离线bd1es
发帖
2096
只看该作者 8楼 发表于: 2007-07-10
似乎这观点不对了,但我也拿不准。第一,相位截断是dds的通病,与波表无关;第二,取一位输出量化误差岂不是最大的?

还有直接出方波也不等于出正弦波再经过比较吧,dds的输出值是相位阶跃(沿着信号的一个周期滑动)的离散信号,经过足够精密的多位dac,再经低通滤波器圆滑才能得到相位相对连续,没有太大抖动的正弦波,且这时的采样频率也必须多少倍于输出频率。越接近奈奎斯特频率,这个结论就越不正确。

对一个较比正弦的信号做过零可得对称方波,而dds的最高位输出不是对称方波,而是类似pwm的调宽波形(脉冲宽度有抖动的意思)。这两者应该是不一样的,dds的1比特输出到底质量咋样,我也没底。

不妨这样吧,用c写一个软dds,比如32位的,输出一个有足够长度的1bit序列,写入文件中,比如1k、4k、16k等。把这些文件导入matlab进行分析,可看到这1bit输出的波形和频谱到底咋样的。有时间我也试试。

还有dds的这一位输出是“方波”,这仅是我们的假设。实际上这是拿数字电路当模拟电路用。那它的输出到底“方”成啥样,可能真的要实验后才有结论,而且不同型号的片子会有不同结果。

来张图,dds一个周期中大约包含3-4个采样点的斜波和方波波形:
dds是32位的,置入增量=1133557798,随便编的数。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bd1es
发帖
2096
只看该作者 9楼 发表于: 2007-07-10
这样看可能更舒服些:
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线feifeivictor
发帖
535
只看该作者 10楼 发表于: 2007-07-10
如果经过滤波取基频后再经过比较器呢,占空比会是50%吗
我不会用matlab,很多想法都不会仿真,得学学了
离线bd1es
发帖
2096
只看该作者 11楼 发表于: 2007-07-10
那干脆做fft吧,见图,还是使用生成上面那张图的序列,1比特方波dds。这是假设采样频率40mhz,就算输出频率大约11mhz。

从图看出,要得到边带纯度大于40db的信号,滤波器的要求还是挺高的,而且必须用带通滤波器。

另,占空比是否50%并不重要,那只影响基频的能量,以及基波和谐波的能量之比,经过滤波器后基频是稳定的就行了。

而1bit dds,方波的边沿在抖动,就是说受到附加调相,所以产生了不期望的边带,而且离输出频率比较近,所以滤波难度大一些,这是主要问题。看来方波dds的输出滤波器不仅达不到一个倍频程,而且还要显著小于一个倍频程, :( 。

感谢您发这个帖子,以前我也不明白dds的输出质量,但也确实想知道。今天通过实验才搞懂一点儿。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线feifeivictor
发帖
535
只看该作者 12楼 发表于: 2007-07-10
这频谱,看起来真的特别难滤,这个出来的大概是10.7m吧
把10.7m+-0.5m的滤掉,10.7m才会比较纯.
即使窄带滤波后,相位噪声看起来也好严重

如果时钟频率和输出频率之比增大,情况会好些吗.
出现边带是因为方波上升/下降时间太大的缘故吗
我原来打算160mhz出30~40mhz之间的一个点频,来做短波调频发射.

如果相位噪声不满足要求,设计就复杂了,就只能先出中频,然后上混频到30~40mhz.
离线bd1es
发帖
2096
只看该作者 13楼 发表于: 2007-07-11
时钟频率和输出频率之比增大应该好些,出现边带不是方波边沿问题,是dds的相位抖动造成的。

载波附近的相位噪声看上去还可以,能做到60dbc应该就行了吧。回头下午我试一下160mhz钟频,输出10.7兆的情况,希望会好一些。然后把频谱放大,看看载波附近的噪声情况。:):)。

还有昨天那个序列在做fft之前没有加窗,所以看上去底噪大一些,那是fft的谱泄漏造成的。如果继续增加序列的长度,分析还能更准确点儿。

这是午饭后试验的结果,160mhz钟频,相位增量=287225938,10.7mhz输出的32位“方波”dds,频谱如下,第二张是局部放大:

仿真结果令人失望,60dbc的边带抑制度难以达到,40dbc还差不多。但这也给人一个启发,如果把dds的输出置入锁相环,就可以把窄带带通滤波问题变成低通滤波,相对就容易些。通过观察可知在大多数情况下dds的输出频率附近还算纯净,如用较大时间常数的环路滤波器则可抑制大部分宽带干扰。当然在环路滤波器带宽之内的噪声会被放大,如果倍频次数很高的话。即便如此,也能使信号的纯净度提高。

最好的解决办法是使用精密一些的dds,并且通过波表将输出还原成正弦波,并坚持在dds的输出端加入正规的低通滤波器。这可以免去很多麻烦。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线bd1es
发帖
2096
只看该作者 14楼 发表于: 2007-07-11
索性做个带正弦波表的dds试验。仅8位输出就比1位的强太多了:
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线feifeivictor
发帖
535
只看该作者 15楼 发表于: 2007-07-12
正弦波DDS的频谱真的好纯,带外杂散也均匀分布
方波dds的带外杂散却是有规律的分布的,这一点区别可以利用吗?
只有方波DDS+pll才是可供选择的方案,是么?

正弦波DDS 和 方波DDS+PLL,这两个对比,哪个性能会好呢
离线bd1es
发帖
2096
只看该作者 16楼 发表于: 2007-07-13
方波dds的带外杂散却是有规律的分布的,这一点区别可以利用吗?
我也不知如何利用,主要是看着头痛,:):)。

只有方波DDS+pll才是可供选择的方案,是么?
这不一定,很可能还有更好的方案,我懒得想了。

正弦波DDS 和 方波DDS+PLL,这两个对比,哪个性能会好呢?
我觉得正弦波dds好。虽然“方波dds+pll”比“方波dds+窄带高q值带通滤波器”好做一些,但还是比直接用正弦波的麻烦多了。

从性能将也是正弦波dds好,覆盖宽,频谱纯。而方波dds即便经过pll的滤波,相位抖动也会比正弦波的大,而且随着置入相位增量的不同,这个相噪会呈现规律性的变化,甚至在某些特殊频点根本无法滤除。自己做仿真就可找到一簇这样的奇怪频点。

也有“正弦波dds+pll锁相倍频”的方案,比如我们用的比较新式的业余电台。这是为了改变dds的工作频带,实现高中频方案中的本振信号。实际上pll还是起到了相位噪声倍增器的作用,只是噪声的边带分布发生变化,宽待干扰变小了,窄带干扰在所难免。所以这种方案对dds的质量要求也是很高的。
离线feifeivictor
发帖
535
只看该作者 17楼 发表于: 2007-07-13
方波DDS,我暂时只能想出一个可用的方案:
出10.7mhz中频调频,10.7m陶瓷滤波,混频后发射。
即使这样,也远不如同时钟等的正弦波DDS吧。
那我还是直接用ad9851做短波调频得了。

至于方波DDS+PLL,还不如直接用PLL

谢谢你,bd1es,学了一些东西。
以后再向你学matlab啊
离线bd1es
发帖
2096
只看该作者 18楼 发表于: 2007-07-13
老兄别客气,用matlab我也是个棒槌,只会用几个函数而已。我觉得看看matlab自带的帮助和范例,能画个波形出个频谱啥的基本够用,当频谱仪吧,:):)。
离线alchemier
发帖
69
只看该作者 19楼 发表于: 2008-07-28
原来这里早有讨论啊