线性卷积matlab代码,线性卷积的FFT算法及其matlab实现

该文介绍了如何利用快速傅里叶变换(FFT)算法来高效地计算线性卷积,特别是在序列长度较大时,相比直接计算具有显著优势。当两个序列长度接近或相等时,通过补零延长序列并进行FFT运算,然后进行内积得到线性卷积结果。对于长度相差较大的序列,可以将长序列分段处理,采用重叠相加法保持快速卷积的优势。
摘要由CSDN通过智能技术生成

线性卷积的FFT算法

线性卷积是求离散系统响应的主要方法之一,许多重要应用都建立在这一理论基础上,如卷积滤波等。

以前曾讨论了用循环卷积计算线性卷积的方法归纳如下:

将长为N

2的序列x(n)延长到L,补L-N

2

个零

将长为N

1的序列h(n)延长到L,补L-N

1

个零

如果L≥N1+N2-1,则循环卷积与线性卷积相等,此时,可有FFT计算线性卷积,方法如下:

a.计算X(k)=FFT[x(n)]

b.求H(k)=FFT[h(n)]

c.求Y(k)=H(k)Y(k) k=0~L-1

d.求y(n)=IFFT[Y(k)] n=0~L-1

可见,只要进行二次FFT,一次IFFT就可完成线性卷积计算。计算表明,L>32时,上述计算线性卷积的方法比直接计算线卷积有明显的优越性,因此,也称上述循环卷积方法为快速卷积法。

上述结论适用于x(n),h(n)两序列长度比较接近或相等的情况,如果

x(n),h(n)长度相差较多,例如,h(n)为某滤波器的单位脉冲响应,长度有限,用来处理一个很长的输入信号x(n),或者处理一个连续不断的信号,按上述方法,h(n)要补许多零再进行计算,计算量有很大的浪费,或者根本不能实现。为了保持快速卷积法的优越性,可将x(n)分为许多段后处理,每小段的长与h(n)接近,其处理方法有两种:

(1)重叠相加法——由分段卷积的各段相加构成总的卷积输出

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值