做一个低失真正弦波振荡器的想法由来已久了,但直到我了解了陷波滤波器之后,才把这一制作计划提上日程。制作1kHz的超低失真振荡器并联同1kHz的陷波滤波器一起使用,可以用来测量音频电路在1kHz处的谐波失真。一般的ADC和DAC对于-100dB以下THD的要求还是很有难度的,但做一个THD -120dB的模拟振荡器,仔细点还是可以实现的。
(责任编辑:admin)我采用的电路来自日本人黑田彻所著的《晶体管电路设计与制作》一书,电路图如下 这是一个状态变量型的振荡器,振荡环路用了3个运算放大器,而且都工作在反向放大模式,没有共模失真。电路特点是还使用了JFET来控制振辐,带有失真消除电路。书作者制作的振荡器达到了-124dB的THD+N,相当不错的水平。 我的仿制就按照这个电路来的,少部分元件参数有调整。1S1588用1N4148代替,时间常数的决定元件我用的是 0.01uF 聚苯乙烯电容和 16k 金属膜电阻加20欧多圈微调电位器。运放 U3 因为手头没有TL071装的时候就临时找了拆机的LF351顶替了。电路图及PCB版图我用Eagle这个免费软件来进行辅助设计。布局也大致按照原作的PCB图,不过我用了双面板。 第一步是焊接测试,微调频率的多圈电位器暂不焊,用导线短接。运放不需要更换,就不用插座了。 焊好后接上正负12V电源,用示波器看了一下输出。OK, 一次成功。 然后简单看一下波形的状况,要请出音频测试用的采集卡了(Cirrus Logic CS5341为核心的ADC板板,24bit 96kHz采样)。把电源先调整到正负15V,拿表测了一下振荡器的输出电压,是8.0Vrms. 接采集卡(或者声卡)需要衰减幅度,我用了9.1k电阻和1k电阻做个简单分压,这样信号输入到CS5341刚好接近满幅。用CoolEdit软件分析采集的音频: 这是个蛮好的结果了,2次和3次谐波都在-110dB以下的水平,其实可以怀疑这个谐波是采集卡内部产生的,因为CS5341手册上标的THD也不会有这么好。要知道这个振荡器真实的谐波水平,就必须用陷波滤波器了。 为了使用陷波滤波器(早几个月前制作的,不过只做了无源的部分相关帖子),需要把振荡器和陷波滤波器的频率调整到一致,这就是个精细活了。我更换了一组电容,一组电阻(试了两次)才成功,多圈电位器手头没有50欧的所以用的20欧,调节范围只有1.25Hz很窄。最初装的时候输出频率是1008.2Hz, 但我的陷波滤波器中心频率在1001.2Hz, 光靠微调电阻不够,就得换元件了。费了一番工夫终于可以覆盖目标频率了。 和无源双T型陷波滤波器连接 再看一下接入陷波滤波器之后的频谱。因为基频被强力衰减,分压的电阻不需要了,从陷波滤波器输出直接连到采集卡。 因为没有放在屏蔽盒内,旁边还有工频变压器,干扰可以明显看到,不过和关心的频率没有冲突。注意这里1kHz的2次、3次谐波并不是采集卡引起的了,而是来自我的振荡器。因为ADC即使只有80dB的THD水准,造成的谐波幅度也在-140dB那里。图上最大的谐波在大约-102dB,比上面那个直接测的图里-114dB要高,是因为进ADC的电阻衰减取消了,信号高了20dB,和前一图对应的话相当于 -122dB. 这个失真度看来还不错,不过调整失真性能的电位器 R15 到现在还没动呢。稍微调调,二次谐波还能显著降低。最后调整完毕(包括频率对准)的频谱测试是这样的 估算各次谐波的幅度都在相对基波的 -140dB 以下了。准确的测量值需要校准陷波滤波器才能得到。不过准确值已经不是那么重要了,这个正弦波的失真度我已经很满意了。 后面有时间再做一个10kHz的,以及匹配的陷波滤波器。 |