> 文章列表 > 「计算机控制系统」2. 采样与数据保持

「计算机控制系统」2. 采样与数据保持

「计算机控制系统」2. 采样与数据保持

计算机控制系统中的信号
理想采样过程的数学描述
信号的恢复与重构

文章目录

  • 计算机控制系统中的信号
    • 基础知识
    • A/D中的信号
    • D/A中的信号
  • 理想采样过程的数学描述
    • 采样过程的描述
    • 理想采样信号的描述
    • Shannon采样定理
  • 信号的恢复与重构
    • Shannon重构法
    • 信号保持重构法

计算机控制系统中的信号

基础知识

消息:待发送的符号
信号:用于描述、记录和传输消息的物理过程
信息:包含在消息中的有效成分
信号是消息的表现形式,消息是信号的具体内容

注意连续时间信号和离散时间信号的定义:
在这里插入图片描述

注意离散幅值信号和数字信号(二进制信号)的定义:
「计算机控制系统」2. 采样与数据保持

信号根据时间可分为离散和连续,根据幅值可分为离散、连续和二进制,总共可以组合出六种信号:

A/D中的信号

「计算机控制系统」2. 采样与数据保持
(1) 采样:把时间连续信号转变成时间离散信号
称完成信号转换的装置为采样开关
相邻两次采样之间的间隔时间称为采样周期
(我们只讨论均匀采样,即采样周期恒定不变)
「计算机控制系统」2. 采样与数据保持
注:采样过程存在时域信息损失。采样周期一定时,已知采样前信号,可以唯一确定采样后信号。但已知采样后信号,不能唯一确定采样前信号。

(2) 量化:把采样时刻的信号幅值转变为最小量化单位的整数倍
f(kT)=Lqf(kT)=Lqf(kT)=Lq, T为采样周期,q为最小量化单位,L为整数,k=0,1,2,⋯k=0, 1, 2, \\cdotsk=0,1,2,
「计算机控制系统」2. 采样与数据保持

(3) 编码:将信号幅值用二进制编码表示
「计算机控制系统」2. 采样与数据保持

D/A中的信号

「计算机控制系统」2. 采样与数据保持

(1) 解码:将数字量转换成幅值对应的脉冲信号
把完成解码的装置称为解码器
「计算机控制系统」2. 采样与数据保持

(2) 保持:把脉冲信号转换成时间连续信号
完成保持的装置称为保持器信号恢复器
「计算机控制系统」2. 采样与数据保持

注:以上出现了ABCDE共5种信号。还有一种信号F:时间连续、幅值二进制的信号,存在于计算机内部。
「计算机控制系统」2. 采样与数据保持
比如观察某一个内存单元,在时间上是连续的,而其内容是二进制的数字。

理想采样过程的数学描述

采样过程的描述

在方框图中,采样开关绘制为:
「计算机控制系统」2. 采样与数据保持
用*号来表示经过采样的离散信号。
描述采样过程有这几个指标:
采样周期:TTT
采样频率:fs=1Tf_s=\\frac{1}{T}fs=T1
采样角频率:ωs=2πfs=2πT\\omega_s =2\\pi f_s = \\frac{2\\pi}{T}ωs=2πfs=T2π

理想的采样过程即是忽略采样开关的闭合时间,认为采样是在一瞬间完成的。

理想采样信号的描述

对于连续的函数f(t)f(t)f(t)采样,得到数字序列:f(0),f(T),f(2T),⋯f(kT)⋯f(0), f(T), f(2T), \\cdots f(kT) \\cdotsf(0),f(T),f(2T),f(kT)
脉冲函数乘以另一个函数,相当于筛选出t=0t=0t=0时的函数值(筛选性)
利用一系列脉冲函数来筛选出间隔为T的一系列时刻的信号值:
f∗(t)=f(t)δ(t)+f(t)δ(t−T)+⋯+f(t)δ(t−kT)+⋯=∑k=0∞f(t)δ(t−kT)=f(t)∑k=0∞δ(t−kT)\\begin{aligned} f^*(t)=&f(t)\\delta(t)+f(t)\\delta(t-T)+\\cdots+ f(t)\\delta(t-kT)+\\cdots\\\\ =&\\sum_{k=0}^{\\infty}f(t)\\delta(t-kT)\\\\ =&f(t)\\sum_{k=0}^{\\infty}\\delta(t-kT) \\end{aligned}f(t)===f(t)δ(t)+f(t)δ(tT)++f(t)δ(tkT)+k=0f(t)δ(tkT)f(t)k=0δ(tkT)

定义理想采样开关:δT(t)=∑k=−∞∞δ(t−kT)\\displaystyle \\delta_T(t)=\\sum_{k=-\\infty}^{\\infty}\\delta(t-kT)δT(t)=k=δ(tkT)
一般情况下,我们认为t<0t<0t<0时,f(t)=0f(t)=0f(t)=0,所以理想采样开关也可以表示为:δT(t)=∑k=0∞δ(t−kT)\\delta_T(t)=\\sum_{k=0}^{\\infty}\\delta(t-kT)δT(t)=k=0δ(tkT)

