This website uses cookies. By using this site, you consent to the use of cookies. For more information, please take a look at our Privacy Policy.
Home > FPGA Technical Tutorials > Design Recipes for FPGAs Using Verilog and VHDL > Digital Filters > Converting S Domain to Z Domain

TABLE OF CONTENTS

Xilinx FPGA FPGA Forum

Converting S Domain to Z Domain

FONT SIZE : AAA

The method of converting an S domain equation for a filter to its equivalent Z domain expression uses the bilinear transform. This is a standard method for expressing the S-domain equation in the Z-domain. The basic approach is to replace each instance of s with its equivalent Z domain notation and then rearrange into the most convenient form. The transform is called bilinear as both the numerator and denominator of the expression are linear in terms of z.

s = z − 1 z + 1 (9.2)

If we take a simple example of a basic second order filter we can show how this is translated into the equivalent Z domain form:

H(s) = 1 s2 + 2s + 1 (9.3)

In order to get the function H(s) in its Z-domain equivalent, replace each occurrence of s with the expression for s in terms of z shown in Equation (9.2), giving:

H(z) = 1 (z−1 z+1 )2 + 2(z−1 z+1 ) + 1 (9.4) 

H(z) = (z + 1)2 (z − 1)2 + (z − 1)(z + 1) + (z + 1)2 (9.5) 

H(z) = z2 + 2z + 1 3z2 + 1 (9.6)

Now, the term H(z) is really the output Y(z) over the input X(z) and we can use this to express the Z domain equation in terms of the input and output:

H(z) = z2 + 2z + 1 3z2 + 1 = Y(z) X(z) (9.7)

This can then be turned into a sequence expression using delays (z is one delay, z2 is two delays and so on) with the following result:

3z2Y(z) + Y(z) = z2X(z) + 2zX(z) + X(z) (9.8) 

3y(n + 2) + y(n) = x(n + 1) + 2x(n + 1) + x(n) (9.9)

This is useful because we are now expressing the Z domain equation in terms of delay terms, and the final step is to express the value of y(n) (the current output) in terms of past elements by reducing the delays accordingly (by 2 in this case):

3y(n) + y(n − 2) = x(n) + 2x(n − 1) + x(n − 2) (9.10) 

y(n) + 1/3y(n − 2) = 1/3x(n) + 2/3x(n − 1) + 1/3x(n − 2) (9.11) 

y(n) = 1/3x(n) + 2/3x(n − 1) + 1/3x(n − 1) − 1/3y(n − 2) (9.12)

The final design note at this point is to make sure that the design frequency is correct, for example the low pass cut-off frequency. The frequencies are different between the S and Z domain models, even after the bilinear transformation, and in fact the desired digital domain frequency must be translated into the equivalent s domain frequency using a technique called prewarping. This simple step translates the frequency from one domain to the other using the following expression:

ωc = tan(cT2 )(9.13)

where c is the digital domain frequency, T is the sampling period of the Z domain system and ωc is the resulting frequency for the analog domain calculations. 

Once we have obtained our Z domain expressions, how do we turn this into practical designs? 

The next section will explain how this can be achieved in VHDL.

  • XC3042TM-70PC84C

    Manufacturer:Xilinx

  • Xilinx PLCC+8 CPLD/FPGA
  • Product Categories: CPLD/FPGA

    Lifecycle:Any -

    RoHS: -

  • XC2C64A-7PCG44I

    Manufacturer:Xilinx

  • CPLD CoolRunner -II Family 1.5K Gates 64 Macro Cells 159MHz 0.18um Technology 1.8V 44-Pin PLCC
  • Product Categories:

    Lifecycle:Obsolete -

    RoHS:

  • XC2C64A-7VQ100C

    Manufacturer:Xilinx

  • CPLD CoolRunner -II Family 1.5K Gates 64 Macro Cells 159MHz 0.18um Technology 1.8V 100-Pin VTQFP
  • Product Categories: Embedded - CPLDs (Complex Programmable Logic Devices)

    Lifecycle:Active Active

    RoHS: No RoHS

  • XC2C64A-7VQG44I

    Manufacturer:Xilinx

  • CPLD CoolRunner -II Family 1.5K Gates 64 Macro Cells 159MHz 0.18um Technology 1.8V 44-Pin VQFP
  • Product Categories: Embedded - CPLDs (Complex Programmable Logic Devices)

    Lifecycle:Active Active

    RoHS:

  • XCV200-6BG352C

    Manufacturer:Xilinx

  • FPGA Virtex Family 236.666K Gates 5292 Cells 333MHz 0.22um Technology 2.5V 352-Pin Metal BGA
  • Product Categories: Résistances

    Lifecycle:Obsolete -

    RoHS: No RoHS

Need Help?

Support

If you have any questions about the product and related issues, Please contact us.