(二)数字信号处理中卷积与相关的联系

卷积与相关在数字信号处理中是紧密关联的核心概念,常被放在一起讨论,因为它们的数学形式高度相似,且在应用场景上相互支撑。以下从数学关系、物理意义、应用关联三个维度解析二者的联系:

一、数学形式:“翻转 + 移位” 的孪生运算

  • 卷积的数学定义:若有两个序列 x(n) 和 h(n) ,其卷积为
    y(n)=x(n)∗h(n)=∑k=−∞∞x(k)⋅h(n−k) y(n) = x(n) * h(n) = \sum_{k=-\infty}^{\infty} x(k) \cdot h(n-k) y(n)=x(n)h(n)=k=x(k)h(nk)
    核心操作是将其中一个序列翻转( ),再移位( ),最后与另一序列逐点相乘求和
  • 相关的数学定义:若有两个序列 x(n) 和 y(n) ,其互相关为
    rxy(n)=∑k=−∞∞x(k)⋅y(n+k) r_{xy}(n) = \sum_{k=-\infty}^{\infty} x(k) \cdot y(n+k) rxy(n)=k=x(k)y(n+k)

核心操作是将其中一个序列移位( ),直接与另一序列逐点相乘求和(无翻转)。

  • 关系:若将其中一个序列取共轭并翻转,相关可转化为卷积。对于实序列,互相关可表示为 rxy(n)=x(n)∗y(−n) r_{xy}(n) = x(n) * y(-n) rxy(n)=x(n)y(n);自相关(x(n)与自身的相关)则为 rxx(n)=x(n)∗x(−n) r_{xx}(n) = x(n) * x(-n) rxx(n)=x(n)x(n)

二、物理意义:“系统响应” 与 “相似性度量” 的互补

  • 卷积的物理意义:描述线性时不变系统(LTI)的输出。若 x(n) x(n) x(n) 是输入信号,h(n) h(n) h(n) 是系统的单位脉冲响应,卷积 x(n)∗h(n) x(n)*h(n) x(n)h(n) 就是系统对输入的响应。
  • 相关的物理意义:度量两个信号的相似性。互相关 rxy(n) r_{xy}(n) rxy(n) 的峰值位置表示两个信号最相似的移位,常用于信号同步、目标检测(如雷达回波匹配);自相关则用于分析信号的周期性、平稳性。

三、应用场景:相互支撑的信号处理工具

01.卷积的应用:耳机主动降噪
场景背景

在地铁、公交等嘈杂环境中,耳机需要过滤环境噪声(如轨道摩擦声、人群喧哗声),让你清晰听到音乐 —— 这一过程靠卷积实现。

案例对应原理
  • 输入信号:耳机麦克风采集的 “音乐信号 + 环境噪声信号” 混合信号(对应公式中的 x(n) );
  • 系统响应(卷积核):工程师设计的 “低通滤波器单位脉冲响应”(对应公式中的 h(n) ),该滤波器仅允许低频的音乐信号通过,阻挡高频的噪声信号;
  • 卷积运算过程:低通滤波器( h(n) )在混合信号( x(n) )上滑动,每滑动一次,就将 “混合信号的当前数值” 与 “滤波器的权重” 相乘求和 —— 高频噪声因权重为 0 被过滤,低频音乐信号被保留;
  • 最终结果:输出仅含清晰音乐的信号,实现主动降噪。
  • 用Python实现这个过程模拟:《Python 实现耳机主动降噪卷积过程》
一、实验参数设定(贴近实际物理场景)

为模拟真实耳机降噪场景,设定以下参数(物理单位符合实际电子设备特性):

  • 时间范围:0~1 秒(单次音乐片段时长),采样频率 44100Hz(音频标准采样率)
  • 音乐信号:1kHz 正弦波(人耳敏感频率,电压幅值 0.5V,模拟耳机播放的音乐)
  • 噪声信号:白噪声(模拟地铁环境噪声,电压幅值 0.2V,功率谱密度均匀)
  • 卷积核(低通滤波器):截止频率 1.2kHz(仅保留 1kHz 音乐,过滤高频噪声),阶数 100(保证滤波效果)
二、完整 Python 代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import firwin, lfilter

# ---------------------- 1. 配置中文字体(解决中文显示问题)----------------------
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示异常

