Revision as of 17:27, 22 January 2011 by Ahmadi (Talk | contribs)

Homework 1 Solution

    1. Below is a Matlab code that plays the melody of the song "Smoke on the Water" by Deep Purple at original tempo:

      % Defining sampling period and duration of a quarter note
      T=0.00001;
      BPM=112;
      dur=1/(BPM/60);

      % Defining note durations
      haft=0:T:dur*2;
      dotted_quart=0:T:dur*1.5;
      quart=0:T:dur;
      eighth=0:T:dur/2;

      % Defining notes of the melody
      g=sin(2*pi*392*quart);
      b_flat=sin(2*pi*466.16*quart);
      c_dq=sin(2*pi*523.25*dotted_quart);
      c_h=sin(2*pi*523.25*haft);
      d_flat=sin(2*pi*554.37*eighth);

      % Creating, playing, and saving melody into a wave file
      tune=[g b_flat c_dq g b_flat d_flat c_h g b_flat c_dq b_flat g];
      sound(tune,1/T)
      wavwrite(tune,1/T,8,'1_a.wav')

    2. Below is a Matlab code that plays the melody at twice original tempo:

      % Defining sampling period and duration of a quarter note
      % The tempo of the song is increased by a factor of 2 by modifying the variable BMP accordingly
      T=0.00001;
      BPM=2*112;
      dur=1/(BPM/60);

      % Defining note durations
      haft=0:T:dur*2;
      dotted_quart=0:T:dur*1.5;
      quart=0:T:dur;
      eighth=0:T:dur/2;

      % Defining notes of the melody
      g=sin(2*pi*392*quart);
      b_flat=sin(2*pi*466.16*quart);
      c_dq=sin(2*pi*523.25*dotted_quart);
      c_h=sin(2*pi*523.25*haft);
      d_flat=sin(2*pi*554.37*eighth);

      % Creating, playing, and saving melody into a wave file
      tune=[g b_flat c_dq g b_flat d_flat c_h g b_flat c_dq b_flat g];
      sound(tune,1/T)
      wavwrite(tune,1/T,8,'1_b.wav')

    3. Below is a Matlab code that plays the melody after applying the transformation $ y(t)=x(2t) $:

      % Defining sampling period and duration of a quarter note
      T=0.00001;
      BPM=112;
      dur=1/(BPM/60);

      % Defining note durations
      haft=0:T:dur*2;
      dotted_quart=0:T:dur*1.5;
      quart=0:T:dur;
      eighth=0:T:dur/2;

      % Defining notes of the melody
      % y(t)=x(2t) transformation is applied by multiplying the value inside the sine waves by a factor of 2
      g=sin(2*pi*2**392*quart);
      b_flat=sin(2*pi*2*466.16*quart);
      c_dq=sin(2*pi*2*523.25*dotted_quart);
      c_h=sin(2*pi*2*523.25*haft);
      d_flat=sin(2*pi*2*554.37*eighth);

      % Creating, playing, and saving melody into a wave file
      tune=[g b_flat c_dq g b_flat d_flat c_h g b_flat c_dq b_flat g];
      sound(tune,1/T)
      wavwrite(tune,1/T,8,'1_c.wav')

    1. The forward phrase is "number nine".
    2. Below is a Matlab code that plays the extract backwards:

      [song Fs nbits] = wavread('Beatles.wav');
      song = flipud(song);
      wavwrite(song, Fs, nbits,'2_b.wav')

      Yes, there is a subliminal message in this extract. The message is "Turn me on, dead man".

Alumni Liaison

Ph.D. 2007, working on developing cool imaging technologies for digital cameras, camera phones, and video surveillance cameras.

Buyue Zhang