我是靠谱客的博主 轻松寒风,最近开发中收集的这篇文章主要介绍DAC输出波形的最大频率是多少? §01 DAC输出信号的最大频率 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简 介: 对于信号与系统课程同学提出的关于DAC输出信号中的最大频率的讨论。

关键词 ADCDAC零阶保持一阶保持

 

§01 DAC输出信号的最大频率


1、提问:

卓老师您好!抱歉这么晚打扰您,我想问一道关于采样的问题,如果您明天什么时候有空的话能麻烦您看一下吗?非常感谢!

如果正弦信号 x 0 ( t ) = cos ⁡ ( 50 t ) x_0 left( t right) = cos left( {50t} right) x0(t)=cos(50t)被采样,采样角频率为 ω s = 30 omega _s = 30 ωs=30 rad/s。采样后的数据才经过 DAC( 数模转换)被张让日晷模拟信号。DAC的转换速率越是 30 rad/s。那么转换后的重构正弦信号的频率为 10 rad/s

是这样的一道题,我的做法是画频谱搬移的过程,我的问题是为什么最后重构的信号里没有50hz和110hz的分量呢?

▲ 图1.1 频谱搬移过程

▲ 图1.1 频谱搬移过程

好的谢谢老师!

2、回复:

这个题目所涉及到的信号采样是一个欠采样问题,也就是采样频率比信号的采样定理所需要的频率小,所以会引起频率混叠现象。

下面是将采样后时间离散信号的频谱进行周期延拓,延拓的频率间隔为30 rad/s,对应的 一些所产生的频谱。

▲ 图1.2 采样后的正弦波的频谱

▲ 图1.2 采样后的正弦波的频谱

注意,实际的频谱远不止以上的谱线,上述谱线只是将低频部分进行绘制。特别是在30rad/s之内的谱线。

由于使用DAC将信号进行输出,实际输出信号的最大频率小于DAC输出信号频率的一半,也就是15rad/s。 因此从上述频谱中只有 10rad/s的频谱最终包含在输出信号中。

3、信号仿真

(1)采集数据点

下图展示了50rad/s的正弦信号以及被 30rad/s频率所采集到的数据点序列(红色点)。

▲ 图1.3 振荡信号以及对应的采样数据点

▲ 图1.3 振荡信号以及对应的采样数据点

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-06-20
#
# Note:
#============================================================
from headm import *
fm = 3
t = linspace(-fm, fm, 2000)
cost = cos(50*t)
ts = array(range(1+int(fm/(2*pi/30)))) * 2*pi/30
tsn = ts[-1:0:-1]*(-1)
tsl = list(tsn)
tsl.extend(list(ts))
tsall = array(tsl)
sample = cos(tsall*50)
printf(tsall)
plt.plot(t, cost, linewidth=1, linestyle = '--', label='cos(50t)')
plt.scatter(tsall, sample, color='red')
plt.xlabel("Time(s)")
plt.ylabel("cost")
plt.legend(loc='upperright')
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

(2)数据点DAC一阶保持输出

通常情况下,DAC的输出都是使用“零阶保持”输出,也就是当前的数据输出电压一直保持到下一个数据到来的时候。

▲ 图1.4 零阶保持输出

▲ 图1.4 零阶保持输出

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-06-20
#
# Note:
#============================================================

from headm import *

tm = 2
t = linspace(-tm, tm, 2000)
cost = cos(50*t)

#------------------------------------------------------------
negtive = int(tm/(2*pi/30)) * (-1) * 2 * pi / 30
printf(negtive)
dott = arange(negtive, -negtive, 2*pi/30)
costt = cos(dott * 50)

def t2value(tt,cc,nt):
    ctt = list(tt<nt)
    value = cc[-1]
    if False in ctt:
        value = cc[ctt.index(False)-1]

    return value

hold0 = [t2value(dott, costt, t0) for t0 in t]

#------------------------------------------------------------
plt.plot(t, cost, 'g--', linewidth=1, label='Origin')
plt.scatter(dott, costt, color='red', label='Sample')
plt.plot(t, hold0, 'b-', label='Hold0')
plt.xlabel("Time(s)")
plt.ylabel("Amplitude")
plt.grid(True)
plt.tight_layout()
plt.show()

#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

▲ 图1.5 一阶保持DAC输出波形

▲ 图1.5 一阶保持DAC输出波形


● 相关图表链接:

  • 图1.1 频谱搬移过程
  • 图1.2 采样后的正弦波的频谱
  • 图1.3 振荡信号以及对应的采样数据点
  • 图1.4 零阶保持输出
  • 图1.5 一阶保持DAC输出波形

最后

以上就是轻松寒风为你收集整理的DAC输出波形的最大频率是多少? §01 DAC输出信号的最大频率 的全部内容,希望文章能够帮你解决DAC输出波形的最大频率是多少? §01 DAC输出信号的最大频率 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部