%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SMS - 7.cvičení: "Cross" syntéza % R.Čmejla, 13.listopadu 2017 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % skript vyžaduje soubory: tom.wav % kytara.wav % why11.wav % pet1.asc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% % Příklad 1: Řečový signál a jeho FFT spektrum % % nekolik period E - 512 vzorku signal1=pet1(1500:2012); N1=512; % jedna perioda E 64 vzorku signal2=pet1(1500:1564); N2=64; % inicialni P - 256 vzorku signal3=pet1(150:406); N3=256; % finalni T - 128 vzorku signal4=pet1(4100:4356); N4=128; psd1=(abs(fft(signal1)/N1)).^2; plot(psd1(1:N1/2)); %% % Příklad 2: LPC spektra % aa1=lpc(signal1,16); fch1z=abs(freqz(1,aa1,128)).^2; plot(w/pi,fch1z); %% % Příklad 3: Signál chyby predikce % %% % Příklad 4: Závislost výkonu chyby predikce na řádu AR modelu % a odhad řádu AR modelu % %% % Příklad 5: LPC vokodér - různá buzení (šumem, impulsy, chybou predikce) % [signal,fs] = wavread('why11.wav'); signal = signal-mean(signal); sig = signal./max(abs(signal)); N = length(sig); % PARAMETRY VOKODÉRU window_length = 512; window_shift = round(2*window_length/3); %% % Příklad 6: LPC vokodér - časové změny (koef1) % a frekvenční změny (koef2) koef1=0.5; % < 1 kratší; > 1 delší koef2=0.5; % < 1 hlubší; > 1 vyšší %% % Příklad 7: Audio efekt "vocoding" nebo "cross-syntéza" % Řeč - parametry časově proměnného filtru % Hudba - budící signál % [signal1,fs] = wavread('tom.wav'); signal1 = signal1-mean(signal1); sig1 = signal1./max(abs(signal1)); [signal2,fs] = wavread('kytara.wav'); signal2 = signal2-mean(signal2); sig2 = signal2./max(abs(signal2)); N = length(sig1); window_length = 512; window_shift = round(2*window_length/3); X = []; k=1;