I was wondering whether we can recover a signal $x(t)$ from its power spectral density using signal processing techniques.
Generally (in the absence of prior knowledge) , I don't think this could be done.
The PSD is the absolute value squared of the DFT of the signal, and the abs function is not 1-to-1. For example abs(x) could be produced by f=x and f=-x.
However, if you have some prior knowledge about the signal then you could reconstruct it from the PSD. Without more knowledge of what you're trying to do I don't think I could help you.
I figured this out by making up a
X, e.g. (matlab)
X = [2 3]'; and then doing its sample autocorrelation by hand. I used Marple's 1987 text. Then I did
N=3 version and
N=4 and saw the pattern.
Here's matlab code to do it
clear all; close all; Xm(:,1) = [3 1 4 6 9 3 6 1 2 -55 6 3]'; %original signal N = length(Xm(:,1)); mu = sum(Xm(:,1))/N; % get the sample mean var = 0; for i=1:N var = var + (Xm(i,1)-mu)^2; end var = var / N; % get the sample variance % first col of X has the adjusted signal, and we'll put our recovered X in % the second column so they're easy to compare. X(:,1) = Xm(:,1) - mu; R = autocorr(X(:,1), N-1); C = R * var; % this is the denormalized autocovariance. M = triu(toeplitz(X(:,1))); % C = MX (the first col of X, actually) X(:,2) = N*inv(M)*C; Xrec = X(:,2)+mu; % this is the recovered Xm.