理想低通滤波器,振铃现象是因为sinc函数,而sinc函数是因为例4.1的简单函数的傅里叶变换得到的。经过我的计算,简单函数的傅里叶反变换也得到sinc函数。这里的频率域滤波器因为是二个值的,所以类似简单函数,反变换之后得到的空间域滤波器是sinc函数,但是事实不只是如此,因为简单函数需要的是连续的,这里是离散的点,实际上需要简单函数乘以取样函数,就是冲激串,单位间隔为1,再进行反变换,我观察了冲激串定义公式4.2-14和傅里叶变换公式4.2.5小节的上面内容,发现冲激串反变换和变换得到的公式是一样的。所以理想低通滤波器的反变换h(x)=sincF-1(S
T)=
sinc(x-m/
T, y-n/
T),但是这也不对。因为图像是PxQ个点列,冲激串范围改成PxQ就可以了。具体的计算过程我给不出来,书上这样说:
实际上计算过程非常的复杂,我还没想通,但是肯定不是书上写的这么简单。我在说一下,图4.43是瞎画的,和一边的解释对应不上,画错了。
我现在给出一维具体的计算过程:
首先模版在频率域上是M的点列。在中心处M/2的位置有白色点列范围为[M/2-D0, M/2+D0]。
函数为H(u)=1, u∈[M/2-D0, M/2+D0]。H(u)=0, u∈[0, M] - [M/2-D0, M/2+D0], 同时u∈Z。
同时把这个函数考虑为周期函数。
现在考虑如何从连续函数得到这个离散函数。先考虑在区间[0,M]的函数,因为后面可以使用中心化。
H0(u)=1, u∈[-M/2,M/2];others H0(u)=0。注意连续函数的傅里叶变换不是周期函数,但是离散函数是。
设sT表示冲激串,这里的
T是什么呢?实际上并不知道电信号的时间间隔,那就不管,反正在这里没有影响。
H0(u)*sT是什么意思呢?并没有任何意义,只有积分才有意义。
H1(u)=H0(v)*
(v-u
T)dv=H0(u
T), 这表示只取[-M/2,M/2]区间的整数位置,其他位置的值不存在,
T在这里不影响,不管。问题是需要的是H(u), 这里还差一点。
那么只需要H0再改一下为
H0(u)=1, u∈[-D0/2,D0/2];others H0(u)=0,总之u属于R。
所以h(u)=H1(u)的离散傅里叶反变换,但是我不打算用离散的形式继续计算,因为带有指数看不清楚,使用另外的方式计算如下。
根据书上的公式4.4-1和4.4-2,
h(t)=H0(v)*s
T(v)*e^(j2
tv)dv=
H0(v)*
(v-n
T)*e^(j2
tv)dv
=H0(n
T)*e^(j2
tn
T)=H0(u)的反变换和s
T的反变换的卷积(这两个都是几乎处处连续函数),虽然我限制到了M/2的范围,但是实际上还是D0/2的范围。问题是t要取M个点而不是D0个点,所以应该是限制到M,而不是D0。
h(t)=H0(v)*s
T(v)*e^(j2
tv)dv
H0(u)的反变换h0(t)=D0/2*sinc(tD0), 我计算过了书上的例4.1的函数的傅里叶变换和反变换是一样的。
sT的反变换=s
T的变换=(1/
T)
(t-n/
T)。
所以h(t)=(D0/(2
T))sinc(
D0(t-n/
T))。卷积运算居然不知道是M个离散的点,这和公式4.3-5类似的,但是明明是离散函数的傅里叶反变换应该是离散的,这个函数看不出来离散性, 所以我错了吗?
我查了数学分析中的傅里叶变换,发现一直以为离散傅里叶变换可以傅里叶变换的离散形式推导出来,结果发现不是,那么从连续函数乘以冲激串得到离散函数,再进行离散傅里叶变换,可以使用离散形式的卷积定理,但是两者之间没有转换关系,不能变成一般的傅里叶变换的卷积,那我该怎么解决这个问题呢?
重写,我上面写错了。
问题似乎是到了书上的公式4.4-1和4.4.2就停止了。但是书上能继续写下去,说明了我也能继续写下去。 我之前没有理解连续傅里叶变换和离散傅里叶变换的区别,以为是一样的,结果发现不一样,但是还是能推导,只是意义要改变一下。以一维度的点列为例子
点列长度为M, 在中心有区间为[M/2-D0, M/2+D0]的点为1,其他的点均为0的频率域滤波器H(u),求该滤波器的反变换。
本来是直接求离散傅里叶反变换的,但是我觉得看的不清楚,使用连续傅里叶变换,冲激串是书上定义的冲激串,简单函数是例4.1的简单函数。但是如何得到M个取样点符合Fm本来的值呢?我做不到,因为不清楚之间的对应关系,但是肯定有。(为什么不使用离散傅里叶变换的卷积,因为连续函数做不到使用离散傅里叶变换,只有离散函数可以使用连续傅里叶变换,比如冲激串。)
那我还是只能直接看离散傅里叶反变换了。
h(t)=1/M*H(u)*e^(j2
tu/M)。但是这个空间滤波器看不出来是sinc函数和冲激串函数的卷积上的取样。我确实推导不出来,这是个问题,本来也不应该由我解决的。我只能说因为像素太小使得离散函数近似连续函数,所以使用连续函数的卷积计算得到的结果至少眼睛分不出来区别,那么, 在估算的时候使用连续傅里叶变换是可行的。
根据估算的空间模版公式h(t)=(D0/(2
T))sinc(
D0(t-n/
T))分析理想低通滤波器的效果。因为是近似,t取值为[-M/2, M/2],周期
T应该视为极大,使得在[-M/2, M/2]范围上在一个周期内,这样做是避免周期出现,既然周期
T极大,那么n的影响极小,可视为0,在一个周期内有
T个,那么h(t)
(D0/2)sinc(
D0t),这个函数其实就是简单函数的傅里叶变换,这意味着在估算的时候采样函数,也就是冲激串不需要考虑。当D0大的时候,sinc的周期变小了,看起来是变尖锐了,这和书上的低通滤波器的说法是一致的,但只是我的猜测,我确实搞不清楚,只能达到这种程度而已。但是还有一个问题是sinc函数和像素变化率真的有关系吗?书上说这个理想低通滤波器变化大的不通过模糊,而像素变化小的通过表现为和原图一样。但是我完全看不出来,这里应该有个说法的,作者也没有解释。
为了解决低通滤波器不通过像素变化大的说法,我查了数学分析的内容
连续函数的傅里叶级数的系数Cn和函数的傅里叶变换有关,w就是级数中的nw,所以,当nw大的时候,f(nw)表示的是Cn,这个是连续函数的在分解为三角函数的叠加的系数,表示该频率的三角函数的强度,这个强度能反映原来的f(x)的变化率吗?
因为这里是离散函数,可以重新定义微分,可积且绝对可积,所以根据傅里叶逐项微分定理,
原来函数f(x)的变化率的强度确实跟所有的n有关,n*Cn的值大的肯定是主要分量,n决定了频率。
所以像素的变化率跟频率成正相关,但是也跟该频率的f(nw)成正相关。可以看出较高的频率产生所有变化率较高的x位置,同时任意频率nw的值f(nw)比较大的也产生所有变化率比较高的x位置。但是这个函数f(x)只是空间模版,如何作用于图像呢?实际上就是在在频率域中相乘,高频处的值如果模版偏低,那么就拉低了图像在频率的值,自然就把图像的变化率陡峭变平缓了。
所以我得出的结论是:在频率域的模版虽然是离散函数,但是估算的时候,直接写成矩形上的函数,并且不是看做是离散函数求离散傅里叶反变换,而是求连续傅里叶反变换,直接取频率域上的区间的整数值为变量,就是在空间域上的模版的估算值。
我为什么要费劲把频率域滤波器转换为空间与滤波器,因为只有空间域模版的计算方式是直观的,直接是和图像的180度旋转相乘。
第三天内容
我终于完成了傅里叶分析的内容,这就是傅里叶分析的内容。我就说这个问题不应该由我解决,而是作者解决的,但是没想到数字图像处理_冈萨雷斯的书上根本不给解决。
我终于能够从连续函数的傅里叶变换得到离散函数的傅里叶变换了。其实这个说法是我自己命名的,专业的术语是从FT推导得到DTFT。而DTFT的一个周期就是DFT。
但是具体的过程过于复杂,我就不说了,反正我之前的近似方法已经研究的很好了,用于估算频率域滤波器已经足够用了,只是没办法精确计算,最后附录傅里叶分析重要的内容: