发明名称 一种基于边缘检测的时频谱曲线提取方法
摘要 本发明公开了一种基于边缘检测的时频谱曲线提取方法,首先计算信号时频分布的k阶原点矩,然后通过边缘检测的方法获得含有时频谱边缘信息的矩阵,根据对该矩阵进行判断和对边缘信息进行合并处理,进而获得时频谱曲线,在根据已有的曲线模型建立参数空间对曲线的参数进行估计,完成对时频谱曲线的提取。与传统的检测方法相比,本发明充分利用了信号时频分布的结构属性,提高了曲线提取的准确性,尤其在低信噪比和有多条时频谱带的情况下,传统提取方法的性能有所下降甚至失效,但本方法仍可以提取出与时频谱曲线。对于时频谱曲线的提取,本发明的方法性能更优。
申请公布号 CN104268883A 申请公布日期 2015.01.07
申请号 CN201410521214.3 申请日期 2014.10.07
申请人 电子科技大学 发明人 田坤;李晋;白启帆;范腾;皮亦鸣;曹宗杰;闵锐;范录宏
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 四川君士达律师事务所 51216 代理人 芶忠义
主权项 一种基于边缘检测的时频谱曲线提取方法,其特征在于按照以下步骤进行:步骤1:计算信号的时频分布X×Y维矩阵W<sub>s</sub>(n,f<sub>m</sub>)中各元素的k次方(即增大矩阵各元素之间的差值,有利于边缘检测剔除噪声影响),得到一个新的X×Y维矩阵W(x,y)=W<sub>s</sub>(n,f<sub>m</sub>)<sup>k</sup>,其中n表示时间点序列,f<sub>m</sub>表示频率点序列,x,y分别表示新矩阵W<sub>X×Y</sub>的行和列;步骤2:对步骤1中的矩阵W(x,y)使用Roberts算子进行边缘检测:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><msqrt><msup><mrow><mo>|</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mrow><mo>|</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup></msqrt></mrow>]]></math><img file="FDA0000582413510000011.GIF" wi="1223" he="106" /></maths>得到时频谱分布W<sub>s</sub>(n,f<sub>m</sub>)的梯度幅值G<sub>X×Y</sub>,选取梯度幅值G<sub>X×Y</sub>的平均值<img file="FDA0000582413510000012.GIF" wi="454" he="238" />做为阈值,与G<sub>X×Y</sub>进行比较,将G<sub>X×Y</sub>化为二值边缘矩阵:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>H</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&lt;</mo><msub><mi>T</mi><mi>g</mi></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><msub><mi>T</mi><mi>g</mi></msub></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000582413510000013.GIF" wi="524" he="169" /></maths>得到只含有0和1的二值边缘矩阵H<sub>X×Y</sub>;步骤3:对步骤2中的边缘矩阵H<sub>X×Y</sub>处理,计算边缘矩阵H<sub>X×Y</sub>中每列的边缘点个数<img file="FDA0000582413510000014.GIF" wi="452" he="163" />(X为矩阵H<sub>X×Y</sub>的行数,每列为1的点为边缘点,为0的不是边缘点),逐个选出r(y)为奇数的列,再记录这些列中第一个边缘点的位置,将二值边缘矩阵H<sub>X×Y</sub>这些位置元素置0,即删去矩阵中这个边缘点,将每列都检索完毕之后,可以保证矩阵H<sub>X×Y</sub>中每列含有的边缘点均为偶数,再按照列优先顺序,即矩阵中各元素按照其在矩阵H<sub>X×Y</sub>中行数和列数按照如下公式排序((列数‑1)×X+行数),(这里X为矩阵行的维度),将矩阵H<sub>X×Y</sub>中每个边缘点排序后的位置记录在向量d<sub>N</sub>中,其中N为边缘点的总个数,最后将边缘矩阵H<sub>X×Y</sub>边缘点两两合并,得到矩阵Z<sub>X×Y</sub>;步骤4,根据已有的曲线模型y=f(x,T,θ,A,…),如正弦曲线模型<img file="FDA0000582413510000021.GIF" wi="376" he="148" />其中T为曲线周期,θ为曲线的相位,A为曲线幅度,建立I×J维参数空间(T,θ),I,J分别为参数空间中周期时间点数和相位角度点数,将参数空间中每个点带入曲线模型中对Z<sub>X×Y</sub>中的所有曲线点进行计算,即对每个参数空间点(T<sub>i</sub>,θ<sub>j</sub>)带入曲线模型中,得到<img file="FDA0000582413510000022.GIF" wi="394" he="165" />再将Z<sub>X×Y</sub>中所有边缘点位置的行和列带入参数点的模型中,若边缘点行和列(x,y)满足带入参数的模型,则累加器Σg(T,θ)累加在参数空间(T,θ)的每个点上加1,如此取遍所有参数空间的点,每次均对Z<sub>X×Y</sub>中边缘点进行计算,最后得出各参数点的累加结果,找出参数累加器<sub>g</sub>中局部最大值点,得到曲线的条数以及各条时频谱曲线的参数。
地址 611731 四川省成都市高新西区西源大道2006号