信号处理核心概念:全通系统与无失真系统的本质区别与应用
在信号与系统、数字信号处理的学习中,我们经常会遇到“全通系统”和“无失真系统”这两个核心概念。很多同学在初次接触时容易混淆,或者只记住了结论,对其背后的物理意义和数学本质理解不深。本文将彻底梳理这两个概念,从定义、数学表达、物理意义到典型应用,并结合实例进行对比分析,帮助你构建清晰的知识体系。无论你是正在备考的学生,还是需要回顾原理的工程师,都能从本文中获得系统性的理解。
1. 核心概念:全通系统与无失真系统
在学习信号处理时,我们首先需要明确系统对信号的作用。一个线性时不变(LTI)系统,其特性完全由它的频率响应或冲激响应来描述。全通系统和无失真系统是两类具有特殊频率响应的系统。
1.1 什么是无失真传输系统?
无失真传输,顾名思义,是指信号经过系统后,其波形形状不发生任何改变。我们打电话时,希望对方听到的声音和我们说出的声音一模一样,只是可能声音大小变了,或者延迟了一会儿,但音色、语调不能变,这就是无失真传输的直观需求。
数学定义:一个无失真传输系统的输出信号y(t)与输入信号x(t)之间满足如下关系:y(t) = K * x(t - t_d)其中:
K是一个非零的实常数,代表系统的增益或衰减。K>1表示放大,0<K<1表示衰减。t_d是一个非负的实常数,代表信号通过系统所产生的固定时间延迟。
频率响应特性:对上述时域关系进行傅里叶变换,可以得到无失真系统的频率响应H(jω)必须满足:H(jω) = K * e^{-jω t_d}从这个公式我们可以解读出无失真系统的两个核心频域条件:
- 幅频特性为常数:
|H(jω)| = K。这意味着系统对所有频率分量的放大倍数都是一样的,不会因为频率高低而区别对待。如果某个频率被放大得多,某个频率被放大得少,合成后的波形必然发生畸变。 - 相频特性是线性的:
φ(ω) = -ω t_d。系统的相位延迟与频率成正比,比例系数就是群延迟t_d。线性相位保证了所有频率分量在时间上延迟相同,从而保持波形相对位置不变。
简单比喻:想象一个合唱团(输入信号由不同频率的声音组成)通过一个走廊(系统)。无失真传输就像这个走廊的墙壁对高音、中音、低音的反射吸收完全一致(幅频恒定),并且所有声音通过走廊所花费的时间完全相同(线性相位),那么出来的合唱声音只是整体变轻或变响了一些(K决定),并且整体晚听到了几秒(t_d决定),但合唱的和谐度(波形)丝毫未变。
1.2 什么是全通系统?
全通系统是一类特殊的系统,它的名字揭示了其核心特征:让所有频率分量“全部通过”。但这并不是指无失真,而是特指其幅频特性。
数学定义:一个全通系统的频率响应满足其幅频特性在整个频率范围内为常数:|H_ap(jω)| = A(通常归一化为1,即 A=1) 注意,这里只约束了幅频特性为常数,对相频特性 φ(ω) 没有任何限制。它的相频特性可以是任意的,通常是非线性的。
为什么需要全通系统?既然它不保证无失真,那它有什么用呢?关键在于它的相位。全通系统的主要作用是调整信号的相位谱(或群延迟),而不改变其幅度谱。
- 相位均衡:在通信或音频系统中,其他部件可能会引入非线性的相位失真。我们可以精心设计一个全通滤波器,其相位特性恰好能补偿这种失真,使得总系统的相位变得线性,从而实现无失真传输。
- 系统稳定性与因果性:在滤波器设计中,全通系统常被用于将非最小相位系统(零极点都在单位圆内或外)转换为最小相位系统,而不改变幅频响应。最小相位系统具有重要的数学和物理性质。
简单比喻:还是那个合唱团通过走廊。全通系统保证了这个走廊不会让高音、中音、低音任何一方变轻或变响(幅频恒定)。但是,它可能让高音歌手跑得快先出来,低音歌手跑得慢后出来(非线性相位)。虽然每个声音本身的强度没变,但他们出来的先后顺序乱了,合唱的和谐度(波形)就被破坏了。然而,如果前一个房间让低音跑快了,我们或许可以设计这个“全通走廊”让低音跑慢点,从而纠正整体的顺序。
1.3 概念对比与总结
| 特性 | 无失真传输系统 | 全通系统 |
|---|---|---|
| 核心要求 | 输出波形是输入波形的缩放和延迟 | 幅频响应为常数 |
| 幅频特性 | ` | H(jω) |
| 相频特性 | φ(ω) = -ω t_d(严格的线性相位) | φ_ap(ω)任意,通常非线性 |
| 时域关系 | y(t) = K * x(t - t_d) | 无简单通用时域表达式 |
| 是否失真 | 无失真 | 通常会引起相位失真,波形失真 |
| 主要用途 | 理想信号传输通道(如高质量音频线) | 相位校正、相位均衡、滤波器结构变换 |
关键结论:一个无失真系统必然是一个幅频特性为常数的系统,但一个幅频特性为常数的系统(全通系统)不一定是一个无失真系统。无失真系统是全通系统的一个真子集,附加了“线性相位”这个更严格的约束。
用集合关系表示就是:无失真系统 ⊂ 全通系统。 所有无失真系统都是全通系统,但并非所有全通系统都能实现无失真传输。只有当全通系统的相位也是线性时,它才同时是一个无失真系统。
2. 数学表达与系统函数分析
理解了概念后,我们从系统函数(拉普拉斯变换域或Z变换域)的角度进行更深入的分析,这有助于我们理解如何构造这样的系统。
2.1 无失真系统的系统函数
在连续时间域(s域),无失真系统的频率响应为H(jω) = K e^{-jω t_d}。其对应的系统函数H(s)是一个纯延迟环节的拉普拉斯变换:H(s) = K * e^{-s t_d}这是一个无理函数,在物理上无法用有限阶的线性常系数微分方程来实现,因此理想的无失真系统是物理不可实现的。它是一个理论模型。
在离散时间域(z域),情况类似。一个无失真的离散系统函数为:H(z) = K * z^{-N}其中N为正整数时,代表延迟N个采样周期。这是一个简单的延迟链,是物理可实现的。但当我们需要非整数采样周期的延迟时,也会面临近似实现的问题。
2.2 全通系统的系统函数
全通系统的系统函数具有非常特殊的结构。无论是连续系统还是离散系统,其零点和极点都关于虚轴(s域)或单位圆(z域)镜像对称。
连续时间全通系统(s域):其系统函数一般形式为:H_ap(s) = A * ∏ (s - a_i*) / (s - a_i)其中a_i是位于左半平面(保证系统稳定)的极点,a_i*是其关于虚轴的镜像点(即零点)。因为对于任意频率s=jω,零点jω - a_i*和极点jω - a_i的模长相等,所以整个分式的模恒为1,从而保证幅频响应为常数。
一阶连续全通系统示例:设极点p = -α (α>0),则零点z = α。系统函数为:H_ap(s) = (s - α) / (s + α)可以验证:|H_ap(jω)| = |(jω - α)/(jω + α)| = sqrt(ω^2 + α^2) / sqrt(ω^2 + α^2) = 1。
离散时间全通系统(z域):这是更常见的形式。其系统函数一般形式为:H_ap(z) = z^{-M} * ∏ (1 - a_k* z) / (z - a_k)其中|a_k| < 1(极点在单位圆内,保证系统因果稳定),零点1/a_k*在单位圆外,与极点关于单位圆镜像对称。因子z^{-M}代表纯延迟。
一阶离散全通系统示例:设极点p = a,其中|a| < 1。则系统函数为:H_ap(z) = (z^{-1} - a*) / (1 - a z^{-1})可以验证,在单位圆上z = e^{jω},其幅度恒为1。
3. 实例演示:用Python观察系统特性
理论需要结合实践来理解。下面我们使用Python的scipy和matplotlib库,来构造一个一阶全通滤波器,并观察它对信号的影响,同时与理想延迟(无失真)进行对比。
3.1 环境准备与代码框架
确保你已安装必要的科学计算库。
pip install numpy scipy matplotlib我们将创建两个系统:
- System A:一个一阶全通滤波器(非线性相位)。
- System B:一个理想延迟系统(线性相位,无失真)。
然后使用一个由两个不同频率正弦波叠加的测试信号,观察它们通过系统后的变化。
3.2 核心代码实现
import numpy as np import matplotlib.pyplot as plt from scipy import signal # 设置采样参数 fs = 1000 # 采样率 1000 Hz T = 1.0 # 信号时长 1秒 t = np.linspace(0, T, int(T*fs), endpoint=False) # 创建测试信号:两个正弦波的叠加 f1, f2 = 5, 50 # 低频5Hz,高频50Hz x = np.sin(2*np.pi*f1*t) + 0.5*np.sin(2*np.pi*f2*t + np.pi/4) # ====== 系统A: 一阶全通滤波器 ====== # 极点 a = 0.8 (在单位圆内,稳定),零点在 1/a* = 1/0.8 = 1.25 (单位圆外) a = 0.8 b_ap = [1, -1/a] # 分子系数: z^0 + (-1/a)*z^{-1} -> 对应 (1 - (1/a)*z^{-1}) a_ap = [1, -a] # 分母系数: z^0 + (-a)*z^{-1} -> 对应 (1 - a*z^{-1}) # 注意:signal.lfilter 使用标准形式: sum(b[i]*x[n-i]) = sum(a[i]*y[n-i]) # 我们的系统函数 H(z) = (z^{-1} - a*) / (1 - a*z^{-1}), 这里 a* = a (实系数) # 可以写成: H(z) = (-a + z^{-1}) / (1 - a*z^{-1}) # 因此,分子b = [-a, 1], 分母a = [1, -a] b_ap_correct = [-a, 1] # 对应 -a * z^0 + 1 * z^{-1} a_ap_correct = [1, -a] # 对应 1 * z^0 + (-a) * z^{-1} y_ap = signal.lfilter(b_ap_correct, a_ap_correct, x) # ====== 系统B: 理想延迟系统 (无失真) ====== delay_samples = 50 # 延迟50个采样点 # 系统函数 H(z) = z^{-delay_samples} # 对于lfilter,这相当于分子b只有一个元素1(在delay_samples位置),分母a为[1] # 我们可以用更直观的方式:直接移位并补零,或者使用signal.lfilter的特定形式 # 这里使用一个简单方法:构造一个只在第delay_samples处为1的单位脉冲响应 b_delay = np.zeros(delay_samples + 1) b_delay[delay_samples] = 1 a_delay = [1] y_delay = signal.lfilter(b_delay, a_delay, x) # ====== 计算频率响应 ====== w, h_ap = signal.freqz(b_ap_correct, a_ap_correct, worN=2048, fs=fs) w, h_delay = signal.freqz(b_delay, a_delay, worN=2048, fs=fs) # ====== 绘图 ====== fig, axes = plt.subplots(3, 2, figsize=(14, 10)) fig.suptitle('全通系统 vs. 无失真系统(理想延迟)', fontsize=16) # 图1: 时域输入输出对比 (全通) ax = axes[0, 0] ax.plot(t, x, 'b-', alpha=0.7, label='输入 x(t)') ax.plot(t, y_ap, 'r-', alpha=0.7, label='输出 y_ap(t)') ax.set_xlabel('时间 [s]') ax.set_ylabel('幅度') ax.set_title('系统A(全通)时域响应') ax.legend() ax.grid(True) # 图2: 时域输入输出对比 (延迟) ax = axes[0, 1] ax.plot(t, x, 'b-', alpha=0.7, label='输入 x(t)') ax.plot(t, y_delay, 'g-', alpha=0.7, label='输出 y_delay(t)') ax.set_xlabel('时间 [s]') ax.set_ylabel('幅度') ax.set_title(f'系统B(无失真延迟,{delay_samples/fs*1000:.1f}ms)时域响应') ax.legend() ax.grid(True) # 图3: 幅频响应 (全通) ax = axes[1, 0] ax.plot(w, np.abs(h_ap), 'r-') ax.set_xlabel('频率 [Hz]') ax.set_ylabel('幅度') ax.set_title('系统A(全通)幅频响应 |H(f)|') ax.set_ylim([0, 1.2]) ax.grid(True) ax.axhline(y=1, color='k', linestyle='--', alpha=0.3) # 画一条y=1的参考线 # 图4: 幅频响应 (延迟) ax = axes[1, 1] ax.plot(w, np.abs(h_delay), 'g-') ax.set_xlabel('频率 [Hz]') ax.set_ylabel('幅度') ax.set_title('系统B(延迟)幅频响应 |H(f)|') ax.set_ylim([0, 1.2]) ax.grid(True) ax.axhline(y=1, color='k', linestyle='--', alpha=0.3) # 图5: 相频响应 (全通) ax = axes[2, 0] ax.plot(w, np.unwrap(np.angle(h_ap)), 'r-') ax.set_xlabel('频率 [Hz]') ax.set_ylabel('相位 [弧度]') ax.set_title('系统A(全通)相频响应 ∠H(f)') ax.grid(True) # 图6: 相频响应 (延迟) ax = axes[2, 1] ax.plot(w, np.unwrap(np.angle(h_delay)), 'g-') ax.set_xlabel('频率 [Hz]') ax.set_ylabel('相位 [弧度]') ax.set_title('系统B(延迟)相频响应 ∠H(f)') ax.grid(True) plt.tight_layout() plt.show() # ====== 打印关键观察结论 ====== print("观察要点:") print("1. 幅频响应:系统A(红色)和系统B(绿色)的幅度在所有频率上都为1(常数),符合‘全通’定义。") print("2. 相频响应:") print(" - 系统B(绿色)的相位是一条严格的直线,斜率为负,对应固定群延迟。这是线性相位,无失真的关键。") print(" - 系统A(红色)的相位是一条曲线,是非线性的。不同频率分量延迟不同。") print("3. 时域波形:") print(" - 系统B的输出波形与输入波形完全一致,只是向右平移(延迟)。") print(" - 系统A的输出波形与输入波形相比,形状发生了明显变化(失真),这是因为非线性相位改变了各频率分量间的相对时间关系。")3.3 运行结果与解读
运行上述代码,你会得到六张子图。
时域对比(第一行):
- 左图(全通系统):红色输出波形
y_ap(t)与蓝色输入波形x(t)在形状上存在明显差异。高频部分和低频部分的相对位置发生了改变,导致波形畸变。这就是相位失真。 - 右图(延迟系统):绿色输出波形
y_delay(t)是蓝色输入波形x(t)的完美右移副本,形状没有丝毫改变。这就是无失真传输。
- 左图(全通系统):红色输出波形
幅频响应对比(第二行):
- 两张图都显示,系统的幅度响应在0到500Hz(奈奎斯特频率)范围内都是一条水平的直线
|H(f)|=1。这验证了二者都是“全通”系统——幅频特性为常数。
- 两张图都显示,系统的幅度响应在0到500Hz(奈奎斯特频率)范围内都是一条水平的直线
相频响应对比(第三行):
- 左图(全通系统):相位响应是一条曲线。低频部分相位变化平缓,高频部分相位变化剧烈。这意味着不同频率的信号分量通过系统时,经历的延迟(群延迟
= -dφ/dω)是不同的。 - 右图(延迟系统):相位响应是一条完美的斜向下直线。其斜率
= -t_d(t_d = delay_samples / fs)。所有频率分量都经历了完全相同的延迟,因此波形得以保持。
- 左图(全通系统):相位响应是一条曲线。低频部分相位变化平缓,高频部分相位变化剧烈。这意味着不同频率的信号分量通过系统时,经历的延迟(群延迟
这个实例清晰地展示了:幅频为常数是全通系统的充分必要条件,但却是无失真系统的必要条件而非充分条件。无失真还需要线性相位这个更苛刻的条件。
4. 常见问题与深入思考
4.1 为什么理想无失真系统物理不可实现?
理想无失真系统的频率响应H(jω) = K e^{-jω t_d}要求在所有频率上(包括无穷高频率)都具有恒定的幅度和线性的相位。这对应一个非因果的、无限长的冲激响应h(t) = K δ(t - t_d)。在实际中,我们无法构建一个能对无限高频分量做出完全相同响应的系统,也无法实现一个理想的纯延迟(除非是离散系统中的整数倍采样延迟)。因此,工程上我们追求的是在有效频带内近似满足无失真条件。
4.2 全通系统在工程中有哪些具体应用?
- 相位均衡器:这是最主要的应用。在通信链路、音频处理系统中,信道或设备(如扬声器、电话线)会引入相位失真。可以串联一个专门设计的全通滤波器,其相位特性恰好与信道的相位特性互补,使得总系统的相位在通带内接近线性,从而校正相位失真。
- 希尔伯特变换器:90度移相器可以通过全通滤波器来近似实现,用于生成解析信号。
- 最小相位系统转换:任何因果稳定的系统都可以分解为一个最小相位系统和一个全通系统的级联。全通部分包含了系统的非最小相位特性(如单位圆外的零点)。这在滤波器设计和系统分析中很有用。
- 延时均衡:在并行处理或多速率系统中,不同通路的延迟可能不同。可以用全通滤波器来微调某些通路的延迟,使其与其他通路对齐。
4.3 如何判断一个系统是否是无失真系统?
判断步骤如下:
- 获取系统的频率响应
H(jω):可以通过理论推导、仿真或实际测量得到。 - 分析幅频特性:检查
|H(jω)|在信号频带内是否为一个常数K。如果不是常数,则肯定不是无失真系统。 - 分析相频特性:检查相位
φ(ω)是否满足φ(ω) = -ω t_d + φ0,其中φ0通常是0或π(即可能有一个固定的符号反转)。可以计算群延迟τ_g(ω) = -dφ(ω)/dω。如果群延迟τ_g(ω)在信号频带内是一个常数,那么该系统在该频带内近似无失真。 - 时域验证:输入一个脉冲或一个宽带信号(如 chirp 信号),观察输出波形是否是输入波形的缩放和延迟版本。
4.4 离散系统中,纯延迟z^{-N}是无失真系统吗?
是的。在离散系统中,H(z) = z^{-N}(N为整数) 是一个完美的无失真系统。
- 幅频响应:
|H(e^{jω})| = |e^{-jωN}| = 1,常数。 - 相频响应:
φ(ω) = -ωN,严格的线性相位。 - 时域:
y[n] = x[n-N],输出是输入的精确延迟。 这是离散系统中最简单、最典型的无失真系统。当N为非整数时,需要用到分数延迟滤波器,这通常是一个近似全通的FIR或IIR滤波器。
5. 设计实践:设计一个简单的全通滤波器
我们尝试用Python设计一个一阶全通滤波器,并验证其性质。
import numpy as np import matplotlib.pyplot as plt from scipy import signal def design_allpass(pole_magnitude, pole_angle): """ 设计一个一阶离散全通滤波器。 参数: pole_magnitude: 极点的模长 r (0 < r < 1 保证稳定) pole_angle: 极点的角度 theta (弧度) 返回: b, a: 滤波器分子分母系数 (用于 scipy.signal.lfilter) """ r = pole_magnitude theta = pole_angle # 极点: p = r * exp(j*theta) # 零点: z = (1/r) * exp(j*theta) (关于单位圆镜像对称) # 系统函数: H(z) = (z^{-1} - (1/r)*exp(-j*theta)) / (1 - r*exp(j*theta)*z^{-1}) # 对于实系数滤波器,极点必须共轭成对。这里我们设计一个实系数一阶全通,极点必须在实轴上。 # 因此 theta 只能是 0 或 pi。我们假设 theta=0 (实轴正方向)。 if not np.isclose(theta, 0): print("注意:为简化,此函数设计实系数全通,极点角度应为0。使用角度0。") theta = 0 # 实极点 a = r a = r # 系统函数标准形式: H(z) = (-a + z^{-1}) / (1 - a*z^{-1}) # 转换为 scipy 的 lfilter 系数: b[0]*z^0 + b[1]*z^{-1} / (a[0]*z^0 + a[1]*z^{-1}) b = [-a, 1.0] # 分子系数 a_coeff = [1.0, -a] # 分母系数 return b, a_coeff # 设计参数 r = 0.9 # 极点模长,接近1则相位变化剧烈 b, a = design_allpass(r, 0) # 计算频率响应 fs = 1000 w, h = signal.freqz(b, a, worN=2048, whole=False, fs=fs) freq = w magnitude = np.abs(h) phase = np.angle(h) group_delay = -np.diff(np.unwrap(phase)) / np.diff(w) # 近似计算群延迟 group_delay_freq = w[:-1] + np.diff(w)/2 # 群延迟对应的频率点 # 绘图 fig, axes = plt.subplots(2, 2, figsize=(12, 8)) # 幅频响应 axes[0, 0].plot(freq, magnitude, 'b') axes[0, 0].set_title('幅频响应 |H(f)|') axes[0, 0].set_xlabel('频率 [Hz]') axes[0, 0].set_ylabel('幅度') axes[0, 0].grid(True) axes[0, 0].axhline(y=1, color='r', linestyle='--', alpha=0.5) axes[0, 0].set_ylim(0.95, 1.05) # 相频响应 axes[0, 1].plot(freq, np.unwrap(phase), 'g') axes[0, 1].set_title('相频响应 (展开后)') axes[0, 1].set_xlabel('频率 [Hz]') axes[0, 1].set_ylabel('相位 [弧度]') axes[0, 1].grid(True) # 群延迟 axes[1, 0].plot(group_delay_freq, group_delay, 'm') axes[1, 0].set_title('群延迟 τ_g(f)') axes[1, 0].set_xlabel('频率 [Hz]') axes[1, 0].set_ylabel('延迟 [样本]') axes[1, 0].grid(True) axes[1, 0].axhline(y=(1-r**2)/(1-2*r*np.cos(0)+r**2), color='k', linestyle='--', alpha=0.5, label=f'理论DC群延迟: {(1-r**2)/(1-2*r*1+r**2):.2f}') axes[1, 0].legend() # 零极点图 axes[1, 1].axhline(y=0, color='k', linestyle='-', alpha=0.2) axes[1, 1].axvline(x=0, color='k', linestyle='-', alpha=0.2) # 画单位圆 theta = np.linspace(0, 2*np.pi, 100) axes[1, 1].plot(np.cos(theta), np.sin(theta), 'k:', alpha=0.5) # 画极点 (x) 和零点 (o) pole = r * np.exp(1j*0) zero = 1/r * np.exp(1j*0) axes[1, 1].plot(np.real(pole), np.imag(pole), 'rx', markersize=10, label='极点') axes[1, 1].plot(np.real(zero), np.imag(zero), 'bo', markersize=10, label='零点') axes[1, 1].set_xlim(-1.5, 1.5) axes[1, 1].set_ylim(-1.5, 1.5) axes[1, 1].set_aspect('equal') axes[1, 1].set_title('零极点图 (Z平面)') axes[1, 1].set_xlabel('实部') axes[1, 1].set_ylabel('虚部') axes[1, 1].grid(True) axes[1, 1].legend() plt.tight_layout() plt.show() print(f"设计完成。极点: {pole:.3f}, 零点: {zero:.3f}") print("验证:零点与极点关于单位圆镜像对称(零点模长 = 1/极点模长)。")通过这个设计示例,你可以直观地看到:
- 幅频响应恒为1。
- 相位响应是非线性的。
- 群延迟随频率变化(在直流附近最大,高频时变小)。
- 零极点图清晰展示了零点在单位圆外 (
1/r),极点在单位圆内 (r),关于单位圆对称。
6. 总结与学习路径
通过本文的系统梳理,你应该已经牢固掌握了以下核心要点:
- 定义区分:无失真系统要求幅频恒定且相位线性;全通系统只要求幅频恒定。无失真系统是全通系统的子集。
- 数学本质:无失真系统的系统函数是纯延迟因子;全通系统的系统函数具有零极点关于虚轴/单位圆镜像对称的结构。
- 物理意义:幅频恒定保证了各频率分量幅度关系不变;线性相位保证了各频率分量时间关系不变。两者共同作用,波形才能保真。
- 工程实现:理想无失真系统不可实现,只能近似;全通系统可物理实现,主要用于相位处理。
- 判断方法:通过分析频率响应的幅度和相位(或群延迟)特性来判断系统类型。
为了进一步深化理解,建议按以下路径学习:
- 理论延伸:学习群延迟和相位延迟的概念与计算,理解它们如何量化相位失真。研究最小相位系统与全通系统的关系。
- 工具掌握:熟练使用MATLAB、Python (
scipy.signal) 或类似工具进行系统频率响应分析、零极点绘制和滤波器设计。 - 应用实践:尝试在音频处理软件(如Audacity)或数字信号处理平台上,用全通滤波器对一段音乐进行相位调整,听感上可能变化不大(因为人耳对相位不敏感),但观察其波形已严重失真。对比使用线性相位FIR滤波器处理后的结果。
- 拓展阅读:了解分数延迟滤波器的设计,它是如何用全通或FIR结构来近似实现非整数采样延迟的,这是连接理论(无失真)与实践(近似实现)的很好案例。
全通系统与无失真系统是信号处理理论的基石概念,理解它们的区别与联系,对于后续学习滤波器设计、通信系统、音频编码等领域至关重要。希望这篇详细的梳理能帮你彻底攻克这个重点。
