How to cascade two filters? I have to filter an audio signal through a cascade of two equal low-pass FIR filters. They are half-band filters so each one has a cut-off at $\pi/2$.

Then, I have to multiply the resulting signal (obtained through the cascade of the two filters) for $z^{-q}$, where $q$ is a scalar.

Firstly, I thought to convolve the impulse responses of the two low-pass filters in this way  (where hlp1=hlp2):

hconv=conv(hlp1, hlp2),


and then filter the audio signal (called x) in this way:

x_filtered=filter(hconv,1,x)


Is it correct?

I expect that the frequency response hconv is a low-pass filter with cutoff at $\pi/4$, but the command fvtool(hconv) shows that hconv has a cutoff at $\pi/2$, and not at $\pi/4$.

Is it correct?

Moreover, how can I implement the multiplication of the filtered signal x_filtered for $z^{-q}$?
You can easily verify yourself that the following two ways of cascading two filters are equivalent (up to numerical inaccuracies):


% method 1
y1 = filter(h1,1,x);
y = filter(h2,1,y1);

% method 2
h = conv(h1,h2);
y = filter(h,1,x);


So you were on the right track when you convolved the two impulse responses. Note that linear convolution is what you need, not circular/cyclic convolution.

As for the multiplication with $z^{-q}$, where I hope that $q$ is an integer, you need to understand that it is not the (time-domain) signal that is being multiplied, but that this multiplication refers to the Z-transform of the signal. In the Z-transform domain, a multiplication with $z^{-q}$ corresponds to a delay of $q$ samples.

Finally, regarding your expectation that the cut-off frequency of the cascaded system is $\pi/4$, note that the frequency response of the cascaded system is simply the multiplication of the two individual frequency responses, so the cut-off frequency does not change significantly (it may change a bit depending on how you define it). The transition from pass band to stop band will be steeper, and the stop band attenuation increases, but the start of the transition band remains unchanged. If both filters are identical you will basically get a better low pass filter with the same pass band and stop band edges.