Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Activefilt #13

Closed
wants to merge 96 commits into from

2 participants

@ra3xdh
Owner

Dear friends!

I implemented new tool for qucs. It is QucsActiveFilter. This tool allows to design active Butterworth, Chebyshev, Cauer, Bessel and User defined active filters. Sallen-Key, Multifeedback and Cauer topologies are implemented. I hope, it will be usefull.

Added new subdirectory qucs/qucsactivefilter, that contains all of my new sourcecode.

If you will merge this pull request, add directory entry qucs/qucsactivefilter to main CMakeLists, please.

qucsactivefilter

qucsactivefilter1

ra3xdh added some commits
@ra3xdh ra3xdh First commit. Main window interface implemented 721db25
@ra3xdh ra3xdh Interface with combo boxes 52189c7
@ra3xdh ra3xdh Implementer filter functions calculation 69af035
@ra3xdh ra3xdh Implemented dynamic schematic update 3c12493
@ra3xdh ra3xdh Added stubs for filer schematic calculation 46bb5c8
@ra3xdh ra3xdh Implemented Sallen-Key low-pass filter calculation 7e28f5e
@ra3xdh ra3xdh Implemented Sallen-Key high pass filtersintez 2f02ad2
@ra3xdh ra3xdh Corrected bitterworth poles and zeros calculation routine 9a77510
@ra3xdh ra3xdh Implemented Chebyshev filter poles calculation 732d567
@ra3xdh ra3xdh Implemented poles calculation with std::complex 4926082
@ra3xdh ra3xdh Implemented Filter class a0c2766
@ra3xdh ra3xdh Started moving filter schematic sintez fo specific class 34cf9fd
@ra3xdh ra3xdh Filter schematic elements calculation methods moved to Filter class c…
…ompletely. Started filter schematic Qucs file generating implementation
b33db0b
@ra3xdh ra3xdh Implemented basic Qucs schematic generation method 5c37ef5
@ra3xdh ra3xdh Implemented first-order stage schematic generation b210ce2
@ra3xdh ra3xdh Added SVG amplitude-frequency response to main window 6783554
@ra3xdh ra3xdh First order schematic generation moved to filter.cpp 284f637
@ra3xdh ra3xdh Implemented working high-pass SalleKey filter generation 94eb2dc
@ra3xdh ra3xdh Implemented low-pass sallen-key schematimatic sintez a197096
@ra3xdh ra3xdh First order stage schematic is generated all right bc93040
@ra3xdh ra3xdh Implemented MFB filter calculation 8840e5b
@ra3xdh ra3xdh Implemented filter gain given in dB e306839
@ra3xdh ra3xdh Noteven order fiter sintez works now correct 32ada64
@ra3xdh ra3xdh calcFilter function moved to filter.cpp to remove duplicate code 86f2208
@ra3xdh ra3xdh Implemented multiple feedback filter schematic cf4ce3b
@ra3xdh ra3xdh Implemented high pass MFB filter schematic generation cf238b7
@ra3xdh ra3xdh Filter poles and zeros calculetion moved to filter.cpp 8b3edc0
@ra3xdh ra3xdh Corrected first-order stage connection for MFB filter 29868bb
@ra3xdh ra3xdh Removed CalcFilterFunction pushbutton b06a5a6
@ra3xdh ra3xdh Added polynoms mathemathics for future filter classes d1c562b
@ra3xdh ra3xdh Added checking for proper filter type in calcFilter() e7a5ec8
@ra3xdh ra3xdh Added Cauer poles and zeros calculation routines 793b4ca
@ra3xdh ra3xdh Fixed poles calculation for odd order Cauer filter fed3292
@ra3xdh ra3xdh Implemented poles and zeros table proper formatting dc9182e
@ra3xdh ra3xdh Implemented zeros list printing 50dc776
@ra3xdh ra3xdh Implemented error message for fiter types, which are not yet supported d5b9c24
@ra3xdh ra3xdh Implemented RC components values checking before writing schematic file fc2ffce
@ra3xdh ra3xdh Added band-pass and band-stop radio buttons for future applications 272ae29
@ra3xdh ra3xdh Implemented error message for usage MFB filter for Cauer and Inverse …
…Chebyshev transfer functions
7db795c
@ra3xdh ra3xdh Implemented Chebyshev Type-II poles and zeros calculation a8a7cb1
@ra3xdh ra3xdh Implemented input fields enabling depends on filter function type 9655547
@ra3xdh ra3xdh Started implementation of Cauer 2-order filter section topology a9576a3
@ra3xdh ra3xdh Implemented calculation of RCL values of Cauer section 7284d1e
@ra3xdh ra3xdh Implemented including of R5 value to part list for Cauer filter 00777e5
@ra3xdh ra3xdh Implemented autoselct of cauer topology for Cauer approximation e6239eb
@ra3xdh ra3xdh Some correction 24d8024
@ra3xdh ra3xdh Added resource file 6c7ecb1
@ra3xdh ra3xdh Raster schematic images replaced by SVG graphics form Qucs decd314
@ra3xdh ra3xdh Fixed random SVG schematic image stretching. Now schematic has fixed …
…size.
fbb7ae4
@ra3xdh ra3xdh Implemented high-pass Cauer schematic calculation 34cc29e
@ra3xdh ra3xdh Added image for Cauer schematic 7548812
@ra3xdh ra3xdh Implememted components writing for Cauer filter 4dba52e
@ra3xdh ra3xdh Implememted writing schematic for even order Cauer filters. Odd order…
… not works.
d9cb376
@ra3xdh ra3xdh Implemented odd order Cauer filter schematic writing 767a751
@ra3xdh ra3xdh Implemented high-pass cauer schematic writing 66b0cf0
@ra3xdh ra3xdh If calculation of filter is failed poles and zeros list and part list…
… are always created
583e4b3
@ra3xdh ra3xdh Results text editor was moved to bottom of main window 08ca434
@ra3xdh ra3xdh Fixed images size fitting and added hig-pass filter response image f13032c
@ra3xdh ra3xdh Radio button group for filter type selection replaced by Combo-box 0480418
@ra3xdh ra3xdh Frequency response image for hi-pass filter added to main-window a9c4790
@ra3xdh ra3xdh Fixed incorrect salle-key topology calculation if compiled with MinGW dd6b14b
@ra3xdh ra3xdh Fixed Fs<Fc for high-pass filters 5e55f51
@ra3xdh ra3xdh Fixed odd order high-pass filter calculation 8bc830b
@ra3xdh ra3xdh Added controls to main window for user defined transfer functions 8f66ceb
@ra3xdh ra3xdh Started user defined transfer function poles and zeros calcultion imp…
…lementation
1c06027
@ra3xdh ra3xdh Added stub for transfer function definition dialog e201b42
@ra3xdh ra3xdh Started implementation of transfer function dialog 6d58cfd
@ra3xdh ra3xdh Added getCoeffs() function to Transfe 4cf6d04
@ra3xdh ra3xdh getCoeffs() works 188a4e5
@ra3xdh ra3xdh Added stubs for setting transfer function e8ab1a9
@ra3xdh ra3xdh Transfer func coeffs converted to long double for qf_poly compatibility 8aeb793
@ra3xdh ra3xdh Implemented transfer function coeffs saving 40d7fa4
@ra3xdh ra3xdh Implemented transfer function coeffs transferring to Filter class 000b96d
@ra3xdh ra3xdh Implemented sparce A and B vectors input 92bde93
@ra3xdh ra3xdh Order determination for user defined transfer function fixed. Sparce …
…transfer function polynomials functionality removed
0e6ba2a
@ra3xdh ra3xdh Fixed user transfer function tables column width 2506124
@ra3xdh ra3xdh Fixed SVG images and removed russian labels in main window bdf5f1c
@ra3xdh ra3xdh Added copy to cpipboard function 2400f44
@ra3xdh ra3xdh Tested filter sintez by user def. transfer function. Works with errors. 7eaf7bd
@ra3xdh ra3xdh Fixed crashing at aemty string in userdef tr.func. coeffs list and at…
… emty tr.func coeffs list
b93e993
@ra3xdh ra3xdh Added poles and zeros list forming for user def.tr.func filters 75e0d96
@ra3xdh ra3xdh Fixed numenator and denominator in user.def. tr.func 93f6e90
@ra3xdh ra3xdh Added transfer function equition to manual transfer functiom definiti…
…on dialog
90c8c10
@ra3xdh ra3xdh Added Octave script to precalculate Bessel filter poles up to 20th order 8f62134
@ra3xdh ra3xdh Autogenerated bessel.h --- Bessel filter poles table da79d3b
@ra3xdh ra3xdh Added controls to implement Bessel filter design 762b145
@ra3xdh ra3xdh Added interface controls for filter order definition (for Bessel filter) 7fd3c4d
@ra3xdh ra3xdh Implemented Bessel filter calculation 6e93dd1
@ra3xdh ra3xdh Implemented interface controls disbling for Bessel filter af0381d
@ra3xdh ra3xdh Added CMakeLists. Preparation for mergig with main Qucs branch started. 927e2ea
@ra3xdh ra3xdh Subtree from qucsactivefilter merged in qucs 873eab9
@ra3xdh ra3xdh Added menu action to call qucsactivefilter from qucs a12afb4
@guitorri
Owner

