UP | HOME

Appunti Matlab - Processi Aleatori

Table of Contents

1. Argomenti

2. Lezioni

File video 08.mp4 minuto 1.55.00 File pdf 13Processialeatori.pdf

3. Processo Aleatorio

NB : nella teoria delle probalità si utilizza la notazione \(x(s)\) mentre nella teoria dei sistemi LTI t.d. si utilizza \(x[n]\)

media : \(E\{x[n]\}=\mu\) . per p.a. td \(_M=\frac{1}{2M+1}\sum_{n=-M}^{M} x[n]\); varianza : \(E\{x(s)^2\}=\sigma^2\). per p.a. td \(=\frac{1}{2M+1}\sum_{n=-M}^{M} x[n]x[n+m]\);

pdf : funzione di densità di probabilità \(p_x(X)=\frac{dP_x(X)}{d_X}\) con \(P_x(X)=P\{x \leq X\}\);

PDF : funzione di distribuzione di probabilità \(\int p_x(X)d_X\)

pdf di una v.a. con distribuzione gaussiana : \(f(x)=\frac{1}{\sqrt{2\pi \sigma}}e^{-\frac{x-\mu}{2\sigma^2}}\). E' quella che devo rappresentare.

gauss.png

Figure 1: curva di Gauss

3.1. pdf di una v.a. gaussiana

randn : crea un'array pseudo casuale di v.a. di tipo gaussiano con media nulla e varianza unitaria cioè \(f(x)=\frac{1}{\sqrt{2\pi }}e^{-\frac{x}{2}}\)

per creare una pdf di tipo gaussiano

M=10^5;
mu=1;       % media
sigma=2;    % deviazione standard
deltax=0.1; % larghezza degli intervalli

% randn crea un array uniforme di M pseudo variabili gassiane a media 0 e varianza 1
% volendo variare la varianza e/o la media devo moltiplicare l'array di ritorno dalla funzione randr con la prima e/o sommarlo alla seconda.
x=sigma*randn(1,M)+mu;

% creo l'array di bins i cui estremi [-4*sigma+mu, 4*sigma+mu] sono quelli dell'intervallo di rappresentazione
% mentre l'intervallo deltax è quello di raggruppamento dei valori
X=-4*sigma+mu:deltax:4*sigma+mu;

% un istogramma da una stima della pdf ( funzione non liscia )
% per ottenere una funzione liscia devo mediare più realizzazioni.
% genera un istogramma in cui ogni elemento è il conteggio dei valori compresi nel
% raggruppamento ( intervallo deltax ) dell'arra di bins X
% Utilizzata per una qualsiasi distribuzione generata con matlab.
% Il primo valore indica l'array dei dati da rappresentare
pdf_x= histogram(x,X)/(M*deltax);

figure;

% disegno l'istogramma
stem(X,pdf_x);

xlabel("X"), ylabel("pdf");
mu_est=sum(x.*pdf_x)*deltax;
p_est=sum(x.^2.*pdf_x)*deltax;

saveas(gcf,'./img/es1.png');

es1.png

Figure 2: Esempi di array di tipo gaussiano

3.2. pdf di una v.a. con distribuzione uniforme

rand genera una funzione

M=10^5;
mu=1;       % media
sigma=2;    % deviazione standard
deltax=0.1; % larghezza degli intervalli
a=1;
b=5;


% rand crea un array di una distrubuzione uniforme tra 0 e 1.
% per modificare l'intervallo è necessario modificare l'intervallo.
x=a+(b-a)*rand(1,M);

% creo l'array di bins i cui estremi [a,b] sono quelli dell'intervallo di rappresentazione
% mentre l'intervallo deltax è quello di raggruppamento dei valori
X=a:deltax:b;

% un istogramma da una stima della pdf ( funzione non liscia )
% per ottenere una funzione liscia devo mediare più realizzazioni.
% genera un istogramma in cui ogni elemento è il conteggio dei valori compresi nel
% raggruppamento ( intervallo deltax ) dell'arra di bins X
% Utilizzata per una qualsiasi distribuzione generata con matlab.
% Il primo valore indica l'array dei dati da rappresentare
pdf_x= histogram(x,X)/(M*deltax);


