annotate _misc/featureextraction/bigframefft.m @ 9:4ea6619cb3f5 tip

removed log files
author matthiasm
date Fri, 11 Apr 2014 15:55:11 +0100
parents b5b38998ef3b
children
rev   line source
matthiasm@8 1
matthiasm@8 2 % segment audio data into overlapping frames and take fft of each frame
matthiasm@8 3
matthiasm@8 4 function [fftframes,info] = bigframefft(audiodata, info)
matthiasm@8 5
matthiasm@8 6 fprintf(1,'framefft\n');
matthiasm@8 7
matthiasm@8 8 info.undertest = [info.undertest '\nfft'];
matthiasm@8 9
matthiasm@8 10 % set window length
matthiasm@8 11 win = info.windowlength;
matthiasm@8 12
matthiasm@8 13
matthiasm@8 14 % Pad audio with zeros so that first analysis frame corresponds with first
matthiasm@8 15 % audio sample
matthiasm@8 16
matthiasm@8 17 pad = zeros((win/2),1);
matthiasm@8 18
matthiasm@8 19 %audiodata = [pad; audiodata; pad];
matthiasm@8 20
matthiasm@8 21 % find size of input
matthiasm@8 22 ilength = length(audiodata);
matthiasm@8 23
matthiasm@8 24
matthiasm@8 25 %pad audio data
matthiasm@8 26 audiodata = [pad; audiodata; pad];
matthiasm@8 27
matthiasm@8 28 % set hop size
matthiasm@8 29 hop = fix(win.*info.overlap);
matthiasm@8 30
matthiasm@8 31 info.hopsize = hop;
matthiasm@8 32
matthiasm@8 33 % set number of windows
matthiasm@8 34 num_win = ceil((ilength+1)/hop);
matthiasm@8 35
matthiasm@8 36 info.numberframes = num_win;
matthiasm@8 37
matthiasm@8 38 start=1;
matthiasm@8 39
matthiasm@8 40 fftframes = zeros(win,num_win);
matthiasm@8 41
matthiasm@8 42 check = ceil(num_win/10);
matthiasm@8 43
matthiasm@8 44
matthiasm@8 45 % do fft analysis for each window:
matthiasm@8 46 for i = 1 : num_win;
matthiasm@8 47
matthiasm@8 48 segment = audiodata(start:(start + win - 1));
matthiasm@8 49
matthiasm@8 50 fftframes(:,i) = fft(segment, win)';
matthiasm@8 51
matthiasm@8 52 start = start + hop;
matthiasm@8 53
matthiasm@8 54 if mod(i,check) == 0
matthiasm@8 55 fprintf(1,'.');
matthiasm@8 56 end
matthiasm@8 57
matthiasm@8 58 end;
matthiasm@8 59 fprintf(1,'\n');
matthiasm@8 60
matthiasm@8 61