如何选取卷积生成序列中的有用部分

卷积在信号处理中用于分析线性时不变系统,但全长度卷积包含无效部分。解决方法包括周期延拓和多条数据首尾相接法,确保有效卷积内容与原序列长度一致。MATLAB的'valid'选项可获取有效部分,C语言实现需手动计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

卷积原理

在信号与系统中,卷积积分是线性时不变系统分析的一个重要工具,具体是通过两个函数f和g生成第三个函数,表征函数f与g经过翻转和平移的重叠部分的面积。

卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果y(n)=x(n)h(n),其中星号表示卷积。当时序n=0时,序列h(-i)是h(i)的时序i取反的结果;时序取反使得h(i)以纵轴为中心翻转180度,所以这种相乘后求和的计算法称为卷积和,简称卷积。另外,n是使h(-i)位移的量,不同的n对应不同的卷积结果。

如果卷积的变量是函数x(t)和h(t),则卷积的计算变为y(t)=x(t)h(t),其中p是积分变量,积分也是求和,t是使函数h(-p)位移的量,星号表示卷积。

已知信号长度为M的时间序列{x(i), i=1,M}与长度为N的近似理想脉冲响应滤波器{h(i),i=1,N}的卷积长度为M+N-1的序列{y(i),i=1,M+N-1}。实际上只有中间的M-N+1的长度是有效卷积的内容。而两端各有N/2的长度,是部分{h(i)}和{x(i)}乘积求和的结果,是两个脉冲函数,这两端的部分不是我们想要的。

在实际应用中,我们希望得到的{y(i)},不仅能够在长度上与{x(i)}一致,而且在内容上也全部是有效的。MATLAB中conv(x,h,flag)的函数flag有三个选项“full”,”same”和“valid”。在默认情况下是“full”全部长度即M+N-1,完整的调用格式为conv(x,h,’full’)。 ‘valid’选项的长度只M-N+1, 其内容就是’same’和‘full’的中间M-N+1的部分。而‘same’中的前首尾两端各N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值