SignalLab2/vocoder.m

33 lines
1.0 KiB
Matlab

pkg load signal
modfile = 'C:/Users/Hercu/Documents/Git/signallab2/modulator22.wav';
carfile = 'C:/Users/Hercu/Documents/Git/signallab2/carrier22.wav';
outfile = "C:/Users/Hercu/Documents/Git/signallab2/vocodedsound.wav";
[modul, sr1] = audioread(modfile);
[carrier, sr2] = audioread(carfile);
[outfile, sr3] = audioread(outfile);
if sr1~=sr2, disp('your sampling rates dont match'); end
y = chanvocoder(carrier, modul, 512, 16, .2);
audiowrite("C:/Users/Hercu/Documents/Git/signallab2/outfile.wav",y,sr1)
tmod=0:1/sr1:length(modul)/sr1-1/sr1;
tcarrier=0:1/sr2:length(carrier)/sr2-1/sr2;
tout=0:1/sr3:length(outfile)/sr3-1/sr3;
subplot(3,1,1);
plot(tmod,modul);
xlabel("time(s)");
ylabel('amplitude modul (norm. unit)');
subplot(3,1,2);
plot(tcarrier,carrier);
xlabel("time(s)");
ylabel('amplitude carrier (norm. unit)');
subplot(3,1,3);
plot (tout,outfile);
xlabel("time(s)");
ylabel('amplitude outfile (norm. unit)');
spectrogram(modul, sr1, 10, 30);
spectrogram(carrier, sr2, 10, 30);
spectrogram(outfile, sr3, 10, 30);