Matlab:alcuni comandi

Bandit1
Impulse,dstep, dlsim cosa fanno fi preciso?
c'è da qualche parte un esempio?


poi c'è un altro comando che non mi va perchè?
scrivo
num=500;
den=[1 16 65 300];
bode=(num,dem)
ma non mi fa il diagramma di bode perchè?

help

Risposte
_luca.barletta
una traslazione in frequenza di una delta di dirac significa una variazione di frequenza nel dominio tempo

Bandit1
"luca.barletta":
una traslazione in frequenza di una delta di dirac significa una variazione di frequenza nel dominio tempo

cioè dda quelle vedi dove sono centrati i contributi


per l'altra domanda?

_luca.barletta
no, se usi il simbolico abs e angle fanno solo confusione.
per vedere la fase potresti usare:

angle(subs(fourier(...),y,f_0))

Bandit1
>> syms f
syms t
syms y
angle(subs(fourier(4*sin(6*pi*f*t+0.78),y,f_0)
 
??? angle(subs(fourier(4*sin(6*pi*f*t+0.78),y,f_0)
                                                  |
Error: ")" expected, "end of line" found.

>> 

ho preso questo per esempio un pelino + vario e mi dice così....devo fedinire syms f_0?

_luca.barletta
non ha molto senso usare quel codice per andare a vedere la fase di un seno, usa un segnale un po' più complesso. poi ti mancano un po' di parentesi da chiudere

Bandit1
y ed f_0 stanno con angle o con sub o con fourier?
cioè come le metto le parentesi?

Bandit1
>> syms f_0
syms y
syms t
syms f
angle(subs(fourier(4*sin(6*pi*f*t+0.78)),y,f_0))
??? Error using ==> atan2
Function 'atan2' is not defined for values of class 'sym'.

Error in ==> C:\MATLAB6p5\toolbox\matlab\elfun\angle.m
On line 15  ==> p = atan2(imag(h), real(h));

così per esempio non funzia

_luca.barletta
angle(subs(fourier(4*sin(6*pi*f*t+0.78),y),f_0))
 
 

Bandit1
"luca.barletta":
angle(subs(fourier(4*sin(6*pi*f*t+0.78),y),f_0))
 
 

>> syms f_0
syms y
syms t
syms f
>> angle(subs(fourier(4*sin(6*pi*f*t+0.78),y),f_0))
??? Error using ==> atan2
Function 'atan2' is not defined for values of class 'sym'.

Error in ==> C:\MATLAB6p5\toolbox\matlab\elfun\angle.m
On line 15  ==> p = atan2(imag(h), real(h));

_luca.barletta
cambia la funzione, non mettere un banale seno

Bandit1
vabbè apro un 3d su un programma adeguato che non fa problemi

freddofede
Ho un problemino forse un pò più banale: ma se passo alla feval "(x - 5)^2", perché me la considera una funzione non valida?
In poche parole mi servirebbe capire la sintassi con cui scrivere le function, che con l'help non riesco a trovare...

_luca.barletta
cosa vuoi ottenere di preciso?

freddofede
La valutazione di (x-5)^2 in un punto $x_0$ che gli dirò tramite la feval.

P.S.: Grande Luca, mi serviva subito una risposta :-D thanks!

_luca.barletta
usa il comando subs:

syms x f
f = (x-5)^2;
subs(f,x,x_0)

freddofede
No dovrei usare proprio la feval... non c'è verso?

_luca.barletta
allora, feval si usa quando devi passare dei parametri e allo stesso tempo chiamare una funzione di una libreria di matlab o definita dall'utente. Quindi potresti scrivere una funzione f che non fa altro che calcolare (x-5)^2 e poi chiamare feval(f,x_0)

freddofede
Macchinoso... nun me l'aspettavo. Grazie comunque :wink:

_luca.barletta
per questo ti avevo consigliato subs

freddofede
Lo strano è che sul libro si usa solo la feval, e io volevo proprio testare la versione lì riportata (se ti interessa si tratta del metodo di accellerazione di Aitken).

EDIT: probabilmente è stato implementato così per la compatibilità all'indietro.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.