% disegno l'istogramma
plot(X,pdf_x);

xlabel("X"), ylabel("pdf");
mu_est=sum(x.*pdf_x)*deltax;
p_est=sum(x.^2.*pdf_x)*deltax;

3.3. PDF di v.a. di tipo gaussiano


M=10^5;     % numero di elementi dell'array
mu=1;       % media
sigma=2;    % deviazione standard
deltax=0.1; % larghezza degli intervalli
a=1;
b=5;


% randn crea un array uniforme di M pseudo variabili
% volendo variare la vaorianza e/o la media devo moltiplicare l'array di ritorno dalla funzione randr con la prima e/o sommarlo alla seconda.
x=sigma*randn(1,M)+mu;


% creo l'array di bins i cui estremi [-4*sigma+mu, 4*sigma+mu] sono quelli dell'intervallo di rappresentazione
% mentre l'intervallo deltax è quello di raggruppamento dei valori
X=-4*sigma+mu:deltax:4*sigma+mu;

% un istogramma da una stima della pdf ( funzione non liscia )
% per ottenere una funzione liscia devo mediare più realizzazioni.
% genera un istogramma in cui ogni elemento è il conteggio dei valori compresi nel
% raggruppamento ( intervallo deltax ) dell'arra di bins X
% Utilizzata per una qualsiasi distribuzione generata con matlab.
% Il primo valore indica l'array dei dati da rappresentare
pdf_x= hist(x,X)/(M*deltax);


% integrazione della pdf
PDF_x=int_pdf(pdf_x)*deltax;

% disegno l'istogramma
plot(X,PDF_x);

xlabel("X"), ylabel("PDF");
mu_est=sum(x.*pdf_x)*deltax;
p_est=sum(x.^2.*pdf_x)*deltax;

3.4. PDF di una v.a. uniforme

M=10^5;
mu=1;       % media
sigma=2;    % deviazione standard
deltax=0.1; % larghezza degli intervalli
a=1;
b=5;


% rand crea un array di una distrubuzione uniforme tra 0 e 1.
% per modificare l'intervallo è necessario modificare l'intervallo.
x=a+(b-a)*rand(1,M);

% creo l'array di bins i cui estremi [a,b] sono quelli dell'intervallo di rappresentazione
% mentre l'intervallo deltax è quello di raggruppamento dei valori
X=a:deltax:b;

% un istogramma da una stima della pdf ( funzione non liscia )
% per ottenere una funzione liscia devo mediare più realizzazioni.
% genera un istogramma in cui ogni elemento è il conteggio dei valori compresi nel
% raggruppamento ( intervallo deltax ) dell'arra di bins X
% Utilizzata per una qualsiasi distribuzione generata con matlab.
% Il primo valore indica l'array dei dati da rappresentare
pdf_x=hist(x,X)/(M*deltax);

% integra la pdf
PDF_x=int_pdf(pdf_x)*deltax;

% disegno l'istogramma
plot(X,PDF_x);

xlabel("X"), ylabel("pdf");
mu_est=sum(x.*pdf_x)*deltax;
p_est=sum(x.^2.*pdf_x)*deltax;

3.5. Autocorrelazione

Definizione : \(R_{xx}[n,n+m]=E\{[x[n],x[n+m]\}=\iint_{-\infty}^{\infty}XYp_{x[n],x[n+m](X,Y)d_Xd_Y}\) che se il p.a. si dice stazionario dipende solo dalla distanza m ( lag ) dei campioni e non dall'indice temporale n.

Nel caso di p.a. td diventa \(_M=\frac{1}{2M+1}\sum_{n=-M}^{M} x[n]\);

N = 10;
mu = 0; sigma = 2;
x = sigma*randn(1,N)+mu;
% Medie temporali (mean)
mu_x = sum(x)/N;
P_x = sum(x.^2)/N;
% Funzione di autocorrelazione (xcorr)
lag = -N+1:N-1;
R = acorr(x,lag);
plot(lag,R)
xlabel(’lag’), ylabel(’ACF’)

Author: andrea venuti

Created: 2023-12-29 ven 22:33

Validate