reconstruction of time series in SSA
I'm interested in SSA and the related techniques and I made an implementation which may be useful to you. Take a look at this Scilab code: https://gist.github.com/werediver/9785544 Scilab language is pretty similar to Matlab and the code should be easy to port.

Now to your questions and your code.

You're applying SVD directly to the trajectory matrix (the time delay embedding of the time series). That's possible and will work, but usualy SVD is applied to the covariance matrix $C=XX'$.

Right after SVD you have the eigenvalues (they are shown on your plot), but SSA is not done yet. Next, you need to compute the principal components of the trajectory matrix: $V_i=\frac{X'U_i}{\sqrt{\lambda_i}} (i=1,...,L)$ You need $\sqrt{\lambda_i}$ when applying SVD to the covariance matrix and just $\lambda_i$ when SVD is applied directly to the trajectory matrix.

So now the SSA decomposition is done and you want a partial reconstruction. The time domain representation of $V_i$ is $X_i=\sqrt{\lambda_i}U_iV_i'$. These components are additive so sum all the components you're interested in and then apply diagonal averaging to get from $X_I$ to univariate time series. Diagonal averaging produces a vector from averaged antidiagonals of the $X_I$ matrix, take a look at my implementation for example.



I can point you to a good description of Basic SSA: Singular Spectrum Analysis for Time Series book by N. Golyandina &amp; A. Zhigljavsky has freely available sample, Chapter 2: Basic SSA. This chapter completely covers Basic (univariate) SSA decomposition &amp; reconstruction algorithms and gives many advices on interpretation of the decomposition.

There are also pretty good book (teaching aid) in Russian language if it's appropriate for you: Метод «Гусеница»-SSA: анализ временных рядов  by N. Golyandina.