Hello! Thank you very much for this contribution. It looks great and very useful!

I haven't build the code yet but allow me a few suggestions anyway:

  • please post/advertise also to qucs-devel mailing list. Not all developers are active on this GitHub mirror.
  • we need to add support for Autotools (the "official" build system) besides CMake. If you are not familiar with Autotools I can assist you on this.
  • not all your files have the GPL header, please add them
  • the version on should come from the config.h (recently fixed on master b71c224)
  • QFilterSintez became QucsActiveFilter? The original name is still around in a few places.

Before we merge into master let us make sure it is integrated on both build systems and that it builds ok on a few different environments.

@ra3xdh
Owner

Hello, Guilherme!

please post/advertise also to qucs-devel mailing list.
Not all developers are active on this GitHub mirror.

Mail to this list is posted.

we need to add support for Autotools (the "official" build system) besides CMake.
If you are not familiar with Autotools I can assist you on this.

I have no experience with Autotools. As I can understand, I need to add my new su
bdirectory to qucs/Makefile.am? Please help me with this task.

not all your files have the GPL header, please add them

Recent added. See new commits in my branch.

the version on should come from the config.h (recently fixed on master b71c224)

This fix added to my CMakeLists

QFilterSintez became QucsActiveFilter? The original name is still around in a few places.

