作者:风一样的骨头gg | 来源:互联网 | 2024-10-19 16:55
文章目录前言一、卷积的物理意义及性质1.物理意义2.卷积性质二、线性卷积定义及计算方法1.定义公式2.适用范围3.计算方法三、循环卷积定义及计算方法1.定义公式2.适用范围3.计算
文章目录 前言 一、卷积的物理意义及性质 二、线性卷积定义及计算方法 三、循环卷积定义及计算方法 四、周期卷积定义及适用范围 总结 1. 线性卷积和循环卷积的关系 2. 三者之间的关系 参考
前言 本文首先介绍了卷积的物理意义及卷积的性质 (交换律、结合律、分配律),并简单阐述了线性时不变系统;之后分别就定义、适用范围及计算方法 对线性卷积、循环卷积、周期卷积进行了介绍;最后总结了线性卷积、循环卷积、周期卷积之间的关系 。
一、卷积的物理意义及性质 1. 物理意义 卷积 的物理意义 :一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加 。
对于线性时不变系统 ,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应加权叠加 ,就直接得到了输出信号。
线性时不变系统 :既满足叠加原理 又具有时不变特性 。 1)叠加定理 :f(a+b)=f(a)+f(b)f(a+b) = f(a) + f(b) f ( a + b ) = f ( a ) + f ( b ) ; 2)时不变特性 :特定输入的输出结果不会随时间变化。
2. 卷积性质 卷积积分满足交换律、结合律以及分配律: 1)交换律 :f(t)∗g(t)=g(t)∗f(t)f(t)∗g(t)=g(t)∗f(t) f ( t ) ∗ g ( t ) = g ( t ) ∗ f ( t ) ; 2)结合律 :f(t)∗g(t)∗h(t)=f(t)∗(g(t)∗h(t))f(t)∗g(t)∗h(t)=f(t)∗(g(t)∗h(t)) f ( t ) ∗ g ( t ) ∗ h ( t ) = f ( t ) ∗ ( g ( t ) ∗ h ( t ) ) ; 3)分配律 :f(t)∗(g(t)+h(t))=f(t)∗g(t)+f(t)∗h(t)f(t)∗(g(t)+h(t))=f(t)∗g(t)+f(t)∗h(t) f ( t ) ∗ ( g ( t ) + h ( t ) ) = f ( t ) ∗ g ( t ) + f ( t ) ∗ h ( t ) ;
二、线性卷积定义及计算方法 1. 定义公式 y(n)=x(n)∗h(n)=∑x(k)h(n−k)y(n)=x(n)∗h(n)= ∑x(k)h(n−k) y ( n ) = x ( n ) ∗ h ( n ) = ∑ x ( k ) h ( n − k )
线性时不变离散系统 中,若序列x(n)x(n) x ( n ) 是系统的输入信号 ,h(n)h(n) h ( n ) 是系统在单位脉冲作用下的单位脉冲响应 ,由于输入离散时间序列x(n)x(n) x ( n ) 可表示为一系列脉冲的线性组合,根据线性系统的齐次性 和可加性 ,x(n)x(n) x ( n ) 作用于系统所引起的零状态响应y(n)y(n) y ( n ) 就是序列x(n)x(n) x ( n ) 与h(n)h(n) h ( n ) 的卷积和。
2. 适用范围 线性卷积表示一个信号通过一个系统的输出,这个信号可以是无限长 的,也可以是有限长 的,可以的离散 的也可以是连续 的。
3. 计算方法 被卷积序列x[n]x[n] x [ n ] 与h[n]h[n] h [ n ] 的序列长度分别为MM M 和NN N ,则卷积得到的y[n]y[n] y [ n ] 序列长为L=M+N−1L=M+N-1 L = M + N − 1 ,计算线性卷积的简单方法为进位保留法 。
C语言实现代码:
void convolution ( double input1[ ] , double input2[ ] , double output[ ] , int n, int m) { int k &#61; 0 ; int i &#61; 0 ; int j &#61; 0 ; for ( k &#61; 0 ; k < m &#43; n - 1 ; k&#43;&#43; ) { output[ k] &#61; 0 ; } for ( i &#61; 0 ; i < m; i&#43;&#43; ) { for ( j &#61; 0 ; j < n; j&#43;&#43; ) { output[ i &#43; j] &#43;&#61; input1[ i] * input2[ j] ; } } }
三、循环卷积定义及计算方法 1. 定义公式 设序列h(n)h(n) h ( n ) 和x(n)x(n) x ( n ) 的长度分别为NN N 和MM M &#xff0c;h(n)h(n) h ( n ) 与x(n)x(n) x ( n ) 的LL L 点循环卷积定义为&#xff1a; 式中&#xff0c;LL L 称为循环卷积区间长度&#xff0c;L≥max[N,M]L≥max[N,M] L ≥ m a x [ N , M ] &#xff0c;x((n−m))Lx\big((n-m)\big)_L x ( ( n − m ) ) L 是以LL L 为周期的周期信号&#xff0c;nn n 和mm m 的变化区间均是[0&#xff0c;L−1][0&#xff0c;L-1] [ 0 &#xff0c; L − 1 ] 。
2. 适用范围 循环卷积&#xff08;圆周卷积&#xff09;针对离散信号 &#xff0c;是一个有限长序列 通过一个系统后的输出序列&#xff0c;在计算这个序列之前&#xff0c;必须先定义卷积运算的点数 &#xff0c;不然这个运算就无法确定。
3. 计算方法 循环卷积相较于线性卷积区别在于卷积结果的序列长度与被卷积序列长度&#xff08;输入信号&#xff09;相同 。由上面公式可知&#xff0c;直接计算比较复杂&#xff0c;通常采用线性卷积、矩阵相乘或FFT的方法计算循环卷积 。
1&#xff09;利用线性卷积计算循环卷积 2&#xff09;利用循环卷积矩阵计算循环卷积 取L&#61;max(M,N)L &#61; max(M,N) L &#61; m a x ( M , N ) &#xff0c;则x(n)x(n) x ( n ) 的LL L 点“循环卷积矩阵 ”&#xff0c;其特点是&#xff1a;
① 第一行是序列 {x(0),x(1),x(2),⋯,x(L−1)x(0),x(1),x(2),⋯,x(L−1) x ( 0 ) , x ( 1 ) , x ( 2 ) , ⋯ , x ( L − 1 ) } 的循环倒相序列。 注&#xff1a;如果x(n)x(n) x ( n ) 的长度MM < L &#xff0c;则需要在x(n)x(n) x ( n ) 末尾补 L-M 个零后&#xff0c;再形成第一行的循环倒相序列&#xff1b; ② 第一行以后的各行均是前一行向右循环移1位形成的&#xff1b; ③ 矩阵的各主对角线上的序列值均相等。
3&#xff09;利用FFT计算循环卷积 ① 4点DFT
x1&#61; [ 1 , 2 , 3 , 4 ] ; x2&#61; [ 1 , 2 , 3 ] ; X1&#61; fft ( x1, 4 ) ; X2&#61; fft ( x2, 4 ) ; Y&#61; X1. * X2; y&#61; ifft ( Y) ;
② 6点DFT
x1&#61; [ 1 , 2 , 3 , 4 ] ; x2&#61; [ 1 , 2 , 3 ] ; X1&#61; fft ( x1, 6 ) ; X2&#61; fft ( x2, 6 ) ; Y&#61; X1. * X2; y&#61; ifft ( Y) ;
四、周期卷积定义及适用范围 1. 定义公式
2. 适用范围 周期卷积 针对离散信号 &#xff0c;是无限长周期离散信号 通过一个离散系统后的输出。
总结 设卷积序列x[n]x[n] x [ n ] 与h[n]h[n] h [ n ] 的序列长度分别为MM M 和NN N &#xff0c;则卷积得到的y[n]y[n] y [ n ] 序列长为LL L
1. 线性卷积和循环卷积的关系 1&#xff09;当L 2&#xff09;当L&#61;N&#43;M-1时&#xff0c;循环卷积&#61;线性卷积&#xff1b; 3&#xff09;当L>N&#43;M-1时&#xff0c;循环卷积是线性卷积末尾补L-(N&#43;M-1)个零&#xff1b;
2. 三者之间的关系 1&#xff09;周期卷积是线性卷积以一定序列长度&#xff08;设为L&#xff09;为周期的周期延拓。 2&#xff09;对周期卷积取主值序列得到循环卷积。
参考 https://blog.csdn.net/abc123mma/article/details/120251384 https://blog.csdn.net/weixin_45810064/article/details/121322948? https://blog.csdn.net/qq_39408570/article/details/110429928 https://blog.csdn.net/qq_45732223/article/details/110526379