# Frequency conversion in IIR lowpass-to-lowpass transformation

We use $$\ z^{-1} \xrightarrow{} \frac{z^{-1}-\alpha}{1-{\alpha}z^{-1}}$$ and $$\alpha = \frac{\sin(\omega_c^{'}-\omega_c)/2}{\sin(\omega_c^{'}+\omega_c)/2}$$ for a lowpass-to-lowpass frequency transformation, where $$\omega'_c$$ is the cut-off frequency of the prototype lowpass filter, and $$\omega_c$$ is the cut-off frequency of the transformed lowpass filter.

In practice we know the desired edge frequencies $$\ \omega_s$$ and $$\ \omega_p$$ and we are required to find the prototype lowpass cutoff frequencies $$\ \omega_s^{'}$$ and $$\ \omega_p^{'}$$.

For calculating $$\ \alpha$$ we have to know $$\ \omega_c^{'}$$ . If we calculate $$\ \alpha$$ we can have $$\ \omega_s^{'}$$ by $$\ \omega_s^{'} = \angle{(\frac{e^{-j\omega_s}+\ \alpha}{1-\alpha e^{-j\omega_s}})}$$ But I don't know how select a suitable $$\ \omega_p^{'}$$.

• You forgot to explain what you're trying to do. You don't need a lowpass-to-lowpass transformation in the discrete domain in order to design a discrete-time filter from an analog prototype. – Matt L. Jul 21 '20 at 10:41
• Hi. My problem is question P8.36 of "Digital Signal Processing using matlab: Ingle and Proakis". The question says write a MATLAB function to determine the lowpass prototype digital filter frequencies from an arbitrary lowpass digital filter specifications using the formula above. – Mohammadsadeq Borjiyan Jul 21 '20 at 13:36

The prototype filter is not uniquely defined by the two band edges of the filter to be designed. So you have to choose one of the two edge frequencies of the prototype filter. E.g., if you choose $$\omega'_p$$, you can compute the value of $$\alpha$$ according to

$$\alpha=\frac{\sin[(\omega'_p-\omega_p)/2]}{\sin[(\omega'_p+\omega_p)/2]}\tag{1}$$

where $$\omega_p$$ is the desired pass band edge. Now that you have $$\alpha$$, the stop band edge of the prototype filter can be computed from the desired stop band edge $$\omega_s$$:

$$\omega'_s=-\angle\left(\frac{e^{-j\omega_s}-\alpha}{1-\alpha e^{-j\omega_s}}\right)\tag{2}$$

EDIT: the lowpass-to-lowpass transformation

$$z^{-1}\longrightarrow\frac{z^{-1}-\alpha}{1-\alpha z^{-1}}\tag{3}$$

transforms a prototype edge frequency $$\omega'_s$$ in the following way:

$$e^{-j\omega'_s}=\frac{e^{-j\omega_s}-\alpha}{1-\alpha e^{-j\omega_s}}\tag{4}$$

From $$(4)$$ it follows that

$$-\omega'_s=\angle\left(\frac{e^{-j\omega_s}-\alpha}{1-\alpha e^{-j\omega_s}}\right)\tag{5}$$

which is equivalent to $$(2)$$.

Note that Eq. $$(5)$$ is different from Eq. $$(8.71)$$ in the book because $$(8.71)$$ is derived from a lowpass-to-highpass transformation.

• I want to write a MATLAB function for this, so the problem isn't a special case. The MATLAB code is: % LP-to-LP frequency-band transformation: function [wpLP,wsLP,alpha] = lp2lpfre(wplp,wslp) wpLP = 0.2*pi; alpha = (sin((wplp-wpLP)/2))/(sin((wplp+wpLP)/2)); wsLP = angle((exp(-1iwslp)-alpha)/(1-alphaexp(-1i*wslp))); For example, for wplp=0.45*pi and wslp=0.5*pi, if we choose wpLP equal to 0.2*pi, this amounts give us wsLP=-2.7749 and alpha=0.6871.That is obviously wrong because wsLP is less than wpLP and furthermore it is a negative value! So where is false??? – Mohammadsadeq Borjiyan Jul 22 '20 at 9:44
• @MohammadsadeqBorjiyan: My answer is not about a "special case", it's totally general. It has enough information to write the corresponding Matlab routine. I'm afraid you'll have to write the routine yourself. Also, using the formulas in my answer I don't arrive at the numbers given in your comment. – Matt L. Jul 22 '20 at 16:26