problem in getting execution time in MATLAB
i am Mahantesh from BASAVESHWAR ENGG COLLEGE,BAGALKOT. INDIA we are doing our final year project on polyphase implementation of fir filter banks using MATLAB .we have used a kaiser window digital filter in this.our aim of project is to implement the polyphasing of filter such that it reduces the time needed for convolution with any large input signal like speech and image signals.we are dividing the filter in its poly phases as shown in the below example
if filter h(n)=[1 2 3 4 5 6 7 8]
then for two phase implementation we have h1(n)=[ 1 0 3 0 5 0 7 0]
and for h2(n)=[0 2 0 4 0 6 0 8]
then we calculate the time for convolution of this with a noise file of 50000 samples.
that is the program looks like
y=conv(x,h) %where x=noise signal and h= filter coefficients
this is the program with out phasing and which should take larger time to execute than the phased programs.the programs for phased filter is
y=conv(x,h1)+conv(x,h2) %where x=noise signal, h1 and h2 are two phased filter
%coefficints as explained above
according to logic the two phased program should take lesser time to execute that is to convolve.
OUR PROBLEM IS WE ARE GETTING THE ELAPSED TIME WHICH IS NOT CONSTANT VARRIES FOR EVERY EXECUTION OF THE ABOVE PROGRMS.SOME TIMES IT SHOWS LESSER TIME AND SOME TIME IT SHOWS A LARGER TIME, WE ARE A BIT CONFUSED ABOUT THIS AND HAVE ALSO CHECKED WITH INSTRUCTIONS etime and cputime in matlab but the problem persists,we have written programs up to eight phases in all and not able to get the exact out put, so we request you to help us regarding the program and the execution time.we request you to guide whether our program is correct or not and why the matlab shows the random execution time,please respond as quickly as you get this mail