Yes, it was old project name. It is fully removed. See last commits.

Before we merge into master let us make sure it is integrated on both build systems and that it >builds ok on a few different environments.

It bulds ok on Linux x86-64 and Windows32bit with MinGW. Not tested for MacOS, beacause I have no available Macs near me.

@ra3xdh
Owner

we need to add support for Autotools (the "official" build system) besides CMake.
If you are not familiar with Autotools I can assist you on this.

I understood how to do this! Added Makefile.am in last commit. All bulds OK with Autotools.

@guitorri
Owner

I will test on the MacOS and report back.
I saw your post on the Tickets > Patches of SourceForge. The qucs-devel mailing list receives more attention from other developers (https://sourceforge.net/p/qucs/mailman/). I recommend you to subscribe and post also there.

@guitorri
Owner

@ra3xdh

I pushed your code (and a few changes I did) to the branch https://github.com/Qucs/qucs/tree/ra3xdh-activefilter. Please let us continue working based on that branch.

I did some testing on OSX 10.6 (will test again for 10.9), and so far it seems fine.

A few more considerations:

1) Can you put all the images into a bitmap directory similar to the other qucs-tools?

2) Perhaps in the qucsactivefilter.cpp, some of the errorMessage could be removed:

Instead of issuing a message like:

errorMessage(tr("Unable to use Cauer section for Chebyshev or Butterworth \n"

You could disable the Cauer option if the Chebyshev or Butterworth are selected, so users know in advance what can be done. My suggestion is to make it more intuitive.

3) a few QGroupBox could help to separate the related items on the interface (see qucsattenuator, qucstrans)

4) You probably saw the qucs-doc directory. Would you like to write a user manual to your qucsactivefilter? Maybe include a few references and examples... Just an idea.