# ---------------------- 2. 设定实验参数(贴近实际物理单位)----------------------
t_duration = 1.0  # 信号总时长,单位:秒
fs = 44100  # 采样频率,单位:Hz(音频标准采样率)
t = np.linspace(0, t_duration, int(fs * t_duration), endpoint=False)  # 时间轴,单位:秒

# 音乐信号(1kHz正弦波,模拟耳机播放音乐)
music_freq = 1000  # 音乐信号频率,单位:Hz
music_amplitude = 0.5  # 音乐信号电压幅值,单位:V
music_signal = music_amplitude * np.sin(2 * np.pi * music_freq * t)

# 噪声信号(白噪声,模拟地铁环境噪声)
noise_amplitude = 0.2  # 噪声信号电压幅值,单位:V
np.random.seed(42)  # 固定随机种子,保证结果可复现
noise_signal = noise_amplitude * np.random.normal(0, 1, len(t))  # 均值0、标准差1的白噪声

# 混合信号(音乐+噪声,模拟麦克风采集的原始信号)
mixed_signal = music_signal + noise_signal

# ---------------------- 3. 设计低通滤波器(卷积核,实现降噪)----------------------
filter_cutoff = 1200  # 滤波器截止频率,单位:Hz(仅保留1kHz音乐)
filter_order = 100  # 滤波器阶数(阶数越高,滤波效果越好)
# 用FIR窗函数法设计低通滤波器(卷积核h(n))
h = firwin(filter_order, filter_cutoff, fs=fs, pass_zero='lowpass', window='hamming')

# ---------------------- 4. 卷积运算(模拟耳机降噪过程)----------------------
# 方法1:直接用numpy.convolve实现卷积(原理直观)
# denoised_signal = np.convolve(mixed_signal, h, mode='same')  # mode='same'保证输出与输入长度一致
# 方法2:用lfilter实现(更贴近实际信号处理中的滤波操作,效率更高)
denoised_signal = lfilter(h, 1.0, mixed_signal)

# ---------------------- 5. 绘制各阶段信号形态图----------------------
plt.figure(figsize=(15, 12))

# 子图1:音乐信号(正弦波)
plt.subplot(4, 1, 1)
plt.plot(t[:int(fs*0.01)], music_signal[:int(fs*0.01)], color='#2E86AB', linewidth=1.2)  # 显示前0.01秒(避免波形重叠)
plt.xlabel('时间(秒)', fontsize=11)
plt.ylabel('电压(伏)', fontsize=11)
plt.title('1. 音乐信号(1kHz正弦波)', fontsize=13, pad=10)
plt.ylim(-music_amplitude*1.2, music_amplitude*1.2)  # 限定y轴范围,突出信号形态
plt.grid(alpha=0.3)

# 子图2:噪声信号(白噪声)
plt.subplot(4, 1, 2)
plt.plot(t[:int(fs*0.01)], noise_signal[:int(fs*0.01)], color='#A23B72', linewidth=1.2)
plt.xlabel('时间(秒)', fontsize=11)
plt.ylabel('电压(伏)', fontsize=11)
plt.title('2. 噪声信号(地铁环境白噪声)', fontsize=13, pad=10)
plt.ylim(-noise_amplitude*3, noise_amplitude*3)  # 覆盖99.7%的噪声幅值
plt.grid(alpha=0.3)

# 子图3:混合信号(音乐+噪声)
plt.subplot(4, 1, 3)
plt.plot(t[:int(fs*0.01)], mixed_signal[:int(fs*0.01)], color='#F18F01', linewidth=1.2)
plt.xlabel('时间(秒)', fontsize=11)
plt.ylabel('电压(伏)', fontsize=11)
plt.title('3. 混合信号(麦克风采集的音乐+噪声)', fontsize=13, pad=10)
plt.ylim(-(music_amplitude+noise_amplitude)*1.2, (music_amplitude+noise_amplitude)*1.2)
plt.grid(alpha=0.3)

# 子图4:卷积后信号(降噪后的音乐)
plt.subplot(4, 1, 4)
plt.plot(t[:int(fs*0.01)], denoised_signal[:int(fs*0.01)], color='#C73E1D', linewidth=1.2)
plt.xlabel('时间(秒)', fontsize=11)
plt.ylabel('电压(伏)', fontsize=11)
plt.title('4. 卷积后信号(降噪后的清晰音乐)', fontsize=13, pad=10)
plt.ylim(-music_amplitude*1.2, music_amplitude*1.2)
plt.grid(alpha=0.3)

