46 lines
959 B
Matlab
46 lines
959 B
Matlab
modfile = 'Sound/modulator22.wav';
|
|
carfile = 'Sound/white.wav';
|
|
outfile = 'Sound/vocodedsound.wav';
|
|
|
|
[modul, sr1] = audioread(modfile);
|
|
[carrier, sr2] = audioread(carfile);
|
|
|
|
if sr1 ~= sr2
|
|
disp('Sampling rates dont match');
|
|
end
|
|
|
|
y = chanvocoder(carrier, modul, 512, 16, 0.2);
|
|
audiowrite(outfile, y, sr1);
|
|
|
|
% Plot temporal variations of modulator, carrier, and output signals
|
|
t_mod = (0:length(modul)-1) / sr1;
|
|
t_car = (0:length(carrier)-1) / sr1;
|
|
t_out = (0:length(y)-1) / sr1;
|
|
|
|
figure;
|
|
subplot(3,1,1);
|
|
plot(t_mod, modul);
|
|
title('Modulator Signal');
|
|
xlabel('Time (s)');
|
|
ylabel('Amplitude');
|
|
|
|
subplot(3,1,2);
|
|
plot(t_car, carrier);
|
|
title('Carrier Signal');
|
|
xlabel('Time (s)');
|
|
ylabel('Amplitude');
|
|
|
|
subplot(3,1,3);
|
|
plot(t_out, y);
|
|
title('Output Signal');
|
|
xlabel('Time (s)');
|
|
ylabel('Amplitude');
|
|
|
|
% Compute spectrogram of modulator, carrier, and output signals
|
|
spectrogram(modul, sr1, 5, 30);
|
|
|
|
spectrogram(carrier, sr1, 5, 30);
|
|
|
|
spectrogram(y, sr1, 5, 30);
|
|
|