AWGN频谱分析

1. 高斯噪声的频谱

高斯白噪声
  高斯白噪声, 百度百科上的解释是"幅度分布服从高斯分布, 功率谱密度服从均匀分布", 这两句话, 分别是从空域和频域的角度来描述高斯白噪声
  所谓高斯, 就是图像上每个点的幅值都是随机高斯分布的, 不受其他点影响, 在均值点(一般设0点)附近分布的概率高, 离0点越远, 分布的概率越低, 和方差有关, 方差就表示随机点生成的range可以到多大
  而白噪声, 如同白光一样, 是所有颜色叠加而成, 在功率谱上趋近为常值, 即噪声频率丰富, 在整个频谱上都有成分, 从高频到低频(所以所谓高斯白噪声是高频噪声的说法是不对的), 这也是高斯白噪声难以去除的原因

  • 高斯噪声加在128水平的DC上


    noise_img.png
  • 频谱


    sigma5_dc128.png

  图像中中心白点就是DC, 而噪声在高频到低频基本是均匀分布, 并看不出来集中在哪个频段.怎么看图像的频谱?

2. 高斯Blur的频谱响应

  • ksize =3


    gaussian_k3.png
  • ksize =5


    gaussian_k5.png
  • ksize =11


    gaussian_k11.png

  可以看到, ksize越小, 通过的频带越窄, 实验过程中, 高斯核通过cv2.getGaussianKernel(ksize, -1)得到, 第二个参数为-1表示根据ksize计算sigma
Opencv Image Filtering

Gaussian standard deviation. If it is non-positive, it is computed from ksize as sigma = 0.3\*((ksize-1)\*0.5 - 1) + 0.8. 

3. 去噪前后, 噪声的频谱

  对于上文中的noise图像, 用Gaussian Blur进行平滑, 时域上的卷积等同于频域上相乘, 所以我们看到的去噪后的噪声频谱是这样的

  • ksize =3


    noises5_gaussianf_k3.png
  • ksize =5


    noises5_gaussianf_k5.png
  • ksize=11


    noises5_gaussianf_k11.png

  基本上就是noise频谱和blur kernel频谱想成的结果, 可以看到, ksize再大, 也不能完全去除Gaussian Noise, 只能去除掉Gaussian Noise的高频成分, 当ksize=77时, 基本上都在DC附近了, 这就是为什么ksize=77 flicker比较轻了, 因为高频的部分基本被干没了


noises5_gaussianf_k77.png

4. 真实图像频谱, 加噪声后频谱

  • 真实图像


    i0001.png
  • 未加噪声频谱


    clear_fft.png
  • 加噪声后


    noisy_img.png
  • noisy频谱


    noisy_fft.png

  影响较大的是高频区域(频谱图的四个角), 噪声的引入使图像有了更多的高频成分

5. 对真实图像Gaussian Blur

  • ksize =3


    noisy_gaussianf_k3.png
  • ksize =5


    noisy_gaussianf_k5.png
  • ksize =11


    noisy_gaussianf_k11.png
  • ksize =77


    noisy_gaussianf_k77.png

  理论上说, GaussianBlur之后应该就只有低频成分, 但是频谱图像十字交叉的白线说明了GaussianBlur有频率泄露, 这些出现在图像剧烈变化的边缘
频谱图中的亮线
如何快速设计FIR滤波器
窗函数在图像处理中的应用

窗函数在信号处理中的应用
"一个域(不论是时域还是频域)的不连续导致了另一个域的振荡,拖尾,泄漏"

  时域周期对应频域离散, DFT(discrete Fourier Transformation)算的是傅立叶级数, 所以计算的时候隐含对时域信号的周期延拓, 一延拓图像边上就会出现不连续, 这就是为什么会有那么重的十字交叉白线, 因为在图像的边缘(比如上边缘和下边缘拼接)往往是最不连续的地方, 这些地方就会产生假的正南正北(上下拼接)或正东正西(左右拼接)的频率成分. 这些频率成分是图像中本来没有的, 要消除这些, 可以加个窗函数, 这些正南正北或正东正西的两线一下就没有了

你可能感兴趣的:(AWGN频谱分析)