数字信号处理 ch5.6快速卷积
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算量(复数乘法): 1) H(k) = FFT [h(n)] 2) X(k) =FFT [x(n)] 3) Y(k) = H(k)X(k) 4) y(n) = IFFT [Y(k)] N /2*log2N N /2*log2N
N
N /2*log2N
mF N (1 3/ 2*log 2 N )
比较直接计算和FFT法计算的运算量
md ML Km mF N (1 3/ 2*log 2 N )
讨论:
1)当 M L
则N M L 1 2 M
M M Km (5/ 2 3/ 2*log 2 M) 5 3log 2 M 2
2)当 L M
则N M L 1 L
M Km 1 3/ 2 log 2 L
L
Km
重叠相加法 需采用分段卷积 重叠保留法
• x(n)、h(n) 两序列长度比较接近或相等的时候 可以用圆周卷积计算线性卷积; • 如果x(n)、h(n)长度相差较多, 例如, h(n) 为某滤 波器的单位脉冲响应, 长度有限, 用来处理一个 很长的输入信号 x(n), 或者处理一个连续不断的 信号,按上述方法, h(n) 要补许多零再进行计 算,计算量有很大的浪费,或者根本不能实现。 • 为了保持快速卷积法的优越性,可将 x(n) 分为 许多段,每段的长度与 h(n) 接近 , 处理方法有两 种:重叠相加法和重叠保留法。
0 -2 -1 0
2 0 0 -1
-3 1 -2 0
-2 0 0 1
3 1 2 0
重叠相加法
1 0 -1 0 2 -3 -2 3
3
0 -3 -2
0
1
1
0
1
0 -2 0 2
1 -1 -1
1
0 -1
0 -1
0
1
0
1
0 -1
0
2
0 -2
0 -2
0
2
1
0
-1
0 -1
0
1
0
-1
0
1
2、重叠保留法 x =[0 0 0 1 1 1 1 3 3 3 3 1 1 1 2 2 2 2 1 1 1 1 0 0]
xk 00011113 11333311 31112222 22211110 11000000
yk
-3 -2 2 0 3 2 -1 -2 -2 1 0 2 -1 0 0 -2 1 0 1 -1 0 0 1 0 0 -2 -1 0 0 2 0 0 -1 0
1 -2 2 1 1 0
-3 -2
2 0
3
2 -1 -2 -2
i
3)Yi (k ) X i (k ) H (k )
5.6.3 重叠保留法
• 将x (n)分为相互重叠的、长为L的子段xk(n),每个子段 不补零,直接作N = L 圆周卷积,将结果中的前 M 1 个不等于线性卷积值的点直接舍去。 , h (n) h0 h1 hM 1 x (n) x0 x1 x L 1
添M1个零
x (n)
长度N=L
长度N=L
重叠 M1
重叠 M1
长度N=L
重叠 M1
长度N=L
...... • 重叠保留法与重叠相加法的计算量差不多,但省去了 重叠相加法最后的相加运算。
x0 ( n) :
长度N
NL
h (n) :
长度M
y(n) x0 (n)* h (n) :
y ( n ) h ( m) x ( n m)
m 0
M 1
直接计算的乘法运算量为:
md LM
FFT法:以圆周卷积代替线性卷积 令
N 2m M L 1 x ( n) 0 n L 1 x ( n) L n N 1 0
h( n) 0 n M 1 h( n) M n N 1 0 则 y ( n) x ( n) * h( n) x ( n) N h( n)
x (n) x0
x1
5.6.2 重叠相加法 x L 1
h (n) h0 h1 hM 1
x (n)
长度L
长度L
长度L
长度L ......
每段计算:
x k (n ) :
长度L
补零
N
h (n) :
长度M 补零
N
yk (n) xk (n)* h (n) :
5.6 线性卷积的FFT算法 ——快速卷积
概述
• 线性卷积是求离散系统响应的主要方法之一,许 多重要应用都建立在这一理论基础上,如卷积滤 波等。 • 圆周卷积是唯一能借助计算机以提高运算速度 的卷积运算 • 当满足一定条件时可以用圆周卷积实现线性卷 积
5.6.1 FFT的快速卷积算法
若L点x(n),M点h(n), 则直接计算其线性卷积y(n)
i 0
yi n , M 1 n N 1 y i n 其它 0,
'
P126,习题5.12
求y = x*h N=8 1、重叠相加法;2、重叠保留法
1、重叠相加法
xk 11113 33311 12222 1 1110
yk 1 0 3 1 1 0 1 0
-1 -3 -1 -1
利用计算机快速计算线性卷积,即算圆周卷积:
y ( n) x ( n)
求IFFT
N
h( n)
补零至 N 补零至 N 求FFT 求FFT
Y (k ) X (k ) H (k )
y ( n) x ( n)
求IFFT
N
h( n)
补零至 N 补零至 N 求FFT 求FFT
Y (k ) X (k ) H (k )
y (n) yi (n) [ xi (n) * h(n)] [ xi ( n)
i i i
N
h( n)]
) 步骤:1 X i (k ) FFT [ xi (n)]
2)H (k ) FFT [h(n)]
4)yi (n) IFFT [Yi (k )]
5)y (n) yi ( n)
wenku.baidu.com
长度L+M-1
N L M 1
• 由分段卷积的各段相加构成总的卷积输出
对长序列x(n)分段,每段为L点
L与h(n)的长度M等数量级
x(n) iL n (i 1) L 1 xi (n) 其它n 0
令 N 2m M L 1
i 0,1,...
1
0 2 -1 0
0
-2 1 0 1
-1
0 0 1 0
0
-2 -1 0 0
2
0 0 -1 0
1 -2 2 1 1 0
1
0
-1
0
2
0
-2
0
-2
0
2
1
0
-1
0
-1
0
1
0
-1
0
1
• 作业
– 5.9 – 5.11
分段 卷积
x[n i( N M +1)] 0 n N 1 xi (n) 0 其它n
yi (n) xi (n) * h(n) xi (n)
N
h(n)
舍弃yi(n)的前M-1 个点,再将yi(n)顺 次连接,即得y(n)
y n y 'i n i N M 1
y(n) x0 (n)
N
长度L+M1
(线性卷积)
h(n) :
长度N=L
长度M1
(圆周卷积)
M 1个零
x (n)
长度N=L
y(n) x0 (n) * h (n) :
长度M1
长度M1
长度M1
长度M1
注意下一段和上段重叠M1点
......
0 0 n M 2 右移序列 x(n) ' M 1 n x [n ( M 1)]