Code Monkey home page Code Monkey logo

dspscoper's Introduction

DSPScoper

DSPScoper is a simple visualize tool for some digital filter algorithms.

alt text

Author: Vincent Nguyen

Table of Contents

Introduction

A cross-platform application nicely visualizes and computes coefficients for some sequential signal digital filters. Initial testing of this code was on Windows but will work on any other Linux/Windows/Mac machine with little effort.

Dependencies

  • wxWidgets for creating cross-platform application.

Compilation

Linux

If you compile this repository on Linux, do the following in the project directory:

$ mkdir build
$ cd build
$ ../configure
$ make
$ sudo make install

Windows

If you compile this repository on Windows, do the following in the project directory: https://github.com/skeeto/w64devkit/releases

MacOS

If you compile this repository on MacOS, do the following in the project directory:

Usage

  • Filter Control

    • Filter Order: In signal processing, the filter order refers to the number of reactive components, such as capacitors and inductors, in the filter circuit. A first-order filter has one reactive component, while a second-order filter has two reactive components. Generally, higher-order filters have steeper roll-off rates, meaning they can more effectively attenuate unwanted frequencies.
    • Filter Type: In signal processing, there are two main types of filters: IIR (Infinite Impulse Response) and FIR (Finite Impulse Response).
      • IIR filters use feedback, which means that the output of the filter is fed back into the input. They can have an infinite number of coefficients and can achieve a very sharp transition between the passband and stopband. However, they can be unstable and may introduce phase distortion.
      • FIR filters, on the other hand, have no feedback and only use feedforward. They are always stable and have linear phase response, which makes them useful for applications such as audio processing. However, they require more coefficients to achieve the same level of sharpness as an IIR filter.
    • Filter Class: In signal processing, there are several classes of filters used to achieve different filtering characteristics.
      • Butterworth: A Butterworth filter has a maximally flat response in the passband and a monotonic roll-off in the stopband. It is commonly used in audio applications.
      • Chebyshev: A Chebyshev filter has a steeper roll-off than a Butterworth filter, but with some ripple in the passband. It is often used in applications where a sharp transition between the passband and stopband is required.
      • Elliptic: An elliptic filter has the steepest roll-off of any filter class, but with ripples in both the passband and stopband. It is used when a very sharp transition is required.
      • Bessel: A Bessel filter has a maximally flat phase response, which makes it useful in applications where preserving the phase relationship between different frequencies is important.
      • Gaussian: A Gaussian filter has a bell-shaped response curve and is used for smoothing and noise reduction.
      • Legendre: A Legendre filter has a maximally flat response in the passband, but with ripples in the stopband. It is used when a maximally flat passband response is required.
      • Linkwitz-Riley: A Linkwitz-Riley filter is a type of crossover filter used in audio applications to split a signal into two or more frequency bands. It has a flat response at the crossover frequency and a steep roll-off on either side.
    • Filter Response: In signal processing, there are four main types of filter responses:
      • Low-pass: A low-pass filter allows low-frequency signals to pass through while attenuating high-frequency signals. It is used to remove high-frequency noise from a signal or to isolate the low-frequency components of a signal.
      • High-pass: A high-pass filter allows high-frequency signals to pass through while attenuating low-frequency signals. It is used to remove low-frequency noise from a signal or to isolate the high-frequency components of a signal.
      • Band-pass: A band-pass filter allows a specific range of frequencies, called the passband, to pass through while attenuating frequencies outside the passband. It is used to isolate a specific frequency range in a signal.
      • Band-stop: A band-stop filter, also known as a notch filter, attenuates a specific range of frequencies, called the stopband, while allowing frequencies outside the stopband to pass through. It is used to remove a specific frequency range from a signal.
    • Applied Frequency: The applied frequency for a digital filter refers to the frequency of the input signal that is being filtered.
  • Signal Control

    • Table of Signal Infomation is a component typically including various details about the observed signals, such as:
      • Amp: The magnitude or strength of the signal.
      • Freq: The frequency or range of frequencies present in the signal.
      • Stddev: The measurement of the amount of variation or dispersion in the frequency of a typical signal.
    • Sampling Rate is the rate at which the synthesized signal is sampled. The Nyquist-Shannon sampling theorem states that the sampling rate must be at least twice the highest frequency component of the input signal in order to avoid aliasing. Therefore, the applied frequency for a digital filter is limited by the sampling rate and the characteristics of the filter itself.

Citation

  • A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 2010.

  • S. K. Mitra, Digital Signal Processing: A Computer-Based Approach, 4th ed. New York: McGraw-Hill Education, 2011.

  • J. G. Proakis and D. G. Manolakis, Digital Signal Processing: Principles, Algorithms, and Applications, 4th ed. Upper Saddle River, NJ: Prentice Hall, 2006.

  • R. J. Schilling and S. L. Harris, Fundamentals of Digital Signal Processing Using MATLAB, 3rd ed. Belmont, CA: Thomson Higher Education, 2008.

  • A. Antoniou, Digital Signal Processing: Signals, Systems, and Filters, 2nd ed. New York: McGraw-Hill Education, 2005.

Issues

  • There are lots of classes of filtes not implemented, it's necessary to allocate more resources or seek additional help to implement the missing filters.

  • There are lots of types of plots not implemented, it may be necessary to redesign the layout of the UI so that it could support visualizing more plots.

  • The functionality of the plot interaction is unpleasant and requires reimplementation.

dspscoper's People

Contributors

reidite avatar

Stargazers

大熊 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.