how to do wavwrite on this mat file
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi i am having mat file which is having DTMF tones i am listening tones by this
x = load('dtmfsig.mat')
f = fieldnames(x)
soundsc(x.(f{1}), 8000)
Now i want to save this tone in a wave file
i know wavread command but how to use it here??
1 comentario
tammna abid
el 9 de Mayo de 2012
Hello there ,
i also have same problem , want to convert .mat file to .wav file with this code but unable to do so
x=load('read.mat');
wavwrite(x,8000,16,'foo.wav');
i also did the method mention below x.f{1} but of no help, pls help me out
Respuesta aceptada
Wayne King
el 31 de Oct. de 2011
fieldnames() returns a cell array. So
f = fieldnames(x);
is returning the fieldnames of x in the cell array f
x.(f{1}) is addressing the field of x that is in the first element of that cell array.
Is that what you want to write? It might be x.(f{2}), etc. depending on how the structure array is formed.
2 comentarios
Wayne King
el 31 de Oct. de 2011
For example (this is just my example!)
x = struct('Fs',8000,'data',randn(1e3,1));
f = fieldnames(x);
x.(f{1}) % this is 8000, the sampling frequency
plot(x.(f{2})); % is the data field (the signal)
% but
x = struct('data',randn(1e3,1),'Fs',8000);
f = fieldnames(x);
plot(x.(f{1})) % this is the signal
x.(f{2}) % this is the sampling frequency
tammna abid
el 9 de Mayo de 2012
what actually 'data' here above stand for ? means data of .mat file ?, i didnt get your example above
Más respuestas (2)
Honglei Chen
el 31 de Oct. de 2011
To write a wave file, you need at least the signal and the sampling frequency. From you example, it seems you can just do
wavwrite(x.(f{1}),8000,'foo.wav')
where you can replace foo.wav to whatever the name you choose for your wav file.
HTH
1 comentario
tammna abid
el 9 de Mayo de 2012
Siri am having the same problem , pls figure it out where i am wrong
x=load('read.mat');
>> f=fieldnames(x);
>> wavwrite(x.(f{1}),8000,'foo.wav')
Warning: Data clipped during write to file:foo.wav
> In wavwrite>PCM_Quantize at 247
In wavwrite>write_wavedat at 267
In wavwrite at 112
>>
what these warning actually means ?
moonman
el 31 de Oct. de 2011
2 comentarios
Fangjun Jiang
el 31 de Oct. de 2011
You are loading 'dtmfsig.mat'. x.(f{1}) will be the first (alphabetically) variable in the .mat file.
Ver también
Categorías
Más información sobre Whos en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!