用单片机产生100k正弦波,求思路。
除了用dac外,好像还有PWM的方法,但是PWM的方法我看不懂原理啊,有没有关于pwm转正弦的这方面的原理的资料,求给个啊。 一个正弦波周期采10个点话,那你的pwm得工作1m频率 如果是单纯的100K正弦波,你只要输出100K方波,低通滤波就可以了。如果要直接输出可变频率最高到100K的正弦波,普通单片机不够快的。
以前用C8051也做不了,大概最高到20K,失真已经比较大了,要加低通滤波了。 但是PWM的方法我看不懂原理啊 amwrdfe 发表于 2013-4-14 17:17 static/image/common/back.gif
一个正弦波周期采10个点话,那你的pwm得工作1m频率
这么说来是有点高了吗?PWM做不了啊?
gx_huang 发表于 2013-4-14 17:33 static/image/common/back.gif
如果是单纯的100K正弦波,你只要输出100K方波,低通滤波就可以了。
如果要直接输出可变频率最高到100K的正 ...
恩,你的经验对我有很大帮助。
不太好搞 如果是输出估定100K可以做的,但如果是要求可在线调那就很难了。误差就与晶振有关了。 PWM基本是不要想了,做个10K还马马虎虎。用单片机直接输出矩形波再加低通是可以输出100K的,不过频率要连续可调就难了。
我的想法是:用高速运放做一个锯齿波发生器,单片机DA输出一个直流电平,切割锯齿波,控制锯齿波的翻转频率,这样似乎可以连续可调,分辨率就取决于DA的精度以及运放了,后面再加一个整形电路,整形后一路接低通滤波,一路进单片机测频率,反馈调节DA输出的电平高低,如此这番,搞定收工。
上述运放电路也可以用555来做。 方波经低通后输出的是三角波... amwrdfe 发表于 2013-4-15 00:24 static/image/common/back.gif
方波经低通后输出的是三角波...
三角波把两头处理一下就差不多是正弦波啦,再滤一下就更好啦。 如果仅仅是产生正弦波,没别的啥功能,那么倒是可以的。
我自己用STC11F02E做过一个小的信号发生器,正弦波和方波同时输出,1HZ~200KHZ,跑有源32.768MHZ时钟,IO接R-2R电阻做8位DAC,模拟DDS,串口设置频率,步进1HZ或10HZ,精度优于1/10000(决定于有源晶振)。 amwrdfe 发表于 2013-4-15 00:24 static/image/common/back.gif
方波经低通后输出的是三角波...
傅立叶变换不是这样说的. cjseng,你不相信的话,建议你先看下DDS原理。
步进10HZ,那么就可以200.00K、199.99K、199.98K、199.97K、199.96K。。。这样输出。
步进1HZ,那么就可以200.000K、199.999K、199.998K、199.997K、199.996K。。。这样输出。
如果用专门的DDS芯片,即使输出10MHZ,一样可以用0.1HZ的步进来设置。
再好好学习下傅立叶函数吧,100K的方波也是由其各倍频的郑玄函数组成的,带通滤波后就可以得到你要的波形
GD的330系列DDS PWM方式能跑100k本人亲测 固定的很好搞。任意调需要速度快一点的单片机实现软件dds算法
页:
[1]