Filter löschen
Filter löschen

How could i give audio file as an external input to system in matlab ?

2 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 28 Jan. 2013
Yes, you can use fi = wavread('engine.wav');
Do be careful, though: many audio files are stereo, and so wavread() would result in two columns but your code appears to be expecting only one column.

Weitere Antworten (2)

Aniket
Aniket am 28 Jan. 2013
thanks Walter
and small doubt if the file is stereo then i have to use left and right coloumn and if file is mono then i can directly use fi as an input ?

Jan
Jan am 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 Kommentare
Aniket
Aniket am 1 Feb. 2013
Means you are saying i have to use simulink ? because simulink using fixed step solver ...i have searched in matlab doc about fixed step but i am not getting any search result .

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Measurements and Spatial Audio finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by