%%Note to users:
%%This will create a slightly different fit (and thus figure) than the R version
%%The R code uses #ns, the built in function to generate a natural cubic spline
%%basis, which Matlab does not have. While the spline toolbox function: cscvn
%%fits a natural spline basis e.g. via:
%%>fnplt(cscvn([knots; lfp1(knots)']))
%%while end conditions are "natural", it fits using a cumulative chordal distance
%%representation instead. We could also build a basis ourselves, although
%%most methods will perform similarly well given appropriately placed knots
lfp = load('lfp-ryan.dat');
time = 1:1000;
lfp1 = lfp(1:1000);
lfp30 = lfp(29001:30000);
knots = [1, 200:200:1000];
splinefit1 = spline(knots, lfp1(knots), time);
splinefit30 = spline(knots, lfp30(knots), time);
subplot(2, 1, 1)
plot(lfp1, '-k', 'LineWidth', 2)
hold on;
plot(splinefit1, '-b', 'LineWidth', 2)
set(gca, 'Box', 'off', 'FontSize', 22, 'YLim', [-70, 65], ...
'XTick', 0:200:1000, 'YTick', -60:30:60, 'TickDir', 'out')
xlabel('Time (ms)', 'FontSize', 22)
ylabel('lfp1', 'FontSize', 22)
subplot(2, 1, 2)
plot(lfp30, '-k', 'LineWidth', 2)
hold on;
plot(splinefit30, '-b', 'LineWidth', 2)
set(gca, 'Box', 'off', 'FontSize', 22, 'YLim', [-40, 140], ...
'XTick', 0:200:1000, 'YTick', 0:50:100, 'TickDir', 'out')
xlabel('Time (ms)', 'FontSize', 22)
ylabel('lfp30', 'FontSize', 22)
set(gcf, 'Position', [200, 100, 1000, 800])