Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Rappresentare la convoluzione continua con Matlab

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

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[11] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentesimo85 » 25 ago 2015, 13:11

Ho l'impressione di aver fatto una domanda un po' stupida.. :oops:
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[12] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentesimo85 » 25 ago 2015, 17:29

Dunque, sempre con questo script:

Codice: Seleziona tutto
t = -40:1/fs:40;
x = exp(2*t).*heaviside(-1*t);
h = heaviside(t - 3);
y = 1/fs * conv2(x,h, 'same');
plot(t,y) % plot Fig. 1
plot(t,y);xlim([-10,20]) % plot Fig. 2


Sono riuscito a rappresentare le due figure (Fig. 1 e Fig. 2 come si legge dai commenti dello script):

Fig.1: sempre come al solito. Qualsiasi sia la dimensione dei vettori dei segnali \hat x(t) e \hat h(t), viene sempre tagliato il vettore del risultato della convoluzione, \hat y(t).

c1.png
c1.png (8.78 KiB) Osservato 2140 volte


Fig. 2: va un po' meglio ma perché (secondo me) ho barato, dato che ho limitato l'asse con la funzione xlim.

c2.png
c2.png (7.67 KiB) Osservato 2140 volte


Ci dovrá pur essere un modo per far troncare il segnale di uscita \hat y(t) senza tagliarlo come in fig. 1.
O mi sbaglio ?

O_/

Simo
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

1
voti

[13] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto UtenteDirtyDeeds » 25 ago 2015, 17:47

Parti dalla definizione di convoluzione,

(x*h)(t) := \int_{-\infty}^\infty x(\tau)\, h(t - \tau)\, \mathrm{d}\tau,

e chiediti: fissato t, per quale intervallo di valori di \tau il prodotto x(\tau)\, h(t - \tau) è (sufficientemente) diverso da zero? (v. osservazione di Foto Utentedimaios in [9])
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

1
voti

[14] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentesimo85 » 25 ago 2015, 21:09

Ciao Foto UtenteDirtyDeeds O_/

Io lo so che sono un po' ottusangolo ma la questione si sta facendo interessante.

dimaios ha scritto:Stai tentando di rappresentare un gradino con supporto infinito tramite un vettore di lunghezza finita.

La funzione di Heaviside u(t) è rappresentata senza problemi su tutto il dominio. La convoluzione no.
Evidentemente per capire questo problema ne devo capire un altro. Che ancora non mi è del tutto chiaro.
Capisco la motivazione del vettore di lunghezza finita.

Come sempre preferisco partire da delle rappresentazioni grafiche:

Abbiamo:

\begin{aligned}
& x(t) = e^{2t}u(-t)\\
& h(t) = u(t - 3)
\end{aligned}

E scrivere h(t - \tau) nel dominio di \tau equivale a:

h(-\tau) \mapsto u(-t - 3)




Che rappresentato tutto in funzione di \tau:





Ed abbiamo che

x(\tau)h(t - \tau) \neq 0 \qquad \forall \quad t - 3 \leq 0

Mi sono lasciato confondere molto da quel t - 3

E l'intervallo è: (-\infty,0) \ |\ \{\tau\ | \tau <0\}

Ora, se non vado oltre il dovuto, il dominio di y(t), secondo il risultato riportato dal libro nel messaggio 1 è

\begin{aligned}
& y(t) = x(t) * h(t) = \begin{cases}
{\text e^{2(t-3)}\over 2} & t < 3\\
{1 \over 2} & t \geq 3 \end{cases}\\
& \mathrm{Dom}(y(t)) = (-\infty,\infty) \in \mathbb R
\end{aligned}

per cui è sufficiente rappresentare la funzione con Matlab, che chiamo \hat y(t) (mi piace distinguere direttamente ogni cosa per evitare confusioni) in un intervallo (-\infty,3] \ |\ \{\tau\ | \tau \leq 3\}.
Ma anche qualcosina più di 3..

Dico bene ?
Scusate se ho scritto più castronerie del dovuto.. :oops:
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

1
voti

[15] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentegotthard » 25 ago 2015, 22:51

Ciao Simo, stavo leggendo il post..

Volevo chiederti:

nel secondo disegno, secondo me, va scritto h(-\tau), oppure anche u(-3-\tau), al posto di h(-3-\tau), è corretto o mi sbaglio?
...\frac{\mathrm{d} p}{\mathrm{d} t}=JCM... :!:
Avatar utente
Foto Utentegotthard
4.611 2 5 9
Expert EY
Expert EY
 
Messaggi: 1357
Iscritto il: 5 lug 2013, 14:01

1
voti

[16] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentesimo85 » 25 ago 2015, 23:12

gotthard ha scritto:va scritto h(-\tau), oppure anche u(-3-\tau) al posto di h(-3-\tau), è corretto o mi sbaglio?


Si, secondo me hai ragione tu. :ok: Avrei dovuto scrivere

h(-\tau) = u(-t - 3)

E mi sono confuso. #-o

Scrivere

u(-3-\tau) = h(-3-\tau)

Si mi sembra OK.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

1
voti

[17] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentegotthard » 25 ago 2015, 23:42

simo85 ha scritto:Avrei dovuto scrivere

h(-\tau) = u(-t - 3)

Io dicevo: h(-\tau) = u(-\tau - 3), cioè con \tau al posto di t.

simo85 ha scritto:Scrivere

u(-3-\tau) = h(-3-\tau)

Si mi sembra OK.

Secondo me è corretto scrivere h(-\tau) = u(-3-\tau),

ma non u(-3-\tau) = h(-3-\tau).

Credo che h(-3-\tau) non serva proprio considerarlo, ma forse sto sbagliando io.. :roll:

Pezzo aggiunto:

Poi, una volta scritta h(-\tau), ti serve scrivere h(t-\tau) che sarà:

h(t-\tau)=u(t-3-\tau),

quindi, come dicevo, credo che h(-3-\tau) non vada proprio considerato.
...\frac{\mathrm{d} p}{\mathrm{d} t}=JCM... :!:
Avatar utente
Foto Utentegotthard
4.611 2 5 9
Expert EY
Expert EY
 
Messaggi: 1357
Iscritto il: 5 lug 2013, 14:01

1
voti

[18] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentesimo85 » 25 ago 2015, 23:51

gotthard ha scritto:ma non u(-3-\tau) = h(-3-\tau).

Ora che ci penso bene, avevo ragione ed hai ragione tu. :mrgreen:


gotthard ha scritto:Pezzo aggiunto:

Che poi è la quello che ho cancellato.. :?

:ok:
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

1
voti

[19] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentegotthard » 25 ago 2015, 23:55

Bene, quindi a questo punto puoi apportare la modifica alla casella di testo del secondo disegno. :ok:
...\frac{\mathrm{d} p}{\mathrm{d} t}=JCM... :!:
Avatar utente
Foto Utentegotthard
4.611 2 5 9
Expert EY
Expert EY
 
Messaggi: 1357
Iscritto il: 5 lug 2013, 14:01

0
voti

[20] Re: Rappresentare la convoluzione continua con Matlab

Messaggioda Foto Utentesimo85 » 25 ago 2015, 23:56

Va bene ! A gli ordini ! :mrgreen:
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

PrecedenteProssimo

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti