How could i give audio file as an external input to system in matlab ?
Afficher commentaires plus anciens
Hello,
I have matlab code. Right now in this code i am giving fi as a external input that is fi = cos(10*Tspan) but instead of this how could i give audio file or *.wav file as an external input to this system ? I have read wavread function but not getting idea.
As per my perception, if i have for example engine.wav file then should i right fi = wavread(engine.wav) and this fi i can used as a external input ? or i have to write something extra for this ?
************************
function dz = myeqd(t,y,ti,fi)
dz = zeros(3,1);
mu=0.7;
r= sqrt(y(1)^2 + y(2)^2);
K=2;
F=interp1(ti,fi,t);
dz(1)= (mu - r^2)*y(1) - y(3)*y(2) +K*F;
dz(2) = (mu - r^2)*y(2) + y(3)*y(1);
dz(3) = (-K*F) * (y(2)/sqrt(y(1)^2 + y(2)^2));
**********************************
then call this function
********************************
Tspan= 0:0.01:500; % time vector
fi = cos(10*Tspan); % external perturbation
ti=Tspan;
[T,Y]=ode45(@(t,y) myeqd(t,y,ti,fi),Tspan,[1;1;30]);
plot (T,Y(:,3))
************************
thank you
Réponse acceptée
Plus de réponses (2)
Jan
le 28 Jan 2013
Exactly:
fi = wavread('engine.wav')
Be sure to catch the frequency also, otherwise you cannot correlate the signal with the real time.
But a problem remains: You function to be integrated has discontinuities caused by the linear interpolation of a discontinuos perturbation. The stepsize control of ODE45 requires a smooth function, see: http://www.mathworks.com/matlabcentral/answers/59582#answer_72047. In consequence you can get 1. long runtimes and inaccurate results, 2. a warning and inaccurate results, or 3. an error, which stops the integration depending on the input data. From a scientific point of view, this is not a reliable calculation and therefore a waste of time.
6 commentaires
Aniket
le 29 Jan 2013
@Aniket: The documentation of wavread reveals the relevant details: doc wavread . While this should be easy, handling the discontinuities remains a serious problem.
Aniket
le 1 Fév 2013
Jan
le 1 Fév 2013
Try a fixed step solver and define the steps such, that they happen at the discontinuous changes of the right hand side.
Aniket
le 1 Fév 2013
Catégories
En savoir plus sur Code Generation and Deployment dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!