Guest --Gustavo -- Postado Junho 20, 2008 Denunciar Share Postado Junho 20, 2008 Alguém sabe como eu faço para reproduzir um som e ao mesmo tempo gravá-lo no Matlab?Primeiro usei o wavplay para reproduzir.Logo abaixo para gravar usei o wavrecord.O som foi reproduzido mas não foi gravado.Alguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Gilson -- Postado Junho 28, 2008 Denunciar Share Postado Junho 28, 2008 Oi Gustavo.Tenho um arquivo pro matlab, que usei na faculdade pra gravar um som e ouvir.Acho que é isso que você quer. Não tem como anexar arquivos aki? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Gilson -- Postado Junho 28, 2008 Denunciar Share Postado Junho 28, 2008 Gustavo,São essas linhas de comando.Copie e cole no editor do matlab, conecte um microfone, execute e se divirta.Espero que tenha conseguido te ajudar.AbraçosAI = analoginput('winsound',0); chan = addchannel(AI,1);AI % printing few parameters get(AI) % printing all parameters %the following commands%will set the sample rate, the number of samples to acquire, and the trigger condition.%In this example, we will take 44,100 samples in one second (this is a standard audio%rate). We will trigger the hardware manually, which means that when we would%like the sound card to start collecting data from the microphone when we type the%command trigger(AI).% AI - In case you want to take a look at the parameters print the% structure "AI"duration = 10;SampleRate = 44100;SampleRate = 44100;set(AI,'SampleRate',SampleRate); set(AI,'SamplesPerTrigger',duration*SampleRate); set(AI,'TriggerType','Manual'); %AI% To acquire: start, trigger and get data%AIstart(AI);%AItrigger(AI);%AIdata = getdata(AI);fid = fopen('som.bin', 'wb'); fwrite(fid, data, 'double'); fclose(fid);fid2 = fopen('som.bin', 'rb'); read_data = fread(fid2, 'double')'; read_data = read_data';data2 = data(1:2:size(data));data4 = data(1:4:size(data));data8 = data(1:8:size(data));data16 = data(1:16:size(data));data32 = data(1:32:size(data));%plottingfigure(1); plot(data)figure(10); plot(data2)figure(11); plot(data4)figure(12); plot(data8)figure(13); plot(data16)figure(14); plot(data32)% closing the device%waittilstop(AI,2)wait(AI,2)delete(AI)clear AI fft1 = fft(data);% fft2 = fft(data2);fft4 = fft(data4);% fft8 = fft(data8);% fft16 = fft(data16);% fft32 = fft(data32);%figure(3); plot(abs(fft1))fft1s = fftshift(fft1);%fft2s = fftshift(fft2);fft4s = fftshift(fft4);%fft8s = fftshift(fft8);%fft16s = fftshift(fft16);%fft32s = fftshift(fft32);fft_x_coord = -SampleRate/2: SampleRate/(size(fft1s,1)-1) :SampleRate/2;figure(20); plot(fft_x_coord/1000, abs(fft1s))% fft_x_coord = -SampleRate/4: (SampleRate/2)/(size(fft2s,1)-1) :SampleRate/4;% figure(22); plot(fft_x_coord/1000, abs(fft2s))% % fft_x_coord = -SampleRate/8: (SampleRate/4)/(size(fft4s,1)-1) :SampleRate/8;% figure(24); plot(fft_x_coord/1000, abs(fft4s))AO = analogoutput('winsound',0); chan = addchannel(AO,1);%% Set the sample rate and how long we will send %% data for Data Acquisition at 44,100 Hz, 1 seconds of dataduration = 5;SampleRate = 44100;%SampleRate = 44100/2;set(AO,'SampleRate',SampleRate) set(AO,'TriggerType','Manual') %NumSamples = SampleRate*duration;%% Create a signal that we would like to send, 500 Hz sin wave%x = linspace(0,2*pi*500,NumSamples);%data = sin(x)';%% Put the data in the buffer, start the device, and trigger%putdata(AO,data)putdata(AO,read_data)%putdata(AO,data2)%putdata(AO,data)%putdata(AO,data)%putdata(AO,data)%putdata(AO,data32)start(AO)trigger(AO)%% clean up, close down%%waittilstop(AO,5)wait(AO,duration+2)delete(AO)clear AO Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Gustavo --
Alguém sabe como eu faço para reproduzir um som e ao mesmo tempo gravá-lo no Matlab?
Primeiro usei o wavplay para reproduzir.
Logo abaixo para gravar usei o wavrecord.
O som foi reproduzido mas não foi gravado.
Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.