数字信号处理DSP基础篇(一)

数字信号处理DSP基础篇(一)

  • 长时间序列的卷积运算加速方法
    • 时域卷积
    • 频域分段卷积

长时间序列的卷积运算加速方法

时域卷积

我们对长时间序列做卷积运算时通常伴随着较大的运算量,本文介绍了一种基于信号分段和FFT变换的时间卷积方法,可以有效提高运算效率。

  1. 时域卷积原理
    假设卷积公示为 y ( n ) = x ( n ) ∗ h ( n ) \bm{y}(n) = \bm{x}(n) * \bm{h}(n) y(n)=x(n)h(n),其中 x ( n ) = [ x 1 , x 2 , . . . , x N ] T , h ( n ) = [ h 1 , h 2 , . . . , h M ] T \bm{x}(n)=[x_1,x_2,...,x_N]^T, \bm{h}(n) = [h_1,h_2,...,h_M]^T x(n)=[x1,x2,...,xN]T,h(n)=[h1,h2,...,hM]T,则 y ( n ) \bm{y}(n) y(n)的长度为 N + M − 1 N+M-1 N+M1,卷积过程的图解为:

数字信号处理DSP基础篇(一)_第1张图片
2. 时域卷积原理
该过程包括 M ∗ ( N + M − 1 ) M*(N+M-1) M(N+M1)次乘法, M ∗ ( N + M − 1 ) M*(N+M-1) M(N+M1)次加法。

频域分段卷积

  1. 频域卷积原理
    思路:对长序列 x ( n ) \bm{x}(n) x(n)进行分段处理,对每一段序列 x i ( n ) \bm{x}^i(n) xi(n)进行FFT变换得到 X i ( k ) \bm{X}^i(k) Xi(k),其中 i i i表示第 i i i段。将 X i ( k ) \bm{X}^i(k) Xi(k) h ( n ) \bm{h}(n) h(n)的FFT变换结果相乘得到 Y i ( k ) \bm{Y}^i(k) Yi(k),接着对 Y i ( k ) \bm{Y}^i(k) Yi(k)进行反傅里叶变换 y i ( n ) \bm{y}^i(n) yi(n),最后将 y i ( n ) \bm{y}^i(n) yi(n)进行整合重构。整个过程的图解为:
    数字信号处理DSP基础篇(一)_第2张图片
    要点:
  • Nfft应当满足 N f f t = N x + N h − 1 Nfft = N_x + N_h - 1 Nfft=Nx+Nh1,因为分段信号 x i ( n ) \bm{x}^i(n) xi(n) h ( n ) \bm{h}(n) h(n)的卷积结果长度为 N x + N h − 1 N_x+N_h-1 Nx+Nh1,如果 N f f t < N x + N h − 1 Nfft < N_x + N_h - 1 Nfft<Nx+Nh1,会出现混叠的现象,无法恢复正确的信号 y i ( n ) \bm{y}^i(n) yi(n)
  1. 运算量
    由于 N N N点FFT的运算量为 log ⁡ 2 N 2 / 2 \log_2 N^2/2 log2N2/2次复数乘法, log ⁡ 2 N 2 \log_2 N^2 log2N2次复数加法,所以分段频域卷积的计算量为:
    复 数 乘 法 : N f r m ∗ ( 3 ∗ log ⁡ 2 N f f t 2 / 2 + N x ) 复 数 加 法 : N f r m ∗ ( 3 ∗ log ⁡ 2 N f f t 2 ) 复数乘法:N_{frm}*(3*\log_2 N_{fft}^2/2 + N_x) \\ 复数加法:N_{frm}*(3*\log_2 N_{fft}^2) :Nfrm(3log2Nfft2/2+Nx):Nfrm(3log2Nfft2)
    其中 N f r m = ⌊ N / N x ⌋ N_{frm} = \lfloor N/N_x \rfloor Nfrm=N/Nx。所以,频域分段卷积比时域卷积的运算量小许多

你可能感兴趣的:(信号与系统)