@ra3xdh
Owner

Changes, that you suggest, pushed to branch ra3xdh-activefilter at my fork of Qucs. Pull request to new branch ra3xdh-activefilter is done. See #14 for details.

@guitorri
Owner

Changed to #13

@guitorri guitorri closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Apr 10, 2014
  1. @ra3xdh
Commits on Apr 11, 2014
  1. @ra3xdh

    Interface with combo boxes

    ra3xdh authored
Commits on Apr 12, 2014
  1. @ra3xdh
Commits on Apr 13, 2014
  1. @ra3xdh
Commits on Apr 14, 2014
  1. @ra3xdh
Commits on Apr 15, 2014
  1. @ra3xdh
Commits on Apr 17, 2014
  1. @ra3xdh
Commits on Apr 18, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Apr 19, 2014
  1. @ra3xdh
  2. @ra3xdh

    Implemented Filter class

    ra3xdh authored
Commits on Apr 20, 2014
  1. @ra3xdh
  2. @ra3xdh

    Filter schematic elements calculation methods moved to Filter class c…

    ra3xdh authored
    …ompletely. Started filter schematic Qucs file generating implementation
Commits on Apr 21, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Apr 22, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Apr 23, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Apr 24, 2014
  1. @ra3xdh
Commits on Apr 25, 2014
  1. @ra3xdh
Commits on Apr 26, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Apr 27, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
Commits on Apr 28, 2014
  1. @ra3xdh
Commits on Apr 29, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Apr 30, 2014
  1. @ra3xdh
Commits on May 1, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on May 2, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
  4. @ra3xdh
Commits on May 3, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh

    Implemented error message for usage MFB filter for Cauer and Inverse …

    ra3xdh authored
    …Chebyshev transfer functions
  4. @ra3xdh
  5. @ra3xdh
Commits on May 4, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
  4. @ra3xdh
  5. @ra3xdh

    Some correction

    ra3xdh authored
  6. @ra3xdh

    Added resource file

    ra3xdh authored
Commits on May 5, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
  4. @ra3xdh
Commits on May 6, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
Commits on May 7, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
  4. @ra3xdh
Commits on May 8, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
Commits on May 9, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on May 13, 2014
  1. @ra3xdh
Commits on May 14, 2014
  1. @ra3xdh
Commits on May 15, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on May 16, 2014
  1. @ra3xdh
  2. @ra3xdh

    getCoeffs() works

    ra3xdh authored
  3. @ra3xdh
Commits on May 17, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on May 18, 2014
  1. @ra3xdh
Commits on May 19, 2014
  1. @ra3xdh
Commits on May 22, 2014
  1. @ra3xdh

    Order determination for user defined transfer function fixed. Sparce …

    ra3xdh authored
    …transfer function polynomials functionality removed
  2. @ra3xdh
Commits on May 25, 2014
  1. @ra3xdh
Commits on May 28, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on May 29, 2014
  1. @ra3xdh

    Fixed crashing at aemty string in userdef tr.func. coeffs list and at…

    ra3xdh authored
    … emty tr.func coeffs list
  2. @ra3xdh
Commits on May 30, 2014
  1. @ra3xdh
Commits on Jul 6, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Jul 7, 2014
  1. @ra3xdh
Commits on Jul 8, 2014
  1. @ra3xdh
Commits on Jul 9, 2014
  1. @ra3xdh
  2. @ra3xdh
Commits on Jul 10, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
  4. @ra3xdh
Commits on Jul 11, 2014
  1. @ra3xdh
  2. @ra3xdh
  3. @ra3xdh
  4. @ra3xdh
Something went wrong with that request. Please try again.