零阶保持器

零阶保持器是一种常见的工程低通滤波器,它将输入信号保持一个周期,用于数字信号处理。该保持器的传递函数为1/(s-1/s e^(-Ts)),其幅频特性表现为正比于sin(ωT/2)/(ωT/2),相频特性为-ωT/2,导致恢复信号存在差异并可能降低系统稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【自控笔记】6.2零阶保持器

理想低通滤波器在现实中是不存在的,在工程中,最常用的低通滤波器是零阶保持器。这种保持器在一个周期T内的值为常数,其导数为0,故因此而得名。

一、零阶保持器的作用

零阶保持器的作用很简单,就是把输入它的信号保持一个周期T,其它什么也不干。

如上图所示,当输入信号为 δ ( t ) δ(t) δ(t)是,零阶保持器的输出就是 δ ( t ) δ(t) δ(t)的值,并保持一个周期。同理当输入信号为 e ∗ ( t ) e^*(t) e(t)时,其输出就是各个离散信号点保持一个周期,还原出连续信号。

由此往下,研究零阶保持器的传递函数,能够了解使用零阶保持器恢复信号对原信号的差别。

二、零阶保持器的传递函数

零阶保持器的时域函数如下:
g h ( t ) = 1 ( t ) − 1 ( t − T ) g_h(t)=1(t)-1(t-T) gh(t)=1(t)1(tT)
可以想象一下,它的时域函数在T以前是单位阶跃函数1(t),当t≥T时,1(t)-1(t-T)的值就为零了。所以它的时域图像是在一个周期T内的单位阶跃函数。

g h ( t ) g_h(t) gh(t)进行拉普拉斯变换即可得到它的传递函数:
G h ( s ) = L [ g h ( t ) ] = 1 s − 1 s e − T s = 1 − e − T s s G_h(s)=L[g_h(t)]=\frac{1}{s}-\frac{1}{s}e^{-Ts}=\frac{1-e^{-Ts}}{s} Gh(s)=L[gh(t)]=s1s1eTs=s1eTs

s = j ω s=jω s=jω可以得出零阶保持器的幅频特性
∣ G h ( j ω ) ∣ = T ⋅ s i n ( ω T / 2 ) ω T / 2 |G_h(jω)|=T·\frac{sin(ωT/2)}{ωT/2} Gh(jω)=TωT/2sin(ωT/2)
零阶保持器的相频特性
φ h ( ω ) = − ω T 2 φ_h(ω)=-\frac{ωT}{2} φh(ω)=2ωT
其中T为采样周期,采样频率 ω s = 2 π T ω_s=\frac{2π}{T} ωs=T2π。因此零阶保持器的幅频特性和相频特性的图像如下:

三、零阶保持器对信号的影响

观察零阶保持器的频率特性曲线,可以看出,它不仅采样信号的主频通过,还能使部分高频分量通过,所以恢复的信号有一定的差异。观察它的相频特性曲线,它的相频是正比于频率相位滞后的,即引入零阶保持器会使系统的相角裕度损失,造成系统稳定性下降。

### 零阶保持器的实现及其与延迟和记忆的关系 在数字信号处理领域,零阶保持器(Zero-Order Hold, ZOH)是一种用于离散时间系统的重构技术。ZOH 的主要功能是在采样间隔内保持上一次采样的值不变。 #### 数学描述 假设输入信号 \( u(t) \) 是连续时间信号,经过理想采样得到离散时间信号 \( u[n] \),其中 \( nT_s \leq t < (n+1)T_s \),\( T_s \) 表示采样周期。那么零阶保持器输出 \( y(t) \) 可以表示为: \[ y(t) = u[k],\quad kT_s \leq t < (k+1)T_s \] 这种特性使得 ZOH 输出在整个采样区间内保持恒定,直到下一个样本到来为止。 #### 延迟的影响 引入延迟意味着当前时刻的输出不仅依赖于即时输入还可能受到过去某个固定时间段之前的输入影响。对于具有延迟特性的零阶保持器来说,在实际应用中可能会遇到如下情况: - **计算延迟**:如果存在计算上的延时,则可能导致控制系统响应滞后; - **传输延迟**:网络或其他物理媒介引起的传播时间差也会造成额外的时间偏移; 这些因素都会对控制性能产生负面影响,特别是在实时性和精度要求较高的场合下更为明显[^2]。 #### 记忆机制的作用 为了模拟真实世界中的动态行为并提高模型准确性,可以在设计时加入适当的记忆单元来存储历史状态信息。具体而言,可以通过调整内部寄存器或缓冲区大小等方式实现不同长度的历史记录保存能力。这样做有助于更好地逼近理想的传递函数特征,并减少因突然变化而带来的冲击效应。 ```matlab function y = zoh_with_delay_and_memory(u, Ts, d) % u: 输入序列 % Ts: 采样周期 % d: 延迟量 N = length(u); y = zeros(size(u)); for i = 1:N idx = max(1,i-d); % 考虑到可能存在负索引的情况 y(i) = u(idx); disp(['Time:', num2str((i-1)*Ts), ', Output:', num2str(y(i))]); end end ``` 此 MATLAB 函数展示了如何通过简单的循环逻辑实现带有延迟效果的记忆型零阶保持器。这里 `d` 参数代表相对于当前位置向前回溯多少步去取样作为输出值。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值