问题描述
我在Matlab的频域中得到了一些小波。然后,通过傅立叶变换ifft2
将其传输到时域中的小波。小波在时域和频域中的大小与图像相同。而且它们都是矩阵。
问题是:
如何使用时域中的滤波器对图像进行滤波,或将时域中的滤波器转换为可以使图像倍增的物体? 通常,时域中的过滤器通过卷积对图像进行过滤。但是我从频域中通过小波传递得到的滤波器的大小与图像相同。看来它无法卷积。
X = imread('barbara.jpg');
shearletSystem = SLgetShearletSystem2D(0,size(X,1),2),scales);
%the size of {shearlets} and {shearlets_timedomain} are [size(X,nshear],nshear is the number of the shearlets
%shearlets is the filter in the frequency domain,shearlets_timedomain is the filter in the time domain
shearlets_timedomain=fftshift(ifft2(ifftshift(shearletSystem.shearlets(:,:,:))));
解决方法
FWT 完全可以在频域中完成,参见 this paper 中的解释。如果我理解正确,您的问题不是为什么卷积信号与原始信号具有相同的大小(请参阅@ChrisLuengo 的回复),而是如何在频域中进行下采样(选择偶数或奇数位置)。
正如@Adriaan 所说,时域中的卷积是频域中的逐点乘法,反之亦然。为了对长度为 x
[x(1) ... x(n) in MatLab] 的信号 n
进行二次采样,及其傅立叶变换 X
,在时域对应于频域取x(1:2:n)
——只是为了完整性,时域取X(1:(n/2))
对应于频域取x(2:2:n)
。