SignalLab2/vocoder.m

27 lines
766 B
Matlab

pkg load signal
modfile = 'modulator22.wav';
carfile = 'carrier22.wav';
outfile = "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(outfile,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;
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,2,3);
plot (tout,outfile);
xlabel("time(s)");
ylabel('amplitude outfile (norm. unit)');