时域描述
采样后的信号有以下四种表示方法:(都要认识)

  • f∗(t)=f(t)δT(t)f^*(t)=f(t)\\delta_T(t)f(t)=f(t)δT(t)
  • f∗(t)=f(t)∑k=0∞δ(t−kT)f^*(t)=f(t)\\sum_{k=0}^{\\infty}\\delta(t-kT)f(t)=f(t)k=0δ(tkT)
  • f∗(t)=∑k=0∞f(t)δ(t−kT)f^*(t)=\\sum_{k=0}^{\\infty}f(t)\\delta(t-kT)f(t)=k=0f(t)δ(tkT)
  • f∗(t)=∑k=0∞f(kT)δ(t−kT)f^*(t)=\\sum_{k=0}^{\\infty}f(kT)\\delta(t-kT)f(t)=k=0f(kT)δ(tkT)

复域描述
即是求Laplace变换:
这里要注意,采样后信号的复域描述,并不等于采样前信号复域描述的采样。必须通过以下两种方法计算:

  1. 未采样时域描述 ->采样后复域描述
    F∗(s)=L[f∗(t)]=∫0∞∑k=0∞[f(t)δ(τ−kT)]e−sτdτ=∑k=0∞f(kT)e−kTs\\begin{aligned} F^*(s) =& \\mathscr{L}[f^*(t)]\\\\ =& \\int_0^\\infty \\sum_{k=0}^\\infty[f(t)\\delta(\\tau-kT)]e^{-s\\tau} \\rm{d}\\tau\\\\ =& \\sum_{k=0}^\\infty f(kT)e^{-kTs} \\end{aligned}F(s)===L[f(t)]0k=0[f(t)δ(τkT)]esτdτk=0f(kT)ekTs
    由于认为t<0t<0t<0时,f(t)=0f(t)=0f(t)=0,所以也写作:
    F∗(s)=∑k=−∞∞f(kT)e−kTs\\displaystyle F^*(s)=\\sum_{k=-\\infty}^{\\infty}f(kT)e^{-kTs}F(s)=k=f(kT)ekTs

  2. 未采样复域描述 -> 采样后复域描述
    F∗(s)=1T∑n=−∞∞F(s+jnωs)\\displaystyle F^*(s)=\\frac{1}{T} \\sum_{n=-\\infty}^{\\infty}F(s+jn\\omega_s)F(s)=T1n=F(s+jnωs)

可以看出:

  • F∗(s)F^*(s)F(s)是周期函数,周期为jωsj\\omega_sjωs
  • F(s)F(s)F(s)s=s1s=s_1s=s1处有一极点,那么F∗(s)F^*(s)F(s)必然在s=s1+jmωss=s_1+jm\\omega_ss=s1+jmωs处具有极点,m=±1,±2,⋯m=\\pm1, \\pm2,\\cdotsm=±1,±2,
  • 一采样前信号与一采样后信号相乘再采样,相当于两信号分别采样再相乘Y∗(s)=[E∗(s)G(s)]∗=E∗(s)[G(s)]∗=E∗(s)G∗(s)Y^*(s)=[E^*(s)G(s)]^*=E^*(s)[G(s)]^*=E^*(s)G^*(s)Y(s)=[E(s)G(s)]=E(s)[G(s)]=E(s)G(s)

频域描述
即是求Fourier变换:
δT(t)=∑k=0∞δ(t−kT)\\displaystyle \\delta_T(t)=\\sum_{k=0}^{\\infty}\\delta(t-kT)δT(t)=k=0δ(tkT),展开成Fourier级数:δT(t)=1T∑n=−∞∞ejnωst\\displaystyle \\delta_T(t)=\\frac{1}{T}\\sum_{n=-\\infty}^{\\infty}e^{jn\\omega_st}δT(t)=T1n=ejnωst
f∗(t)=f(t)δT(t)=1T∑n=−∞∞f(t)ejnωst\\displaystyle f^*(t)=f(t)\\delta_T(t)=\\frac{1}{T}\\sum_{n=-\\infty}^\\infty f(t)e^{jn\\omega_st}f(t)=f(t)δT(t)=T1n=f(t)ejnωst,根据频移定理:

F∗(jω)=1T∑n=−∞∞F(jω+jnωs)\\displaystyle F^*(j \\omega)=\\frac{1}{T} \\sum_{n=-\\infty}^{\\infty}F(j \\omega+jn\\omega_s)F()=T1n=F(+jnωs)