plt.tight_layout(pad=2.0)  # 调整子图间距,避免标题重叠
plt.show()

# ---------------------- 6. 输出关键参数(验证降噪效果)----------------------
print("="*60)
print("耳机主动降噪卷积实验关键参数与结果")
print("="*60)
print(f"1. 信号参数:时长={t_duration}秒,采样频率={fs}Hz")
print(f"2. 音乐信号:频率={music_freq}Hz,电压幅值={music_amplitude}V")
print(f"3. 噪声信号:电压幅值={noise_amplitude}V(白噪声)")
print(f"4. 滤波器(卷积核):截止频率={filter_cutoff}Hz,阶数={filter_order}")
print(f"5. 降噪效果:混合信号标准差={np.std(mixed_signal):.4f}V → 降噪后标准差={np.std(denoised_signal):.4f}V")
print("="*60)
三、代码关键说明(贴近实际场景)
  1. 信号参数合理性
  • 音乐信号用 1kHz 正弦波(人耳对 1~3kHz 频率最敏感,符合耳机播放的音乐特性),电压 0.5V(常见耳机输出电压范围);
  • 噪声信号用 0.2V 白噪声(模拟地铁环境噪声强度,低于音乐信号,避免完全掩盖音乐)。
  1. 卷积核设计
  • firwin设计 100 阶低通滤波器(卷积核h(n)),截止频率 1.2kHz—— 既保留 1kHz 音乐信号,又过滤高于 1.2kHz 的高频噪声(如地铁轨道摩擦声多为 2kHz 以上高频)。
  1. 可视化细节
  • 所有子图仅显示前 0.01 秒信号(约 441 个采样点),避免因时长 1 秒导致波形重叠,更清晰展示信号形态;
  • 纵轴统一用 “电压(伏)”,横轴用 “时间(秒)”,完全符合实际物理单位,直观反映信号特征。
  1. 降噪效果验证
  • 输出 “混合信号标准差” 与 “降噪后标准差”—— 标准差越小,信号越平稳(噪声越少),可清晰看到降噪后标准差显著降低,验证卷积的降噪作用。

四、运行结果解读

  • 运行结果
    在这里插入图片描述
  1. 音乐信号图:规则的正弦波,电压稳定在 ±0.5V,体现音乐信号的周期性;
  2. 噪声信号图:无规则波动,电压集中在 ±0.6V(±3σ),符合白噪声的随机特性;
  3. 混合信号图:正弦波被噪声干扰,波形起伏变大,模拟麦克风采集的原始信号;
  4. 卷积后信号图:波形回归规则正弦波,噪声大幅减少,与原始音乐信号形态接近,实现主动降噪。
    若需调整场景(如模拟更高强度噪声、不同频率音乐),可修改noise_amplitude(噪声幅值)或music_freq(音乐频率)参数,观察卷积效果的变化。
02.相关的实际应用:手机指纹解锁
场景背景

你用手机解锁时,手指按压指纹传感器,手机能快速识别 “当前指纹” 与 “预先录入的指纹” 是否匹配 —— 这个匹配过程,核心就是通过互相关运算实现的。

案例对应原理
  • 信号 1:预先录入的 “基准指纹信号”(将指纹纹理转化为明暗变化的数字序列,比如凸起纹理为 1,凹陷为 0);

  • 信号 2:解锁时采集的 “实时指纹信号”(同一方式转化的数字序列,可能因按压角度略有偏移);

  • 相关操作:计算两个指纹信号的互相关 —— 将实时信号逐位移位,与基准信号逐点对比(相乘求和),找到互相关值最大的位置。

  • 最终结果
    当互相关值达到预设阈值(说明两个信号高度相似),手机判定 “指纹匹配” 并解锁;若相关值过低(信号差异大),则拒绝解锁。这就是相关 “度量信号相似性” 在日常设备中的典型应用。

总结

卷积与相关因数学形式的相似性、物理意义的互补性、应用场景的联动性,成为数字信号处理中 “孪生概念”。理解二者的联系,能更高效地掌握信号的 “系统响应建模” 与 “相似性分析”,是学习 DSP(数字信号处理)的关键基石。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值