File:Filters order5.svg

Page contents not supported in other languages.
This is a file from the Wikimedia Commons
From Wikipedia, the free encyclopedia

Original file(SVG file, nominally 702 × 648 pixels, file size: 2 KB)

Summary

Description
English: Frequency response curves of four linear analog filters: Butterworth filter, Chebyshev filter of type 1 and 2 and Elliptic filter, each one as 5th order filter.
Português: Curvas de resposta em frequência de quatro filtros lineares analógicos: Butterworth, Chebyshev tipos 1 e 2 e elíptico, todos de quinta ordem.
Русский: Сравнение амплитудно-частотных характеристик фильтров 5-го порядка: Баттерворта, Чебышёва 1-го и 2-го типов и эллиптического.
Date
Source Own work
Author Geek3
Other versions
SVG development
InfoField
 
The SVG code is valid.
 
This plot was created with Matplotlib.
 
 This file uses embedded text that can be easily translated using a text editor.
Source code
InfoField
Python Matplotlib source code
#!/usr/bin/python
# -*- coding: utf8 -*-

import numpy as np
import scipy.signal as sig
import matplotlib as mpl
import matplotlib.pyplot as plt
from math import *

N = 5 # order of the filters
band = 1.0 # cut-off normalized frequency
Rpass = 1.0 # ripple in the pass-band (dB)
Rstop = 20 # ripple in the stop-band (dB)
frange = np.linspace(0, 2, 2001)
color = 'r'
fname = 'filters_order5.svg'

mpl.rcParams['axes.grid'] = True
plt.figure(figsize=(6, 5.4))

(num, den) = sig.butter(N, band, analog=True)
filterfy = sig.freqs(num, den, frange)
plt.subplot(221)
plt.title('Butterworth')
plt.plot(filterfy[0], np.abs(filterfy[1]), lw=3, color=color)

(num, den) = sig.cheby1(N, 1, band, analog=True)
filterfy = sig.freqs(num, den, frange)
plt.subplot(222)
plt.title('Chebyshev type 1')
plt.plot(filterfy[0], np.abs(filterfy[1]), lw=3, color=color)

(num, den) = sig.cheby2(N, Rstop, band, analog=True)
filterfy = sig.freqs(num, den, frange)
plt.subplot(223)
plt.title('Chebyshev type 2')
plt.plot(filterfy[0], np.abs(filterfy[1]), lw=3, color=color)

(num, den) = sig.ellip(N, Rpass, Rstop, band, analog=True)
filterfy = sig.freqs(num, den, frange)
plt.subplot(224)
plt.title('Elliptic')
plt.plot(filterfy[0], np.abs(filterfy[1]), lw=3, color=color)

for ax in plt.gcf().get_axes():
    ax.set_xlim(*frange[[0,-1]])
    ax.set_ylim(0, 1.1)
    ax.set_xlabel('f/f$_0$')
    ax.xaxis.set_label_coords(0.65, -0.1)
    ax.set_ylabel('G', rotation=0)
    ax.yaxis.set_label_coords(-0.05, 1.0)

plt.tight_layout(pad=1, w_pad=2, h_pad=2)
plt.savefig(fname)

def postprocess(fname):
    from lxml import etree
    with open(fname, 'r') as svgfile:
        tree = etree.parse(svgfile, etree.XMLParser(remove_blank_text=True))
    svg = tree.getroot()
    nsmap = '{' + svg.nsmap[None] + '}'

    # move all definitions to the front
    svg[:] = sorted(svg, key=lambda el: {False:0, True:1}[el.tag!=nsmap+'defs'])
    with open(fname, 'w') as svgfile:
        tree.write(svgfile,
            xml_declaration=True, pretty_print=True, encoding='utf-8')

postprocess(fname)

Licensing

I, the copyright holder of this work, hereby publish it under the following license:
w:en:Creative Commons
attribution
This file is licensed under the Creative Commons Attribution 4.0 International license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

Captions

Add a one-line explanation of what this file represents

10 December 2016

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current21:57, 8 October 2023Thumbnail for version as of 21:57, 8 October 2023702 × 648 (2 KB)Hugo SpinelliChanged path to text. Now using Liberation Serif. Centered the label on the horizontal axis.
21:47, 10 December 2016Thumbnail for version as of 21:47, 10 December 2016540 × 485 (76 KB)Geek3== {{int:filedesc}} == {{Information |Description ={{en|1=Frequency response curves of four linear analog filters: {{W|Butterworth filter}}, {{W|Chebyshev filter}} of type 1 and 2 and {{W|Elliptic filter}}, each one as 5th order filter.}} |Source...
The following pages on the English Wikipedia use this file (pages on other projects are not listed):

Global file usage

The following other wikis use this file:

Metadata