论坛风格切换切换到宽版
  • 3843阅读
  • 8回复

DDS晶振频率的选择 [复制链接]

上一主题 下一主题
离线小比尔/5
 
发帖
2582
只看楼主 倒序阅读 0楼 发表于: 2009-06-18
为啥都采用30.000、50.000这样的“整数”呢?
为啥不用32.768、64.000?
相位累加器表示的都是2的n次方,用2^n的频率,左移右移会不会好算一点啊?
离线代洪波
发帖
4809
只看该作者 1楼 发表于: 2009-06-18
如果选择比如2。048mhz类似的的确计算方便很多。估计是需要利用dds的最高使用频率吧
离线yuhang
发帖
1803
只看该作者 2楼 发表于: 2009-06-18
因为 dds的分辨率 很高,没比较用 这样的晶体

通过 频率控制字 就可以修正
离线BD1CM
发帖
3306
只看该作者 3楼 发表于: 2009-06-18
一般dds是32位的 要凑数的话就是2^32这个数,不好整,另外dds分辨率太高了不必非得要凑主时钟的数了
离线小比尔/5
发帖
2582
只看该作者 4楼 发表于: 2009-06-19
其实就是频率控制字的计算比较麻烦,至少用89s52是这样,别的没啥
离线BD1CM
发帖
3306
只看该作者 5楼 发表于: 2009-06-19
用权加的办法计算就ok了 毕竟51的c上限是32位的 你指望它直接算有点费劲 先用pc计算出
1hz=多少累加器的数值
10hz=多少
100hz=多少……
用的时候做权加就ok 最大误差很小的
离线小比尔/5
发帖
2582
只看该作者 6楼 发表于: 2009-06-20
嗯,这是个好办法,比浮点乘法好多了,学习!
离线一异
发帖
868
只看该作者 7楼 发表于: 2009-06-20
实际上,只要相位累加器的步长足够长,最后得到的频率精度一般都能得到保证,除非你需要输出频率很低信号。(比如,一个采样频率100mhz、24bit累加器的dds,无法得到精确的10hz的信号)

要解决低端频率的准确性,用特殊频率晶振是一个有效的方法,这个方案唯一的缺点是需要定制晶体。
另一个可能的方法是采用10进制累加器,这个方法的缺点在于无法使用商品化的dds芯片,只能由可编程逻辑自己设计。
对于采用单片机,或者dsp制作的dds,采用十进制累加器倒是一个很不错的解决方案。
离线BD1CM
发帖
3306
只看该作者 8楼 发表于: 2009-06-20
我估计用啥时钟不是问题,单片机的计算才是个小问题,当然好的性能的输出也要求考虑时钟是否会有交互调等影响的。