数字信号处理卷积编程实现 ( 卷积计算原理 | 卷积公式计算 | 使用 matlab 计算卷积 | 使用 C 语言实现卷积计算 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字信号处理卷积编程实现 ( 卷积计算原理 | 卷积公式计算 | 使用 matlab 计算卷积 | 使用 C 语言实现卷积计算 )相关的知识,希望对你有一定的参考价值。
文章目录
一、卷积计算原理
对于 线性时不变系统 ( LTI - Linear time-invariant ) 来说 ,
假设 x ( n ) x(n) x(n) 是 LTI 系统的 " 输入序列 " , y ( n ) y(n) y(n) 是 " 输出序列 " ,
则有 :
y ( n ) = ∑ m = − ∞ + ∞ x ( m ) h ( n − m ) = x ( n ) ∗ h ( n ) y(n) = \\sum^+\\infty_m = -\\infty x(m) h(n-m) = x(n) * h(n) y(n)=m=−∞∑+∞x(m)h(n−m)=x(n)∗h(n)
线性时不变系统 ( LTI - Linear time-invariant ) 的
" 输出序列 "
等于
" 输入序列 " 与 " 系统单位脉冲响应 " 的 线性卷积 ;
输出序列 的元素个数 : 输 出 序 列 元 素 个 数 = 输 入 序 列 元 素 个 数 + 单 位 脉 冲 响 应 序 列 元 素 个 数 − 1 输出序列元素个数 = 输入序列元素个数 + 单位脉冲响应序列元素个数 - 1 输出序列元素个数=输入序列元素个数+单位脉冲响应序列元素个数−1
二、卷积计算
给定 输入序列 :
x ( n ) = 1 , 2 [ 0 , 1 ] x(n) = \\1,2\\_[0, 1] x(n)=1,2[0,1]
单位脉冲响应 :
h ( n ) = 1 , 2 [ 0 , 1 ] h(n) = \\1,2\\_[0, 1] h(n)=1,2[0,1]
计算卷积 : x ( n ) ∗ h ( n ) x(n) * h(n) x(n)∗h(n) ;
卷积结果序列对应的元素个数是 2 + 2 − 1 = 3 2 + 2 - 1 = 3 2+2−1=3
根据如下 卷积 公式 :
y ( n ) = ∑ m = − ∞ + ∞ x ( m ) h ( n − m ) = x ( n ) ∗ h ( n ) y(n) = \\sum^+\\infty_m = -\\infty x(m) h(n-m) = x(n) * h(n) y(n)=m=−∞∑+∞x(m)h(n−m)=x(n)∗h(n)
x ( n ) ∗ h ( n ) = ∑ m = − ∞ + ∞ x ( m ) h ( n − m ) x(n) * h(n) = \\sum^+\\infty_m = -\\infty x(m) h(n-m) x(n)∗h(n)=m=−∞∑+∞x(m)h(n−m)
1、计算 y(0)
计算 y ( 0 ) y(0) y(0) :
∑ m = − ∞ + ∞ x ( m ) h ( 0 − m ) \\sum^+\\infty_m = -\\infty x(m) h(0-m) m=−∞∑+∞x(m)h(0−m)
m m m 取值 [ − ∞ , + ∞ ] [-\\infty, +\\infty] [−∞,+∞]
m < 0 m < 0 m<0 时 , 有 x ( m ) = 0 x(m) = 0 x(m)=0 , 则 x ( m ) h ( n − m ) = 0 x(m) h(n-m) = 0 x(m)h(n−m)=0 , 累加没有意义 ;
m = 0 m = 0 m=0 时 , 有 x ( 0 ) h ( 0 − 0 ) = x ( 0 ) h ( 0 ) = 1 × 1 = 1 x(0)h(0 - 0) = x(0)h(0) = 1 \\times 1 = 1 x(0)h(0−0)=x(0)h(0)=1×1=1
m ≥ 1 m \\geq 1 m≥1 时 , 有 h ( n − m ) = h ( 0 − m ) = 0 h(n - m) = h(0 - m) = 0 h(n−m)=h(0−m)=0 , 则 x ( m ) h ( n − m ) = 0 x(m)h(n - m) = 0 x(m)h(n−m)=0 , 累加没有意义 ;
最终 :
y ( 0 ) = x ( 0 ) h ( 0 ) = 1 × 1 = 1 y(0) = x(0)h(0)= 1 \\times 1 = 1 y(0)=x(0)h(0)=1×1=1
2、计算 y(1)
计算 y ( 1 ) y(1) y(1) :
∑ m = − ∞ + ∞ x ( m ) h ( 1 − m ) \\sum^+\\infty_m = -\\infty x(m) h(1-m) m=−∞∑+∞x(m)h(1−m)
m m m 取值 [ − ∞ , + ∞ ] [-\\infty, +\\infty] [−∞,+∞]
m < 0 m < 0 m<0 时 , 有 x ( m ) = 0 x(m) = 0 x(m)=0 , 则 x ( m ) h ( n − m ) = 0 x(m) h(n-m) = 0 x(m)h(n−m)=0 , 累加没有意义 ;
m = 0 m = 0 m=0 时 , 有 x ( m ) h ( n − m ) = x ( 0 ) h ( 1 − 0 ) = x ( 0 ) h ( 1 ) = 1 × 2 = 2 x(m) h(n-m) = x(0)h(1 - 0) = x(0)h(1) = 1 \\times 2 = 2 x(m)h(n−m)=x(0)h(1−0)=x(0)h(1)=1×2=2
m = 1 m = 1 m=1 时 , 有 x ( m ) h ( n − m ) = x ( 1 ) h ( 1 − 1 ) = x ( 1 ) h ( 0 ) = 2 × 1 = 2 x(m) h(n-m) = x(1)h(1 - 1) = x(1)h(0) = 2 \\times 1 = 2 x(m)h(n−m)=x(1)h(1−1)=x(1)h(0)=2×1=2
m ≥ 2 m \\geq 2 m≥2 时 , 有 h ( n − m ) = h ( 2 − m ) = 0 h(n - m) = h(2 - m) = 0 h(n−m)=h(2−m)=0 , 则 x ( m ) h ( n − m ) = 0 x(m)h(n - m) = 0 数字信号处理线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 线性卷积计算方法列举 | 线性卷积计算案例一 | 根据 线性卷积 定义直接计算 卷积 )