Performing a Deconvolution So I have the following data:

[[-344    13771   4600 ]
 [-275.2  12478   6410 ]
 [-206.4  19443    830 ]
 [-137.6  69392   3830 ]
 [ -68.8  143737  3780 ]
 [   0    189278 16870 ]
 [  68.8  184486  5090 ]
 [ 137.6  188466  9380 ]
 [ 206.4  185023 21680 ]
 [ 275.2  128133  1460 ]
 [ 344    51288   1950 ]
 [ 412.8  10854   4290 ]]


First column is the x value (position in microns).  Second value is the recorded data point (y), and the third column is the error (noise).

I am wondering how I can find the response of my device if the data I record is known to be a convolution of the response and a slit of width 83.6666 (plus noise).

My attempt was to use the convolution theorem of fourier transforms and use MatLab's fft() to solve for the desired function, but I could not figure out how to get everything the same length.  I also thought about being blunt and using deconv() but that gave me something very strange, (with my rect function defined as 

&gt;&gt; x=-344:1:412;
&gt;&gt; h=zeros(size(x));
&gt;&gt; h(300:386)=1;


So I used deconv(h,y) and got a very strange looking plot that was not a function.

So I was hoping someone could give me some advice on how to perform this mathematically (code or no code).  Especially with the addition of noise.

Thanks!
en.wikipedia.org/wiki/Wiener_filter

what you are looking for is a Weiner  filter  that takes into account the standard deviations of your data. See http://www.astroml.org/book_figures/chapter10/fig_wiener_filter.html 
 and the description in Wikipedia  for implementation.  Basically you will do what you were suggesting,  but with an additional term in the denominator of the ratio of fft's  that is the fft  of the noise.