zoukankan      html  css  js  c++  java
  • 毕业论文B.3 DTW算法

    dtw算法的代码:

    function dist = dtw(t,r)
    n = size(t,1);
    m = size(r,1);
    
    % 帧匹配距离矩阵
    d = zeros(n,m);
    
    for i = 1:n
    for j = 1:m
        d(i,j) = sum((t(i,:)-r(j,:)).^2);
    end
    end
    
    % 累积距离矩阵
    D =  ones(n,m) * realmax;
    D(1,1) = d(1,1);
    
    % 动态规划
    for i = 2:n
    for j = 1:m
        D1 = D(i-1,j);
    
        if j>1
            D2 = D(i-1,j-1);
        else
            D2 = realmax;
        end
    
        if j>2
            D3 = D(i-1,j-2);
        else
            D3 = realmax;
        end
    
        D(i,j) = d(i,j) + min([D1,D2,D3]);
    end
    end
    
    dist = D(n,m);

    输入B.3随笔中计算得到的两个语音mfcc特征系数。

    为DTW算法代码中设置断点。断点处画图d矩阵的图像:

    从这个相异度图像中可以看出dtw算法就是要在这个图像中找到一条从(0,0)点到(86,67)点一条折线,统计这条线上的值,累计和为其它任意折线累计和的最小值。也就是说要找图像中最谷底的连线。

    该连线找到后,累计计算线上每个值的和。这个值就为dtw算法所最终求出的相异度。

    改进dtw算法:如果在计算相异度之前,对相异度图像进行加权处理,在求相异度,观察结果。

  • 相关阅读:
    软件测试大赛决赛简讯
    期末提交作业清单
    4月12日-4月19日任务清单
    20160405
    软件系统设计文档模板
    吐槽
    致我亲爱的学生
    HBase 环境搭建
    Zookeeper 环境搭建
    hive 部署
  • 原文地址:https://www.cnblogs.com/cheetahw/p/2523599.html
Copyright © 2011-2022 走看看