State of the art algorithms for estimating noise variance
If you hope that $f[n]$ can be sparser in some linear representation $L$, then robust statistics can be used to estimate variance bounds on coefficients of $L(X[n])$. One common method is orthogonal wavelet denoising, where a common standard deviation estimate is:
$$ \mathrm{median} \frac{|c_i|}{0.67449}
$$
where $c_i$ denotes the highest scale subband. The magic $0.67449$ scale factor relates the standard deviation to the robust Median absolute deviation through the error function erf ("MAD equals the half-normal distribution median"). 

How robust is that? I tested it on a classical "crane" image, with several noise realizations, and here is the $\sigma$ versus  $\hat{\sigma}$ estimates with dispersion.



Not to bad: somehow linear, albeit with an offset at zero, and an increasing  dispersion. This can suffice for some uses. Meanwhile, for a better interval of estimates, I usually use several representations (wavelets, filter banks) to capture unknown sparsity optimality, with a certain amount of redundancy, and combine them into a range of estimates. Since redundancy kills independence, a calibration is required to get thre proper factor, that easily done with transforming white noise with the set of transformations you have. This is what we use with redundant Optimization of Synthesis Oversampled Complex Filter Banks or for denoising with Noise Covariance Properties in Dual-Tree Wavelet Decompositions.

Although the estimate is excellent with simulated Gaussian noise, this is of course less efficient in practice, as noise estimated from one realization is rarely Gaussian (or something easy to handle).

Additional references for images:
- Noise Estimation from a Single Image, with Matlab code


  In order to work well, many computer vision algorithms require that
  their parameters be adjusted according to the image noise level,
  making it an important quantity to estimate. We show how to estimate
  an upper bound on the noise level from a single image based on a
  piecewise smooth image prior model and measured CCD camera response
  functions. We also learn the space of noise level functions how noise
  level changes with respect to brightness and use Bayesian MAP
  inference to infer the noise level function from a single image. We
  illustrate the utility of this noise estimation for two algorithms:
  edge detection and feature preserving smoothing through bilateral
  filtering. For a variety of different noise levels, we obtain good
  results for both these algorithms with no user-specified inputs.



Single-Image Noise Level Estimation for Blind Denoising, with Matlab code



  Noise level is an important parameter to many image processing
  applications. For example, the performance of an image denoising
  algorithm can be much degraded due to the poor noise level estimation.
  Most existing denoising algorithms simply assume the noise level is
  known that largely prevents them from practical use. Moreover, even
  with the given true noise level, these denoising algorithms still
  cannot achieve the best performance, especially for scenes with rich
  texture. In this paper, we propose a patch-based noise level
  estimation algorithm and suggest that the noise level parameter should
  be tuned according to the scene complexity. Our approach includes the
  process of selecting low-rank patches without high frequency
  components from a single noisy image. The selection is based on the
  gradients of the patches and their statistics. Then, the noise level
  is estimated from the selected patches using principal component
  analysis. Because the true noise level does not always provide the
  best performance for nonblind denoising algorithms, we further tune
  the noise level parameter for nonblind denoising. Experiments
  demonstrate that both the accuracy and stability are superior to the
  state of the art noise level estimation algorithm for various scenes
  and noise levels.