%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Multimedia Signal Synthesis at CTU Prague % Copyright © 2015 by Roman Cmejla %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Suggestions for 4th laboratory: % Phase Vocoder and Spectral Manipulation % October 23, 2015 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Recommended links: % http://en.wikipedia.org/wiki/Phase_vocoder % http://music.columbia.edu/cmc/musicandcomputers/chapter5/05_04.php % http://www.ee.columbia.edu/~dpwe/resources/matlab/pvoc/ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ----------------------------------------------------------- % Phase Vocoder [signal,fs] = wavread('why11.wav'); N = length(sig); window_length = window_shift = R = % Analysis X = []; k=1; for start = 0:window_shift:N-window_length, frame = sig(start+1:start+window_length)... .*hamming(window_length); X(:,k)=fft(frame); k=k+1; end % Transformation Y=X % Synthesis k=1; N_new=size(Y,2)*window_shift+window_length; signal_y=zeros(N_new,1); for start = 0:window_shift:(size(Y,2)-1)*window_shift, segment=real(ifft(Y(:,k),window_length))... .*hamming(window_length); signal_y((start+1):(start+window_length))... =signal_y((start+1):(start+window_length))+segment; k=k+1; end Perform the following spectral manipulation: a) Make a direct resynthesis of the songs why11.wav (only analysis - synthesis). Listen both signals in the time and frequency domain. b) Add the sine signal to the song and suppress this periodical interference in the spectrum. c) Extend the signal from 25 to 250% d) Shorten the signal e) Shift the song to high frequencies f) Shift the song to low frequencies g) Implement the robot h) Implement the whisper i) Demonstrate nonlinear noise reduction The above tasks do also with the signal of a musical instrument, for example piano.