FPGA数字IO如何实现DAC功能

描述

方波时域与频域

FPGA

假设方波频率为f0。横轴谐波次数为0的柱状图代表直流分量的幅值,也就是方波的平均电压(与占空比有关),谐波次数为1代表频率为f0的正弦波分量的幅值,3代表,3*f0的正弦波分量幅值,以此类推。

可以看出,谐波只有奇数次的分量,1次谐波开始频率越高,幅值越低,对波形影响也就越小。

那么,此时如果此方波过一个低通滤波器,将1,3,5,7...次谐波通通滤掉会如何?

结果就会只有一个0次谐波,也就是0.5V(50%占空比)的直流分量。那么此时我们IO输出占空比变为40%,输出电压就是0.4V,占空比80%,输出就是0.8V,这不就实现了DAC的功能吗?

模拟滤波器

FPGA

二阶有源低通滤波器

FPGA

贝塞尔滤波器

除了上图的滤波器外,如果不追求精度,可以直接LC低通滤波器,简单实用,亲测有效。

Matlab分析方波频谱代码

fs=10000; %采样频率

t=0:1/fs:1;

x=square(2*pi*50*t); %信号波形

subplot(211);

plot(t,x);

subplot(212);

pspectrum(x); %显示功率谱密度

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分