PSD-Wiener Khinchin-xcorr problem due to the division coefficients of the PSD

5 views (last 30 days)
Hi,
I am trying to calculate the PSD from the autocorrelation. I am finding the following problems doing this (it is mandatory for me using this autocorrelation):
  1. The test 1 is verified. I used the same division that are placed in this documenthttp://aaronscher.com/Course_materials/Communication_Systems/documents/PSD_Autocorrelation_Noise.pdf, but unfortunately I am not sure why the psd should by divided by the length of the signal instead of the length of the autocorrelation.
  2. The Parseval theorem (%parseval failed) is failed so I am wandering if this means that my division are not correct. If I apply the parseval theorem using the normalization %parseval passed, the test is passed. So can you help me to understand if my "normalization" is wrong.
I hope you can help me. I tried a lot of time to find the right normalization.
clear; clc; close all;
v_c=dlmread('v_c.txt', '\t', 1, 0)
v1=(v_c(:,2:2))
%Tinc rappresenta il passo temporale
Tinc=0.001;
Fs=1/Tinc;
r1 =xcorr(v1,v1)/Fs;
freq =transpose( -Fs/2:Fs/length(r1):Fs/2-(Fs/length(r1)));
delta_f=(freq(2)-freq(1))
PSDfromr1 = abs(fftshift(fft(r1)))*(1/((length(v1))))
%test 1 CumulatePSDfromr1 should be equal to rms2v1
CumulatedPSDfromr1=sum(PSDfromr1)*0.005
rms2v1=rms(v1)^2
% parseval failed
vf2=sum((PSDfromr1).^2);
vt=sum(r1.^2)
% parseval passed
vf=sum(abs(fftshift(fft(r1))).^2)/length(r1);
figure (1)
plot(freq,PSDfromr1)

Answers (0)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Tags

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!