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)?
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