我有一个真实的双向传播波的二维图像。我怎样才能将这个图像分成一个向上传播的波和一个向下传播的波?
这个例子在每个方向都有一个波浪。x 刻度显示时间,y 刻度显示位置,强度显示波在该位置和时间的幅度。第一张图片是我的输入。
但是,我不太习惯 2D 信号处理,所以我这样做的方法是将 FFT 频谱的两个象限设置为零,然后进行反向转换。我使用以下算法获得了另外两个图像:
X = fftshift(fft2( x )); % x is the input (image above)
X( 1:floor(size(X,1)/2), 1:floor(size(X,2)/2) ) = 0; % null 1st quadrant
X( ceil(size(X,1)/2)+1:end, ceil(size(X,2)/2)+1:end) = 0; % null 3rd quadrant
y = ifft2( ifftshift(X) );
y = real( y ); % y is the output (image above)
感觉这种野蛮的方法会引入各种人工制品,所以我正在寻找更有经验的人的反馈。
- 有没有更好的方法来实现这一目标?
- 我应该如何“软化”与 FFT 相乘的 0/1“掩码”的边缘?
- 输出很复杂,所以我丢弃了虚部。那是对的吗?
- 我也有点担心噪声将不再是白色的事实,但我想除了对整个图像进行低通滤波之外,没有什么可做的。