The functions return single data which represent the imaginary part of the complex analytical signal. The designed FIR filter must have an odd number of taps so that the filter delay comes out even ((N-1)/2). So designing a filter with an order of 22 will result in a filter with 23 taps. The resulting filter imaginary data will then be delayed by ((N-1)/2) samples when compared to the real part of the data.
Example:
N = 7;
coefficients = [-0.20476,3.9051e-05,-0.63412,0,0.63412,-3.9051e-05,0.20476];
imaginary_data = filter(coefficients,1,data);
imaginary_data = imaginary(data1, ((N - 1) / 2));
complex_data = complex(data, imaginary_data);