diff general/numerical/frint.m @ 4:e44f49929e56

Adding reorganised general toolbox, now in several subdirectories.
author samer
date Sat, 12 Jan 2013 19:21:22 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/general/numerical/frint.m	Sat Jan 12 19:21:22 2013 +0000
@@ -0,0 +1,22 @@
+function y=frint(r,x,dc)
+% frint - Fractional integration
+%
+% y=frint(r,x[,dc])
+% Returns the rth order integral of x, where r can be fractional
+% if dc=0 (default is 1) dc term is not added back in
+
+x=x(:);
+n=length(x);
+z=fft(x); z0=z(1); z(1)=0;
+K=(0:n-1)';
+D=exp(2*pi*i*K/n)-1;
+D(1)=1; % to avoid divide by zero
+z2=z./D.^r;
+y=real(ifft(z2)); % integral minus DC term
+
+% put DC term  back as a ramp
+if nargin<3 || dc==1,
+	y=y+sign(z0)*(K*abs(z0)/n).^r;
+end
+
+