www.gusucode.com > signal 案例源码程序 matlab代码 > signal/EditDistanceBetweenChirpAndSinusoidWithOutliersExample.m

    %% Edit Distance Between Chirp and Sinusoid with Outliers
% Generate two real signals: a chirp and a sinusoid. Add a clearly outlying
% section to each signal.

%%

x = cos(2*pi*(3*(1:1000)/1000).^2);
y = cos(2*pi*9*(1:399)/400);

x(400:410) = 7;
y(100:115) = 7;

%%
% Warp the signals so that the edit distance between them is smallest.
% Specify a tolerance of 0.1. Plot the aligned signals, both before and
% after the warping, and output the distance between them.

tol = 0.1;
edr(x,y,tol)

%%
% Change the sinusoid frequency to twice its initial value. Repeat the
% computation.

y = cos(2*pi*18*(1:399)/400);
y(100:115) = 7;

edr(x,y,tol);

%%
% Add an imaginary part to each signal. Restore the initial sinusoid
% frequency. Align the signals by minimizing the sum of squared Euclidean
% distances.

x = exp(2i*pi*(3*(1:1000)/1000).^2);
y = exp(2i*pi*9*(1:399)/400);

x(400:405) = 5+3j;
x(405:410) = 7;

y(100:107) = 3j;
y(108:115) = 7-3j;

edr(x,y,tol,'squared');