n=0n=0n=0时,F∗(jω)=1TF(jω)\\displaystyle F^*(j \\omega)=\\frac{1}{T} F(j \\omega)F()=T1F(),称为主频谱
n≠0n\\ne0n=0时,相当于主频谱每隔ωs\\omega_sωs被复制一遍。称为高频频谱

假设连续信号的频谱带宽有限(最高频率为ωm\\omega_mωm),则采样前后信号频谱如图:

  1. 下图中复制后频谱没有重叠,因为ωs−ωm>ωm\\omega_s-\\omega_m>\\omega_mωsωm>ωm,即ωs>2ωm\\omega_s>2\\omega_mωs>2ωm。称为不发生混叠
    「计算机控制系统」2. 采样与数据保持
  2. 下图中,ωs<2ωm\\omega_s<2\\omega_mωs<2ωm,发生混叠。
    「计算机控制系统」2. 采样与数据保持

观察上面两张图,采样后信号频谱关于nωs2\\frac{n\\omega_s}{2}2nωs左右对称。称ωs2\\frac{\\omega_s}{2}2ωs这个频率为折叠频率(Nyquist频率)

Shannon采样定理

ωm\\omega_mωm是模拟信号f(t)f(t)f(t)的上限频率,ωs\\omega_sωs为采样频率,则当ωs≥2ωm\\omega_s \\ge2\\omega_mωs2ωm时,经过采样得到的信号可以无失真地复现原信号。

这里的失真,是由于发生了混叠,高频频谱的低频部分,被叠加到主频谱的高频部分。

在实际工程中,为了防止发生混叠,常采用前置滤波器(也称抗混叠滤波器)。即在采样开关前串连一个低通滤波器,滤除高于ωs2\\frac{\\omega_s}{2}2ωs的频谱分量,避免发生混叠。同时,这个滤波器也有助于滤除高频干扰。

选取采样频率时,受到计算机性能的限制,不能选得太高。对于伺服系统,一般取ωs≥6∼10ωc\\omega_s \\ge 6\\sim 10 \\omega_cωs610ωc

信号的恢复与重构

信号重构:采样的逆过程。

Shannon重构法

无失真地复现原信号,就是采用了以下的方法:使用理想低通滤波器
G(jω)={1,∣ω∣≤ωs20,∣ω∣>ωs2G(j\\omega)=\\left\\{ \\begin{aligned} 1,|\\omega|\\le\\frac{\\omega_s}{2}\\\\ 0,|\\omega|>\\frac{\\omega_s}{2} \\end{aligned} \\right.G()=1,ω2ωs0,ω>2ωs

「计算机控制系统」2. 采样与数据保持
但理想低通滤波器是不存在的,因此这种方法也只是一个理想的重构过程,不能用于实际系统。

信号保持重构法

Signal Hold,使用保持器实现。
基本思想是,由过去时刻的采样值f(kT),k≤t/Tf(kT),k\\le t/Tf(kT),kt/T,推出当前时刻f(t)f(t)f(t)的值

假设在一次采样之后,下一次采样还没到来之间的这一段时间(0<Δt<T0<\\Delta t<T0<Δt<T),取:
f(t)=f(kT+Δt)=a0+a1Δt+a2Δt2+⋯+anΔtnf(t)=f(kT+\\Delta t)=a_0+a_1\\Delta_t+a_2\\Delta_t^2+\\cdots + a_n\\Delta_t^nf(t)=f(kT+Δt)=a0+a1Δt+a2Δt2++anΔtn
选择阶数n,根据过去的采样值可以计算出各参数,进而计算出两次采样之间的f(t)f(t)f(t)值。

零阶保持器
Zero Order Holder (ZOH)
f(t)=f(kT+Δt)=f(kT)f(t)=f(kT+\\Delta t)=f(kT)f(t)=f(kT+Δt)=f(kT)
直观理解就是保持上一次的采样值,直到下一次采样。
「计算机控制系统」2. 采样与数据保持

输入单位脉冲函数,输出宽度为T的矩形脉冲,则可以写出ZOH的传递函数:
「计算机控制系统」2. 采样与数据保持

根据传递函数,可以分析ZOH的幅频、相频特性:
「计算机控制系统」2. 采样与数据保持

  1. 有无穷多个截止频率:ωc=nωs\\omega_c=n\\omega_sωc=nωs
  2. 允许高频分量通过,但幅值随ω\\omegaω增加而衰减
  3. 相位滞后。滞后程度与信号频率ω\\omegaω及采样周期TTT成正比

零阶保持器容易实现,是应用最广泛的一种信号重构法。

一阶保持器
f(t)=f(kT+Δt)=a0+a1Δtf(t)=f(kT+\\Delta t)=a_0+a_1 \\Delta tf(t)=f(kT+Δt)=a0+a1Δt
了解即可。
「计算机控制系统」2. 采样与数据保持
这里需要注意的是,斜率必须根据kT之前的采样值计算,而不能直接连接kT和(k+1)T的采样值。