BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #18403同步于 2011/9/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

如何产生两路频率精确成倍数关系的波形?

cordialz
2011/9/22镜像同步14 回复
想产生两路波形,其中一路为正弦波,频率固定1K,另一路为正脉冲,频率为第一路正弦波的N倍。 现在想到了几个方案,但是都有些问题: 1、单片机产生PWM做脉冲,然后送分频器分频得到1K方波,过MAX293滤成正弦再放大 这样的问题是:1)N值只能固定 2)N较大的时候单片机很难产生精确的 N khz的频率 2、单片机产生PWM做脉冲,返回单片机计数器数脉冲,然后再用中断的方式产生方波(如:初值为FD则3个脉冲后溢出,即6分频) 这样的问题是:1)可以做变化的N,但是依然在N较大的时候不能保证分频后的信号准确为1Khz 2)单片机处理中断的过程中有延时t,即分频后实际周期应该是6T+2t 不是准确的6倍关系。 3、CPLD写几个固定分频比的分频器,给高速时钟分频后获得脉冲信号,再分频后获得1Khz信号 这样的问题是:成本高.....主要是就用很少的IO,剩余的IO都浪费了 所以发帖大家讨论下有没有比较好的方案能实现以下要求: 1、产生准确的N倍于1Khz的脉冲(倍数关系要求比较高,今天试验发现及时同一个信号源的两个输出都不够精确) 2、N值不要求连续可调,起码能有6、12、24、48这样的几个档(可以不是这4个数字,但是一定要有一定的区分度) 3、比较简单,比如用单片机的一些算法或者配合简单的分频电路(多级分频再用电子开关选的方案就算了,一大堆芯片头都大了) 最重要的就是那个N倍要非常精确,所以我目前的所有方案都是用高速脉冲产生那个1Khz的正弦,或者CPLD上的用同一个时钟分频(这样其实不准,门延时没考虑....) 总之希望各大牛集思广益......小弟感激不尽......
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
UZ机器人#1 · 2011/9/22
单片机的定时器就是干这个的。 你需要两路信号同相吗? 如果要同相是一个比较头疼的事情,如果不要,非常简单。拿两个定时器产生PWM波即可。PWM的周期是可调的,但确实无法做到N的全部值。基本上是2^N的都可以精确达到,即为N=2,4,8,16...如果你需要N=3的话,考虑DDS吧。自己用DAC做一个也是可以的。 【 在 cordialz (Cordial) 的大作中提到: 】 : 想产生两路波形,其中一路为正弦波,频率固定1K,另一路为正脉冲,频率为第一路正弦波的N倍。 : 现在想到了几个方案,但是都有些问题: : 1、单片机产生PWM做脉冲,然后送分频器分频得到1K方波,过MAX293滤成正弦再放大 : ...................
cordialz机器人#2 · 2011/9/22
用定时器很难做到准确的N倍吧.... 比如一个定为1K 一个定为10K 两者进入中断需要6个周期,执行一个翻转输出的操作需要1个周期,重新赋值需要2个周期,也就是两路波形每周期会有固定的9个周期的误差,也就是两者的倍数为(10T+9clk)/(T+9clk)肯定不会是10倍吧.... 之前我说的PWM波形是由专用PCA模块产生的,单片机主程序只进行初始化,之后交由PCA模块独立完成,溢出后自动重装并翻转,这个过程1周期...还是有点小误差 【 在 UZ 的大作中提到: 】 : 单片机的定时器就是干这个的。 : 你需要两路信号同相吗? : 如果要同相是一个比较头疼的事情,如果不要,非常简单。拿两个定时器产生PWM波即可。PWM的周期是可调的,但确实无法做到N的全部值。基本上是2^N的都可以精确达到,即为N=2,4,8,16...如果你需要N=3的话,考虑DDS吧。自己用DAC做一个也是可以的。 : ...................
UZ机器人#3 · 2011/9/22
不要中断。。。 而且我说啦,N=2^x 有PWM了就不要用中断去控制翻转了,尽量用PWM解决。 【 在 cordialz (Cordial) 的大作中提到: 】 : 用定时器很难做到准确的N倍吧.... : 比如一个定为1K : 一个定为10K : ...................
cordialz机器人#4 · 2011/9/22
额...我反应有点慢...还是没懂.... 我们这是在重做一块信号与系统实验板,那个抽样定理的验证实验 理论上需要一个正弦信号和一个抽样信号,而且抽样信号不需要是正弦信号的整数倍 不过如果不是N倍关系的话,那么每周期抽样获得的结果应该是不一样的,在示波器上观察的话波形会跑.....(虽然这样的信号可以进行恢复,恢复效果一摸一样的,但是不易于做实验的同学观察抽样所得的信号.....) 所以我们需要一个精确N倍频率的抽样信号以保证每周期抽的的信号都是完全一样的..... 这样才能在示波器上显示稳定的波形 两路PWM....是不是一路输出10%占空比做抽样脉冲,一路输出50%占空比做信号? 可是我用的单片机PCA模块是公共计数器的.....只能产生两路频率相同但是占空比不同的PWM信号...... 难道只能CPLD搞起么......成本啊.....浪费啊.... 【 在 UZ 的大作中提到: 】 : 不要中断。。。 : 而且我说啦,N=2^x : 有PWM了就不要用中断去控制翻转了,尽量用PWM解决。 : ...................
police机器人#5 · 2011/9/22
N有范围么。。 锁相环啊。。 【 在 cordialz (Cordial) 的大作中提到: 】 : 想产生两路波形,其中一路为正弦波,频率固定1K,另一路为正脉冲,频率为第一路正弦波的N倍。 : 现在想到了几个方案,但是都有些问题: : 1、单片机产生PWM做脉冲,然后送分频器分频得到1K方波,过MAX293滤成正弦再放大 : ...................
ghy机器人#6 · 2011/9/23
抽样的话用方波可能也好吧, 果断上锁相环啊~~~
cordialz机器人#7 · 2011/9/23
倍频出来的波形给力么....应该是正弦信号吧 还要比较整形......总感觉太麻烦了 不过如果其他方案都不给力的话也只能这么搞了.....
ghy机器人#8 · 2011/9/23
【 在 cordialz 的大作中提到: 】 : 倍频出来的波形给力么....应该是正弦信号吧 还要比较整形......总感觉太麻烦了 不过如果其他方案都不给力的话也只能这么搞了..... 直接出方波。。。
cordialz机器人#9 · 2011/9/23
yaoxi..... 【 在 ghy 的大作中提到: 】 : : 【 在 cordialz 的大作中提到: 】 : : 倍频出来的波形给力么....应该是正弦信号吧 还要比较整形......总感觉太麻烦了 不过如果其他方案都不给力的话也只能这么搞了..... : ...................