# 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. Jul 21, 2020 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. Jul 21, 2020 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??? Jul 22, 2020 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. Jul 22, 2020 at 16:26
• Thanks dear Matt. If I use the equations you have written a reasonable response will be obtained, but I don't figure out what is that negative sign in angle formula. In page 451, Table 8.2 of the book: Digital Signal Processing using MATLAB, and also in Table 7.1 of Discrete-time Signal Processing Oppenheim 3rd edition, we have no negative sign in formula. We have a negative sign in high pass transformation formula but no negative sign for lowpass one. What is that negative sign in your formula? Sincere thanks. Jul 23, 2020 at 8:49