zoukankan      html  css  js  c++  java
  • 《Fast Traking via Spatio-Temporal Context Learning》要点整理与代码实现之二

      上一篇主要讲解了全文的主要思想,整理了一些可能会被忽略的重点,并画了程序的主流程图,但这个流程图只是一个战略性的总图,较为宏观,而程序在实现时还有一些细节上的预处理也很重要,本篇将总结这些小细节。

      视频信号是一组随时间变化的动态信号(二维),引述《图像处理、分析与机器视觉》一书第3.2.3节中的一段话:持续时间短的或变化快的时间信号具有宽的频谱。如果我们要处理非静态信号(non-stationary signal),一种选择是将其分解为小片段(常称作窗口),并假定这些窗口外信号是周期性的。这种方法称作短时傅里叶变换——STFT——最初是Gabor在1964年提出的。不幸的是,仅仅使用非重叠矩形窗口来切割信号并不好,因为会引进不连续性而导致有大带宽的频域。这就是为什么信号在局部窗口的边缘上要用高斯或海明(Hamming)窗平滑抑制到零的原因。

      以下内容来自百度百科:数字信号处理的主要数学工具是傅里叶变换.而傅里叶变换是研究整个时间域和频率域的关系。不过,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。无限长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏)。为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。(矩形窗;布莱克曼窗;三角窗;汉宁窗;海明窗;高斯窗)。

      我的信号理论知识不是很深,没有完全读懂上面两段的意思,但是上述的理论确实为我们程序中的一个预处理提供了理论依据。

    ---------------------------------------------------------------------------------------------------------------------

      首先注意,在原论文中,求先验概率的公式是:

    而在程序实现时有如下两句预处理:

                      在初始化时: hamming_window = hamming(context_sz(1)) * hann(context_sz(2))';
                      在计算先验概率(即context prior model)时: window = hamming_window .* exp(-0.5 * dist / (sigma^2));

    可以看到原文并没有加海明窗,但是在具体实现时却加上了海明窗,其原因应该就是本文开头所引述的那样。

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/marcworld/p/3698194.html
Copyright © 2011-2022 走看看