I am new to DSP.
So I have a noisy signal with some high-frequency components. I was able to characterize the statistical properties of this signal through a gaussian distribution. My aim is to run a Singular Spectrum Analysis in order to remove some components at certain frequencies and see if they impact the Gaussian distribution (I assume they will not but have to prove this). However, the signal is at a considerably high sampling rate (256 Hz) and for a larger period of time (256 s) and I would have to do this for more than one signal. Hence, this process requires a large computational time, which I can't really afford right now.
I attempted to just use a smaller segment of the signal but noticed that the FFT properties change considerably. So is there a way to reduce the length of the signal while maintaining the FFT properties and the statistical distribution for faster analysis (Keeping in mind that I am new to DSP)?
Thank You.
I have attached the SSA code below.
Tp = 1/freq_intrest;
tendIn=size(y,2)/256;
tendIn=tendIn-mod(tendIn,Tp);
tendindex=(tendFFT*256)-mod(tendFFT*256,2);
M = round(tendFFTindex/2 - mod(tendFFTindex/2,Tp*256)); %Window Length
N = length(y);
t = (1:N)';
Y=zeros(N-M+1,M);
for m=1:M
Y(:,m) = y((1:N-M+1)+m-1);
end
Cemb=Y'*Y / (N-M+1);
C=Cemb;
[RHO,LAMBDA] = eig(C);
LAMBDA = diag(LAMBDA); % extract the diagonal elements
[LAMBDA,ind]=sort(LAMBDA,'descend'); % sort eigenvalues
RHO = RHO(:,ind); % and eigenvectors
PC = Y*RHO;
RC=zeros(N,M);
for m=1:30 % m upto 30 to save comptuational time. Already noticed only PC(1:8) are important.
buf=PC(:,m)*RHO(:,m)'; % invert projection
buf=buf(end:-1:1,:);
for n=1:N % anti-diagonal averaging
RC(n,m)=mean( diag(buf,-(N-M+1)+n) );
end
end