Advertisement
r4j

blurring function

r4j
Jul 15th, 2015
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.86 KB | None | 0 0
  1. function [b_time, b_freq] = blurring_function(M_t, M_f, hop, N, win_t, win_f)
  2. %
  3. % M_f: long window size
  4. % M_t: short window size
  5. % hop: hop size
  6. % N : fftsize
  7. % win_t : short window
  8. % win_f : long window
  9.  
  10. win_t = [win_t; zeros(M_f-M_t,1)];
  11.  
  12. % time-domain blurring function
  13. R_t = (M_f-M_t)/hop + 1;
  14.  
  15. big_win_t = zeros(M_f,R_t);
  16. for i=1:R_t
  17.     big_win_t(:,i)= circshift(win_t,hop*(i-1));
  18. end
  19.  
  20. b_time = big_win_t\win_f;
  21. %b_time = b_time/sum(b_time);
  22.  
  23. % frequency-domain blurring function
  24. R_f = ceil(N/M_t*8 + 1);
  25.  
  26. if ( mod(R_f,2) == 0 )
  27.     R_f = R_f + 1;
  28. end
  29.  
  30. zpf = 1;
  31. win_t_fft = fftshift(abs(fft(win_t,N*zpf)));
  32. win_f_fft = fftshift(abs(fft(win_f,N*zpf)));
  33.  
  34. big_win_f_fft = zeros(N*zpf,R_f);
  35. for i=1:R_f
  36.     big_win_f_fft(:,i)= circshift(win_f_fft,(-(R_f-1)/2-1+i)*zpf);
  37. end
  38.  
  39. b_freq = big_win_f_fft\win_t_fft;
  40. %b_freq = b_freq/sum(b_freq);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement