Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Simulare un segnale immerso nel rumore

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

4
voti

[21] Re: Simulare un segnale immerso nel rumore

Messaggioda Foto UtenteDirtyDeeds » 24 lug 2012, 0:52

La cosa interessante dei processi FD è che permettono la simulazione di processi di tipo 1/f^\alpha con un esponente generico. Questo tipo di processi sono caratterizzati da due parametri \delta e \sigma_\epsilon e hanno densità spettrale

S_X(f) = \frac{\sigma_\epsilon^2}{|2\sin(\pi f)|^{2\delta}}

La funzione che ho allegato in [19], se non ricordo male, permette di generare rumori con -1\le\delta < 1/2: per ottenere un rumore di tipo 1/f^\alpha con \alpha=1 si può usare \delta = -0{,}5 e poi si fa una somma cumulativa. Differenze di ordine intero e somme cumulative di processi FD generano sempre processi FD.

Maggiori informazioni si possono trovare in questo e in questo articolo, nonché nel libro citato nell'intestazione della funzione allegata.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[22] Re: Simulare un segnale immerso nel rumore

Messaggioda Foto Utentezerog89 » 24 lug 2012, 12:45

In questo caso lo strumento è dedicato all'osservazione nel lontano infrarosso/microonde. Il rumore è generato principalmente dall'emissione e dall'assorbimento delle molecole presenti nell'atmosfera. Complessivamente quindi dipende dalla temperatura, pressione, inclinazione ecc. .
Il rumore 1/f non è necessario nel grafico, ma grazie lo stesso per il contributo, dovrebbe essere interessante fare una simulazione completa, con il contributo di tutte le fonti di rumore. Il fatto è che si tratta di una dissertazione purtroppo...devo rientrare in poche pagine :(
Avatar utente
Foto Utentezerog89
20 2
 
Messaggi: 14
Iscritto il: 20 lug 2012, 9:12

6
voti

[23] Re: Simulare un segnale immerso nel rumore

Messaggioda Foto UtenteDirtyDeeds » 25 lug 2012, 0:16

Dunque, visto che avrei dovuto essere a camminare in montagna ma una lombomialgia mi ha bloccato a casa, mi sono deciso a portare la funzione per la simulazione di processi FD su Scilab, ed eccola allegata (per i soliti 2 a cui può interessare 'na roba così :mrgreen: ). Non garantisco che sia bug-free :-P

Qui sotto c'è un esempio d'uso per generare un rumore di tipo 1/f:

Codice: Seleziona tutto
sigma_e = 1;
N = 2^16; // Numero di campioni del rumore da generare

// Genera 2N campioni di un rumore gaussiano bianco con deviazione sigma_e e media nulla
Z = grand(1,2*N,'nor',0,sigma_e);

// Genera il processo FD con parametro delta = -0.5
Y = fd(-0.5,Z);

// Somma cumulativa in modo da ottenere un processo FD con parametro delta = 0.5 (dà un 1/f)
X = cumsum(Y);

// Vediamo cos'è saltato fuori
plot2d(X);

// Ora vediamone lo spettro
S = pspect(512,1024,"hm",X);
ff = linspace(0,1,1024); // Frequenze di Fourier corrispondenti
St = sigma_e^2./abs(2*sin(%pi*ff(2:512))); // Spettro teorico

// Confronto tra spettro teorico e stimato in scala bilogaritmica
scf();
plot2d([ff(2:512)' ff(2:512)'],[S(2:512)' St'],logflag="ll");


Questa è la serie temporale risultante:

flicker_1.jpg
flicker_1.jpg (51.19 KiB) Osservato 2038 volte


E questo è il confronto tra le funzioni densità spettrali teorica e stimata (l'asse orizzontale è l'asse delle frequenze, fino a 0.5):

flicker_2.jpg
flicker_2.jpg (20.3 KiB) Osservato 2038 volte
Allegati
fd.zip
(13.44 KiB) Scaricato 125 volte
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

2
voti

[24] Re: Simulare un segnale immerso nel rumore

Messaggioda Foto Utentezerog89 » 9 ago 2012, 12:36

Non sono scomparso tranquilli :ok: , appena finiti gli esami sono fuggito una settimana per rimettermi in sesto!
Ho avuto tempo di smanettare con scilab.Il primo scoglio è stato il plot...infatti visto che non avevo installato un pacchetto particolare, ogni volta che inviavo il comando di plot si bloccava tutto il PC......
Comunque, il linguaggio è piuttosto semplice, e per prima cosa ho buttato giù qualche programmino per vedere un po' quello che ci si può fare. Devo ammettere che è davvero potente, e vi ringrazio per avermelo fatto conoscere =D> .
Dopodichè ho finalmente fatto quello che mi aveva suggerito DirtyDeeds, ed ecco il primo risultato (ho solo ritoccato il codice per sovrapporre la sinusoide):
sin&noise.jpg
Sinusoide e rumore
sin&noise.jpg (45.71 KiB) Osservato 1993 volte


Ho anche dato una sbirciata alla funzione per la FFT, ho letto un piccolo tutorial su internet. Pubblicherò qualche risultato dopo aver capito come bisogna implementarla...

PS. Ottimo lavoro DirtyDeeds per il rumore rosa...se riesco a capire tutto quello che viene prima lo utilizzerò! :ok: .
Avatar utente
Foto Utentezerog89
20 2
 
Messaggi: 14
Iscritto il: 20 lug 2012, 9:12

Precedente

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti