Changeset 12352


Ignore:
Timestamp:
07/06/2009 03:03:19 PM (14 months ago)
Author:
apw235
Message:

Noise Bits: paper revision seattle

Location:
trunk/documents/papers/noise-information
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/documents/papers/noise-information/noise.tex

    r11885 r12352  
    7070fainter than the detection limit.  The higher the bandwidth, the 
    7171better these measurements become, in precision and in accuracy.  We 
    72 find, not surprisingly, that the smallest representable difference 
     72find, not surprisingly, that the smallest representable difference $\Delta$ 
    7373should be on the order of the root-variance of the noise level in the 
    7474image.  More specifically, we find that about \emph{two bits should 
     
    9292  resonance}, where it has been shown that signals of low dynamic 
    9393range can be better detected in the presence of noise than in the 
    94 absence of noise \cite[Dykman, Luchinsky,]{dykman-1993}.  These studies show 
    95 that if a signal is below the minimum representable difference, it is 
     94absence of noise \cite{dykman-1993}.  These studies show 
     95that if a signal is below the minimum representable difference $\Delta$, it is 
    9696visible in the data only when the digitization of the signal is noisy. 
    9797A crude summary of this literature is that the optimal noise amplitude 
    98 is comparable to the mininmum representable difference.  We turn the 
     98is comparable to the mininmum representable difference $\Delta$.  We turn the 
    9999stochastic resonance problem on its head; the counterintuitive result 
    100100that weak signals become detectable only when the digitization is 
    101101noisy becomes (in our context) the relatively obvious result that so 
    102 long as the minimum representable difference is comparable to or 
     102long as the minimum representable difference $\Delta$ is comparable to or 
    103103smaller than the noise, signals are transmitted at the maximum 
    104104fidelity possible in the data set. 
    105105 
    106 \section{Experimental Programming Techniques} 
    107 The first experiment we performed was to observe the effect of measuring the variance and mean of pure Gaussian noise in a 100 by 100 pixel image after 'snapping to integer' at various intensity resolutions. This 'snap to integer' procedure, or 'SNIP,' is something that we use extensively in the experiments to follow and therefore it is important to understand the exact process. To begin we wrote a simple Python class that creates image objects (of type NBImage) that was built specifically for this project. When instantiated, these NBImage objects are blank data sets of user specified dimensions. We chose square 100 by 100 pixel images for our experiments because there was no other obvious size to choose. With some simple functions, one can add Gaussian noise to the image of specified variance, add a star at a random or pseudorandom position with specified Flux, and/or multiply by each element in an array of specified factors (in units of 'bits') and then truncate the image from floating point to integer data. The SNIP method takes in an array of resolution values, multiplies the image data by each of these values, stores all of this data into a 3-dimensional array, and then truncates the data to integer values. From this point we can measure various things about the SNIP-ped image data - such as adding a star before the SNIP and comparing the measured variance to an image with no star, or we can centroid the star and ask how well we did in finding the centroid compared to the real location.  
     106\section{Method} 
     107\subsection{Artificial Images} 
     108The images we created were all made with the same basic parameters and processes. To begin we wrote a simple Python class that creates image objects (of type NBImage) that was built specifically for this project. When instantiated, the NBImage objects are empty data arrays of user specified dimensions, but for our purposes we chose to use square 16 by 16 pixel images for the experiments to follow based on processing time restrictions. The images were constructed by creating blank 16 by 16 pixel images and then adding noise to simulate the sky level. A random number generator chooses a mean $\nu_{n}$ for this Gaussian noise within the range 0 - 100 but with a constant variance $\sigma_{n}$ of 1. We then add a randomly placed 'star' with a Gaussian spread somewhere within a few pixel radius of the center of the image. The intensity of the star is given by eq.~(\ref{intensity}), where $(x_{0}, y_{0})$ is a randomly selected center of the star, and $(x, y)$ are the image coordinates. The variance of the star $\sigma_{s}$ is set to 1 for convenience, and $A$ is a measure of the flux of the star.  
     109 
     110\begin{equation}\label{intensity} 
     111I(x,y) = A e^{-\frac{((x-x_0)^2+(y-y_0)^2)}{(2 \sigma^2)}} 
     112\end{equation} 
     113 
     114The method for setting the minimum representable difference $\Delta$ for the artificial images is used extensively in the experiments to follow, and therefore it is important to understand the  process. We define an array of values from $log_{2}(-4)$ to $log_{2}(8)$ in increments of $log_{2}(\frac{1}{4})$ and multiply the image data by each of these values in the array, thus scaling the image data by each value in the array. The data is then truncated to integer values, and the factor is divided out. For convenience, we will call this 'snap to integer' procedure the SNIP method. fig.~\ref{fig:twelvepanel} shows the increasing bit depth for different multiplication factors, which is the same image data multiplied by the values in the scaling array and then truncated to integer values.  
    108115 
    109116\section{Plain Gaussian Noise} 
     
    112119\section{Adding a Randomly Placed Star to Gaussian Noise} 
    113120Following the measurement of the variance after multiplying our data by various factors and snapping it to integer values, we wanted to show the same results but instead by adding a star to the image and asking how well we can centroid its location. To do this we used the same routine as described above, but instead with a randomly placed 'star' somewhere within a 25 pixel radius of the center of the image. We chose to use a Gaussian spread for the star, and so the intensity of the star is given by eq.~(\ref{intensity}), where \((x_{0}, y_{0})\) is the randomly selected center of the star, and \((x, y)\) are the image coordinates. \(\sigma\) is set to 1.0 for convenience, and \(A\) is a measure of the flux of the star. We save the true location, and proceed to multiply the image by various factors, snap the data to integer, and then centroid the star. 
    114 \begin{equation}\label{intensity} 
    115 I(x,y) = A e^{-\frac{((x-x_0)^2+(y-y_0)^2)}{(2 \sigma^2)}} 
    116 \end{equation} 
     121 
    117122\indent Our technique for centroiding the star does not locate the star within the image. The function takes the real position of the star as input variables, and simply looks at a 3 by 3 section of the image data with the center of this array as the center of the star. It then looks for the highest intensity pixel value, and re-centers the 3 by 3 array around this pixel. We perform a simple least squares fit on this data, using eq.~(\ref{surface}) as our surface model, where our experimentally found star center is the maximum of this surface.  
    118123\begin{equation}\label{surface} 
     
    150155\begin{figure} 
    151156\includegraphics[width=\textwidth]{BitsvsOffset_1024ims_flux8.png} 
    152 \caption{Plot of measured star offset (astrometric error in pixels) as a function of bit depth. The black circles show the median values. We set an upper bound on the offset of \(2^{0}\) reasoning that anything outside of 2 pixels is essentially infinity. The points are generated by generating 1024 images with noise variance $\sigma^{2} = 1.0$ and a gaussian star randomly placed with flux = 8.0., fwhm = 2.35 px. We centroid the star and measure the offset between this position and the known location of the star.\label{fig:bitsoffset8}} 
     157\caption{Plot of measured star offset (astrometric error in pixels) as a function of bit depth. The black circles show the median values. We set an upper bound on the offset of \(2^{0}\) reasoning that anything outside of 2 pixels is essentially infinity. The points are generated by generating 1024 images with noise variance $\sigma^{2} = 1.0$ and a gaussian star randomly placed with flux = 8.0., fwhm = 2.35 pix. We centroid the star and measure the offset between this position and the known location of the star.\label{fig:bitsoffset8}} 
    153158\end{figure} 
    154159 
     
    160165\begin{figure} 
    161166\includegraphics[width=\textwidth]{four-panel.png} 
    162 \caption{Four 16x16 pixel images that demonstrate coadding procedure. The top left image shows a single image with noise variance $\sigma^{2}$ = 1.0 and a gaussian star with flux = 8.0, fwhm = 2.35 px. The top right image is the same as the top left, but with the pixel values snapped to integer at bit depth \(2^{-1}\) or minimum representable difference $\Delta = 2.0$. The bottom left image represents coadding 1024 images of flux = 8.0, fwhm = 2.35 px without snapping to integer, whereas the bottom right image is after coadding 1024 images of flux = 8.0, fwhm = 2.35 px \emph{after} snapping each individual image data to integer values. The similarities of the images indicates that information has been preserved. \label{fig:fourpanel}} 
     167\caption{Four 16x16 pixel images that demonstrate coadding procedure. The top left image shows a single image with noise variance $\sigma^{2}$ = 1.0 and a gaussian star with flux = 8.0, fwhm = 2.35 pix. The top right image is the same as the top left, but with the pixel values snapped to integer at bit depth \(2^{-1}\) or minimum representable difference $\Delta = 2.0$. The bottom left image represents coadding 1024 images of flux = 8.0, fwhm = 2.35 pix without snapping to integer, whereas the bottom right image is after coadding 1024 images of flux = 8.0, fwhm = 2.35 pix \emph{after} snapping each individual image data to integer values. The similarities of the images indicates that information has been preserved. \label{fig:fourpanel}} 
    163168\end{figure} 
    164169 
     
    175180\begin{figure} 
    176181\includegraphics[width=\textwidth]{BitsvsOffset_1024ims_flux8_Coadded.png} 
    177 \caption{Same as fig.~\ref{fig:bitsoffsetcoadd1} except for flux = 8.0. \label{fig:bitsoffsetcoadd1}} 
     182\caption{Same as fig.~\ref{fig:bitsoffsetcoadd1} except for flux = 8.0. \label{fig:bitsoffsetcoadd2}} 
    178183\end{figure} 
    179184 
  • trunk/documents/papers/noise-information/refs.bib

    r11631 r12352  
    11\begin{thebibliography} 
    22 
    3 @MISC{dykman-1993, 
     3@ARTICLE{dykman-1993, 
    44  author = {M.~I. Dykman and D.~G. Luchinsky and R. Mannella and P.~V.~E. McClintock and S.~M. Soskin and N.~D. Stein and N.~G. Stocks}, 
    5   title = {Stochastic Resonance}, 
     5  title = "{Stochastic Resonance}, 
    66  url = {http://www.citebase.org/abstract?id=oai:arXiv.org:chao-dyn/9307006}, 
    7   year = {1993} 
     7  year = 1993 
    88} 
    99 
Note: See TracChangeset for help on using the changeset viewer.