title: Obtain the envelop of a signal using MATLAB
body: <p>I'm trying to extract the peaks of an audio file. I have the following code to extract the envelope of my amplitude spectrum. However I'm not getting the desired output graph. Can someone tell me what adjustment I need to make to get a proper graph. Here's my code:</p>
  
  <pre><code>[song,FS] = wavread('c scale fast.wav');
  
  
  P=20000/44100*FS;                   % length of filter 
  N=length(song);                     % length of song
  t=0:1/FS:(N-1)/FS;                  % define time period
  % Plot time domain signal
  figure(1);
  subplot(3,1,1)
  plot(t,(3*abs(song)))
  title('Wave File')
  ylabel('Amplitude')
  xlabel('Length (in seconds)')
  xlim([0 1.1])
  
  xlim([0 N/FS])
  
  
  % Gaussian Filter
  x = linspace( -1, 1, P);         % create a vector of P values between -1 and 1 inclusive
  sigma = 0.335;                  % standard deviation used in Gaussian formula
  myFilter = -x .* exp( -(x.^2)/(2*sigma.^2));% compute first derivative, but leave constants out
  
  myFilter = myFilter / sum( abs( myFilter ) ); % normalize
  % Plot Gaussian Filter
  
  subplot(3,1,2)       
  plot(myFilter)
  title('Edge Detection Filter')
  
  % fft convolution
  myFilter = myFilter(:);                         % create a column vector
  song(length(song)+length(myFilter)-1) = 0;      %zero pad song
  myFilter(length(song)) = 0;                     %zero pad myFilter
  edges =ifft(fft(song).*fft(myFilter));
  
  tedges=edges(P/2:N+P/2-1);                      % shift by P/2 so peaks line up w/ edges
  tedges=tedges/max(abs(tedges));                 % normalize
  
  % Plot song filtered with edge detector          
  subplot(3,1,3)
  
  plot(1/FS:1/FS:N/FS,tedges)
  title('Song Filtered With Edge Detector')
  xlabel('Time (s)')
  ylabel('Amplitude')
  ylim([-1 1.1])
  xlim([0 N/FS])
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/WZybx.jpg" alt="This is the graph i get for the above code and im focusing on the &quot;song filtered with edge detector&quot; plot "></p>
  
  <p>This is the graph i get for the above code and im focusing on the "song filtered with edge detector" plot</p>
  
  <p><img src="https://i.stack.imgur.com/2Ti2n.jpg" alt="enter image description here"></p>
  
  <p>And this is the "song filtered with edge detector" plot I NEED to get </p>