I implemented this real quick using finite differences as suggested by @DougLipinski, and this is what I come up with, at first glance it looks correct. Green vectors are the tangent vectors and red are the normals.
To calculate the differential arc length I used this relationship
$$(ds)^2 = (dx)^2 + (dy)^2$$
and applied a simple first order finite difference to $x$ and $y$.

Here's the code, let me know if you see anything wrong
clear all
close all
t = 0:0.01:(2*pi+0.01);
t = t(:);
n = length(t);
x = cos(t) - 0.5*cos(3*t);
y = sin(t) + sin(7*t) + sin(3*t);
e = ones(n,1);
A = 0.5*spdiags([-e e],[-1,1],n,n);%first order FD stencil
dx = A*x;
dy = A*y;
ds = sqrt(dx.^2 + dy.^2);
T = [dx./ds dy./ds];
for rr = 1:size(T,1)
T(rr,:) = T(rr,:)/sqrt(T(rr,1)^2 + T(rr,2)^2);
end
dT = [A*T(:,1) A*T(:,2)];
N = [dT(:,1)./ds dT(:,2)./ds];
for rr = 1:size(N,1)
N(rr,:) = N(rr,:)/sqrt(N(rr,1)^2 + N(rr,2)^2);
end
figure
plot(x,y)
hold on
quiver(x,y,T(:,1),T(:,2))
quiver(x,y,N(:,1),N(:,2))