%Figures produced by Whittle likelihood smoothing will appear differently
%from the analogous R versions (using simple Gaussian smoothers on the
%periogograms); often much more smoothed
lfp = load('lfp-ryan.dat');
time = 1:1000;
lfp1 = lfp(1:1000);
lfp30 = lfp(29001:30000);
f = (0:500)./1000;
knots = [1, 200:200:1000];
splinefit1 = spline(knots, lfp1(knots), time);
splinefit30 = spline(knots, lfp30(knots), time);
lfp1detrend = lfp1-splinefit1';
lfp30detrend = lfp30-splinefit30';
I1detrend = periodogram(lfp1detrend)';
I30detrend = periodogram(lfp30detrend)';
%Example of smoothing the Whittle Likelihood
%
%sknot = [0, 10, 20, 30, 40, 50];
%sb = spline(sknot, eye(size(sknot, 2)), 1:50);
%[b1, dev1, stats1] = glmfit(sb', I1detrend(1:50), 'gamma');
%[b30, dev30, stats30] = glmfit(sb', I30detrend(1:50), 'gamma');
%smoothI1 = glmval(b1, sb', 'reciprocal');
%smoothI30 = glmval(b30, sb', 'reciprocal');
maxt1 = size(I1detrend, 2);
maxt30 = size(I30detrend, 2);
smoothI1 = zeros(1, maxt1);
smoothI30 = zeros(1, maxt30);
bw = 1;
for i = 1:maxt1
I1ker = normpdf((i-(1:maxt1))/bw);
smoothI1(i) = sum(I1ker.*I1detrend)/sum(I1ker);
end
for i = 1:maxt30
I30ker = normpdf((i-(1:maxt30))/bw);
smoothI30(i) = sum(I30ker.*I30detrend)/sum(I30ker);
end
plot(f(1:50), smoothI1(1:50), '-b', 'LineWidth', 2)
hold on;
plot(f(1:50), smoothI30(1:50), '-k', 'LineWidth', 2)
set(gca, 'Box', 'off', 'FontSize', 20, ...
'XLim', [-0.001, 0.051], 'YLim', [-100, 3600], ...
'XTick', 0:0.01:0.05, 'YTick', 0:1000:3000, ...
'TickDir', 'out')
xlabel('Frequency', 'FontSize', 20)
set(gcf, 'Position', [200, 100, 1400, 800])