下面研究一下conv2函数中的‘valid’参数的用法。
The formula is c=conv2(a,b,’valid’)
Valid:Returns only those parts of the convolution that are computed without the zero-padded edges. Using this option, c has size [ma-mb+1,na-nb+1] when all(size(a) >= size(b)). Otherwise conv2 returns [].
假设h=[h(1) h(2) h(3) h(4)],x=[x(1) x(2) x(3) x(4) x(5) x(6) x(7)],计算y=conv2(x,h,’valid’),它的计算过程可由下图表示,其中length(y)= 7-4+1。
图2
下面来看看dwt函数的工作过程
假设x=[x(1) x(2) x(3) x(4) x(5) x(6) x(7)],计算y=dwt(x,’db2’)。
其计算过程主要由两个部分组成:
第一部分:边缘延拓,它主要由函数wextend完成。
第二部分:卷积运算,它主要由函数conv2完成。
先看第一部分,仔细分析子程序部分,函数wextend的用法为
y=wextend('1D','sym',x,3);
这样得到的y=[ x(3) x(2) x(1) x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(7) x(6) x(5)]
在看第二部分,仔细分析子程序部分,核心语句有z=conv2(y,Lo_D,'valid'); 这里设Lo_D=[h(1) h(2) h(3) h(4)]。
结合图2所示对conv2函数用法的介绍,绘制下图表示该处卷积的计算过程。