Filter Design Python

(The design of nonlinear or time-varying systems is generally more complicated, and often more case specic. Kaiser, "Nonrecursive digital filter design using I 0-sinh window function". The kalman filter has been used extensively for data fusion in navigation, but Joost van Lawick shows an example of scene modeling with an extended Kalman filter. If you're using Python 2. Filters Hopefully by this point, you have a pretty good idea of what lters are and what they do. All code is written in Python, and the book itself is written using Juptyer Notebook so that you can run and modify the code in your browser. FIR filtering. filter span in symbols, and the oversampling factor (i. Part 2: How To Stream And Filter The Blockchain Using Steem-Python steempytutorials ( 65 ) in utopian-io • last year (edited) This tutorial is a continuation of Part 1: How To Configure The Steempy CLI Wallet And Upvote An Article With Steem-Python , so make sure to read this before starting this tutorial. PythonBooks showcase the bests free ebooks about the Python programming language. I'm using scipy module. ) Goal: given desired magnitude response jHd(!)j. Here's a concrete example: say we have two functions, f1 = lambda x: x%2 == 0 and f2 = lambda x: x>6. Finding the filter order and 3 dB cutoff frequency. Python filter() function is used to filter the elements of an iterable based on a function. NethServer is an operating system for Linux enthusiasts, designed for small offices and medium enterprises. signal and custom methods) Second-Order Sections are used in the filter design when available for more robust filter design and analysis; Remember all specifications when changing between filter design methods. ftype is the filter design type, which can be one of the following ['ellip', 'butter', 'cheby1', cheby2', 'bessel']. wav) an IIR comb filter derived from the IIR-2 notch filter described in Lesson 23, pp. Median Filter. When the migen module ist installed, fixpoint implementations (for some filter types) can be simulated and exported as synthesizable Verilog netlists. Because the system functions must meet boundary conditions, like realizability as circuit,. Follow these steps to design the filter by using Python and SciPy to do the actual number crunching: Find N and f c to meet the magnitude response requirements. Python Exercises, Practice and Solution: Write a Python program to filter the positive numbers from a list. Once you filter data in a range of cells or table, you can either reapply a filter to get up-to-date results, or clear a filter to redisplay all of the data. In this tutorial you'll learn how to read and write JSON-encoded data using Python. This type of design pattern comes under structural pattern as this pattern combines multiple criteria to. If it isn't, you probably don't have the background to understand this section on filter design. If the function returns a truthy value for the item, the item is sent back to filter() which, ultimately, returns a new iterable of the filtered items. It has functions for reading, displaying, manipulating, and classifying hyperspectral imagery. Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. tools to begin to design discrete-time systems. SciPy really has good capabilities for DSP, but the filter design functions lack good examples. There are several repositories for Python language in GitHub and we are providing you with a list of top 30 among them. Python Filter Design Analysis Tool pyFDA is a GUI based tool in Python / Qt for analysing and designing discrete time filters. So, I've been looking for a free software analog filter design tool. Related courses Python Desktop Apps with Tkinter. The Python interpreter has a number of functions that are always available for use. Ask Question Browse other questions tagged filters signal-analysis audio filter-design python or ask your own question. 27 Comments. H(z) shows how to calculate the IIR filter coefficients from the analog low pass prototype coefficients A - F and T. Analyzing data requires a lot of filtering operations. How the documentation is organized¶ Django has a lot of documentation. 7 This tutorial deals with Python Version 2. Creating Excel files with Python and XlsxWriter. [Slaney1988]. Are you using one of our books in a class? We'd like to know about it. Is there a function or any way to apply multiple filters to a list. Python Challenge home page, The most entertaining way to explore Python. We use a Python-based approach to put together complex. Python Exercises, Practice and Solution: Write a Python program to print the even numbers from a given list. If you want to read more about DSP I highly recommend The Scientist and Engineer's Guide to Digital Signal Processing which is freely available online. Using python and pandas you will need to filter your dataframes depending on a different criteria. Details on how to. This function determines the optimal steady-state filter gain M based on the process noise covariance Q and the sensor noise covariance R. Because the system functions must meet boundary conditions, like realizability as circuit,. MyHDL turns Python into a hardware description and verification language, providing hardware engineers with the power of the Python ecosystem. Use this utility to calculate the Transfer Function for filters at a given frequency or values of R and C. >>> Python Needs You. Python versions (2. Learn how to filter and select data. Below 50 kHz active filters are usually more cost effective and above 500 mHz strip lines are generally used. The signal processing and filter design material was extracted and augmented with a number of algorithms for higher-order filter design. With Numpy and Scipy signal processing design and analysis is possible in the Python. Read more Senior Python Developer Bermondsey, London, England Fri, 30 Aug 2019 permanent ECS Digital. Also, it would great if it would be possible to create filters with more than one input layer, so that you can e. Python doesn't have a built-in type for matrices. If it isn't, you probably don't have the background to understand this section on filter design. Today I'm going to implement lowpass, highpass and bandpass example for FIR filters. This is an and contraint, passing tagged=c;java will return only those questions with both tags. We'll also briefly discuss the advantages of FIR filters over IIR designs, e. filter_none. A while back I wrote about IIR filter design with SciPy. Learning Python has a dynamic and varied nature. The kalman filter has been used extensively for data fusion in navigation, but Joost van Lawick shows an example of scene modeling with an extended Kalman filter. 02) have to add up to 1 but can of course be changed to tune the filter properly. Filters are used. This is a 2D localization example with Histogram filter. Within iir_design_helper. FIR filter design with Python and SciPy. 😉 Although it's possible to design FIR filters using manual methods, it is a whole lot easier just to use a FIR filter design program. Here's how you could translate the previous examples of map() and filter() to list comprehensions:. How to Design a Moving average filter?. Expert-taught videos on this open-source software explain how to write Python code. As an alternative, we could digitize the signal and use a digital filter. Here's an example filter that only allows INFO messages to be logged:. What Matters in Motoring Fri, 01 Jul 2016 14:10:58 +0000 en-US hourly 1 https://wordpress. nsamples = 320 F_1KHz = 1000. The signal processing and filter design material was extracted and augmented with a number of algorithms for higher-order filter design. Python is highly object-oriented and understanding these concepts carefully will help you a lot in the long run. py has been developed to easily generate HTML code for tables and lists in Python scripts. From a filter-table listing for Butterworth, we can find the zeroes of the second-order Butterworth. They may be used to amplify, attenuate, or reject a certain range of frequencies of their input signals. In your next design, when you need a different filter, you just change a couple of variables. We use a Python-based approach to put together complex. Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. XlsxWriter is a Python module for creating Excel XLSX files. The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. design_filtbank_coeffs (samplerate, order, centerfrequencies, bandwidths=None, bandwidth_factor=None, attenuation_half_bandwidth_db=-3) [source] ¶ Designs complex coefficients for a gammatone filter bank. FIR Filter Design. From this, both a transfer function and a filter structure have to be chosen. The data-model syntax offers many rich ways of representing your models – so far, it’s been solving many years’ worth of database-schema problems. Programming Algorithms GIMP is a high quality framework for scripted image manipulation, with multi-language support such as C, C++, Perl, Python, Scheme, and more!. Python Exercises, Practice and Solution: Write a Python program to filter the positive numbers from a list. The data-model syntax offers many rich ways of representing your models – so far, it’s been solving many years’ worth of database-schema problems. stability and the linear-phase response. Author: Matti Pastell Tags: SciPy, Python, DSP May 11 2009 I have had some trouble in IIR filter design with SciPy, e. It then considers the case of a single axis (called one dimensional or 1D). Filter a report using query string parameters in the URL. It is a standard Python interface to the Tk GUI toolkit shipped with Python. This sub-forum is for Python programmers and professionals to discuss topical and non-help related Python topics, start and participate in fun challenges (NOT HOMEWORK), and share news about the languages and related technologies. filter is realized as a 6-pole Chebyshev Type 1 filter (ripple in passband, no ripple in stopband). 10 Fri, 01 Jul 2016 14:10:58 +0000 en-US hourly 1 https. Numpy and Scipy are two of the more popular packages available. Python is so easy to learn, you'll be writing scripts that save you hours in no time; Python's a great choice for a scripting language - it's very easy to learn, very easy to read and write, and can be object oriented (in fact, it has an excellent model), but doesn't need to be. SKiDL: Script Your Circuits In Python. After Implementing the design and programming the FPGA. The initial goal is to implement all of the functionality required to work through the examples in the textbook Feedback Systems by Åström and Murray. Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. ) Goal: given desired magnitude response jHd(!)j. This task is more naturally suited to functional programming. Here's how you could translate the previous examples of map() and filter() to list comprehensions:. The Python language has a substantial body of documentation, much of it contributed by various authors. SciPy bandpass filters designed with b, a are unstable and may result in erroneous filters at higher filter orders. Well Done ! the blog is great and Interactive it is Triggering Python Script on Dashboard Open ( Example: Tab Level Security) it is useful for students and Python Developers for more updates on python follow the link Python Online Training For more info on other technologies go with below links tableau online Training ServiceNow Online Training. Suitable for both beginner and professional developers. , VTK) for Python 2. Constrained Least Squares FIR Filter Design. If you are about to ask a "how do I do this in python" question, please try r/learnpython, the Python discord, or the #python IRC channel on FreeNode. The constants (0. In the median filter, we choose a sliding window that will move across all the image pixels. Suppose we want to filter above dictionary by keeping only elements whose keys are even. Graphic Design Motion Graphics and VFX By using Python to glean value from your raw data, you can simplify the often complex journey from data to value. This is an interactive filter design package, for designing digital filters. Starting with the fundamentals of. This article looks at Python's logging module, its design, Users can declare their own filters as objects using a filter method. Fill in the form and press the ``Submit'' button, and a filter will be designed for you. 1 Second-Order Low-Pass Butterworth Filter The Butterworth polynomial requires the least amount of work because the frequency-scaling factor is always equal to one. An international job board for Python roles. Also, it would great if it would be possible to create filters with more than one input layer, so that you can e. Today I'm going to implement lowpass, highpass and bandpass example for FIR filters. Meet Django. How to Design a Moving average filter?. I will not discuss how to read data from the MPU6050 in this article (contact me if you want the source code). Where to begin? How to proceed? Go from zero to Python machine learning hero in 7 steps! Getting started. EEG Signal Processing in Python and Scipy. Here's a concrete example: say we have two functions, f1 = lambda x: x%2 == 0 and f2 = lambda x: x>6. Overview In an earlier post "OS. The 2nd order analog filter coefficients (e. It is also noncausal; it cannot be shifted to make it causal because the impulse response extends all the way to time. For a Butterworth filter, this is the point at which the gain drops to 1/sqrt(2) that of the passband (the "-3 dB point"). Python design of Optimum L / Legendre filters of any order - 10th order. Python FIR Filter Design from numpy import sin, arange, pi from scipy. If you want to read more about DSP I highly recommend The Scientist and Engineer's Guide to Digital Signal Processing which is freely available online. In this tutorial you'll learn how to read and write JSON-encoded data using Python. There are several great novice Python courses available that will help you build an ample understanding of the language and starting with the same. signal namespace, there is a convenience function to obtain these windows by name: get_window. The Wolfram Language provides a comprehensive set of methods for designing digital filters. Inductor sources:. You can see more image processing operations using this library on the scikit-image website. Visit our projects site for tons of fun, step-by-step project guides with Raspberry Pi HTML/CSS Python Scratch Blender Our Mission Our mission is to put the power of computing and digital making into the hands of people all over the world. Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. Design LC Filters (V 4. x is not backward-compatible, and many existing packages (e. Python strongly encourages community involvement in improving the software. Python Challenge home page, The most entertaining way to explore Python. For a Butterworth filter, this is the point at which the gain drops to 1/sqrt(2) that of the passband (the “-3 dB point”). Python is a great language for doing data analysis, primarily because of the fantastic ecosystem of data-centric Python packages. algorithmic design research. Matzner, S. Follow these steps to design the filter by using Python and SciPy to do the actual number crunching: Find N and f c to meet the magnitude response requirements. Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. FIR filtering. Twitter For those of you unfamiliar with Twitter, it's a social network where people post short, 140-character, status messages called tweets. Add-ons Extend Functionality Use various add-ons available within Orange to mine data from external data sources, perform natural language processing and text mining, conduct network analysis, infer frequent itemset and do association rules mining. Learn more about how to make Python better for everyone. Also, there is no shortage of advanced Python courses. H(z) shows how to calculate the IIR filter coefficients from the analog low pass prototype coefficients A - F and T. This is a tutorial in Python3, but this chapter of our course is available in a version for Python 2. XlsxWriter is a Python module that can be used to write text, numbers, formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file. Introduction In the last posts I reviewed how to use the Python scipy. Digital filter design methods. Use the filter design capabilities of the SciPy signal package. Active Low-Pass Filter Design 5 5. And I'm an architect specializing in computational design and BIM workflows. The Python interpreter has a number of functions that are always available for use. First I create the windows with the signal. Each filter can be a function that accepts an iterable and returns an iterable. It's quite easy to design digital filters with Python, but there doesn't seem to be much for analog filter design (and I mean choosing the values of capacitors and inductors). Python Exercises, Practice and Solution: Write a Python program to print the even numbers from a given list. Butterworth digital and analog filter design. However, we can treat list of a list as a matrix. When the migen module ist installed, fixpoint implementations (for some filter types) can be simulated and exported as synthesizable Verilog netlists. The filter design method in accepted answer is correct, but it has a flaw. A very important and related concept is the graphical representation of lters using Bode plots. Every puzzle can be solved by a bit of (python) programming. Butterworth coefficients) can be obtained from virtually any filter design book. py import scipy. FIR approximation of the Gaussian Filter. 27 Comments. algorithmic design research. A script that looks like. Summerson 11 September, 2009 1 Circuits with Resistors and Capacitors (continued) Recall from the last lecture (9/9) that we found the impedance of the capacitor to be. Python's name is derived from the television series Monty Python's Flying Circus, and it is common to use Monty Python reference in example code. Finding the filter order and 3 dB cutoff frequency. Each filter can be a function that accepts an iterable and returns an iterable. As such, passing more than 5 tags will always return zero results. io, and Codeacademy. Python is an accessible language for new programmers because the community provides many introductory resources. Design second- and third-order Sallen-Key filters with one op amp. In the case of the "range" function, using it as an iterable is the dominant use-case, and this is reflected in Python 3. Designing a filter generally starts with the specification of its frequency response. Think Python 2e. OBSOLETE: API-Review is now defined in All-Projects refs/meta/config rules. Push the boundaries of Story Art and 2D concept design, right in Blender’s 3D viewport. Author: Matti Pastell Tags: SciPy, Python, DSP Jan 18 2010. Please consider filling out this short survey. If the function returns a truthy value for the item, the item is sent back to filter() which, ultimately, returns a new iterable of the filtered items. Their design and verification can be tedious and time consuming. Who is InformIT. So, am I missing something? Is it. Zero Inversion. Contribute to Python Bug Tracker. IIR filter design with Python and SciPy. non-linear) and the mean filter (i. Natural Language Toolkit¶. py import scipy. And we would like to apply these functions to L=[1,2,3,4,5,6,7,8,9,10]. The purpose of this group is to promote learning and community involvement within the NYC Python community. Filter Design Using Ansoft HFSS. It is not: it is a Python built-in function which returns a sequence, which meets the requirement of providing a sequence for the for statement to iterate over. Here's a concrete example: say we have two functions, f1 = lambda x: x%2 == 0 and f2 = lambda x: x>6. In your next design, when you need a different filter, you just change a couple of variables. FIR Filter Design. High level IIR filter design in Python: Butterworth filter (0001) Digital Signal Processing IIR filter design using BLT Let's Build an Audio Spectrum Analyzer in Python! (pt. IIR filter design with Python and SciPy. Note: a generator will provide performance benefits only if we do not intend to use that set of generated values more than once. If the function returns a truthy value for the item, the item is sent back to filter() which, ultimately, returns a new iterable of the filtered items. Filters are used. I implemented this filter on a Raspberry Pi using a MPU6050 IMU. In this tutorial you'll learn how to read and write JSON-encoded data using Python. 0 Hz and a stopband of 5. And we would like to apply these functions to L=[1,2,3,4,5,6,7,8,9,10]. filter() function in python. Push the boundaries of Story Art and 2D concept design, right in Blender’s 3D viewport. You can then easily combine filters through function composition. Active filters are used for cutoff frequencies that range from sub -1 Hz to 10 MHz, where passive filter designs would require prohibitively large component values and sizes. This package is now part of Python 2. First I create the windows with the signal. There is another commonly used binding of OpenGL for Python which is part of the Pyglet game development environment. The python code generates the Finite Impulse Response (FIR) filter coefficients for a lowpass filter (LPF) at 10 (Hz) cut off using firwin from scipy. Pandas is one of those packages that makes importing and analyzing data much easier. Electronic filters can be classified by the technology used to implement them. Hi all, i have a question for all :-D I would like to design and apply a FIR low pass filter with Hamming window. , the stop-bands are 0-3 kHz and 8-10 kHz, when the sampling rate is 20 kHz). Django encourages beautiful URL design and doesn't put any cruft in URLs, like. Add-ons Extend Functionality Use various add-ons available within Orange to mine data from external data sources, perform natural language processing and text mining, conduct network analysis, infer frequent itemset and do association rules mining. Python Courses & Training Get up and running with object-oriented programming by watching our Python tutorials. Kaiser-Bessel filter design formulae. Butterworth Filter Design. We'll implement lowpass, highpass and ' bandpass FIR filters. The Python community has been incredibly helpful to me, a relative newcomer to the language. When the migen module ist installed, fixpoint implementations (for some filter types) can be simulated and exported as synthesizable Verilog netlists. The 2nd order analog filter coefficients (e. It is not: it is a Python built-in function which returns a sequence, which meets the requirement of providing a sequence for the for statement to iterate over. 6 Options for filters with several inputs (framesync) Some filters with several inputs support a common set of options. Here is an example of a 2-dimensional Kalman filter that may be useful to you. Working with geometry in Python. scipy we are going import the basic numerical, scientific, and plotting packages. Low pass Butterworth design considerations are mainly used for many functions. Developing FPGA-DSP IP with Python / MyHDL. walk() module function to walk a directory tree, and the fnmatch module for matching file names. The design of the digital filter requires cut-off frequency to be normalized by fs/2. You're going to want to develop a numerical test suite to ensure that it's calculating the right thing. Electronic filters can be classified by the technology used to implement them. Think Complexity. Filter a data sequence, x, using a digital filter. The article describing how computers may be used in intelligent annotation of the audio, video or image media data content with perculiar phenomenon arising from such novel field that can be coined as 'AI-xenophobia' or 'Cyber-xenophobia' or 'Cyborg-xenophobia'?. (Chapter 3 describes how to design these analog filters). Each filter can be a function that accepts an iterable and returns an iterable. Apply low pass-filter in python Raw. py has been developed to easily generate HTML code for tables and lists in Python scripts. We'll implement lowpass, highpass and ' bandpass FIR filters. wav) an IIR comb filter derived from the IIR-2 notch filter described in Lesson 23, pp. I think that's enough theory for now, so let's go ahead and get our hands dirty with coding! In this tutorial, I will be explaining the median filter (i. The prototype filter here will be an IIR-2 notch filter. Return the output in numerator, denominator (‘ba’), pole-zero (‘zpk’) or second order sections (‘sos’) form. This article is complemented by a Filter Design tool that allows you to create your own custom versions of the example filter that is shown below, and download the resulting filter coefficients. The Python interpreter has a number of functions that are always available for use. Author: Matti Pastell Tags: SciPy, Python, DSP Jan 18 2010. Programming Algorithms GIMP is a high quality framework for scripted image manipulation, with multi-language support such as C, C++, Perl, Python, Scheme, and more!. For complete coverage of IIR filter design and structure see one of the references. signal resample function can be used to reduce the bandwidth. The filter design method in accepted answer is correct, but it has a flaw. by: Elliot Williams. Think Bayes. Learn at your own pace from top companies and universities, apply your new skills to hands-on projects that showcase your expertise to potential employers, and earn a career credential to kickstart your new career. In particular, these are some of the core packages:. (The design of nonlinear or time-varying systems is generally more complicated, and often more case specic. x However, Python 3. Also, it would great if it would be possible to create filters with more than one input layer, so that you can e. As an alternative, we could digitize the signal and use a digital filter. (2 replies) Hi all, i have a question for all :-D I would like to design and apply a FIR low pass filter with Hamming window. filter_none. Instrumentation also relies on them for accurate signal measurements. …With low-shelf filters, the frequencies below the target frequency are boosted…or cut uniformly through the low end of the EQ. In this post you can see several examples how to filter your data frames ordered from simple to complex. Summary: This article shows how to create a simple low-pass filter, starting from a cutoff frequency \(f_c\) and a transition bandwidth \(b\). Web Design. the number of samples per symbol). Analyzing data requires a lot of filtering operations. The red cross is true position, black points are RFID positions. Natural Language Toolkit¶. Enroll in an online course and Specialization for free. OpenCL Sobel Filter Design Example Page. The first argument is the name of a user-defined function, and second is iterable like a list, string, set, tuple, etc. Related courses Python Desktop Apps with Tkinter. Documenting Python¶. If you want to transform a symetric (linear phase) FIR into a minimum-phase FIR of the same length, you can simply determine the zeros of h(n), and then invert zeros which are outside the unit-circle (i. ftype is the filter design type, which can be one of the following ['ellip', 'butter', 'cheby1', cheby2', 'bessel']. I also assumed that there's no need to hard-code for 3rd- or 6th-order filters, so just added an n. SciPy bandpass filters designed with b, a are unstable and may result in erroneous filters at higher filter orders. 3, but if you have an earlier version of Python, you can download the package from here and use it with Python versions between 1. walk and showed some examples on how to use it in scripts. If you want to read more about DSP I highly recommend The Scientist and Engineer's Guide to Digital Signal Processing which is freely available online. Pandas is one of those packages that makes importing and analyzing data much easier. FIR Filter Design. A meetup with over 6839 Python Enthusiasts and Learners. The python-control package is a set of python classes and functions that implement common operations for the analysis and design of feedback control systems. MyHDL turns Python into a hardware description and verification language, providing hardware engineers with the power of the Python ecosystem. 1 Second-Order Low-Pass Butterworth Filter The Butterworth polynomial requires the least amount of work because the frequency-scaling factor is always equal to one. Filter a Dictionary by conditions by creating a Generic function. Active Low-Pass Filter Design 5 5. (Chapter 3 describes how to design these analog filters). The 2nd order analog filter coefficients (e. SKiDL: Script Your Circuits In Python. To design URLs for an application, you create a Python module called a URLconf. The easiest way to learn Python for free!. If you're using Python 2. High level IIR filter design in Python: Butterworth filter (0001) Digital Signal Processing IIR filter design using BLT Let's Build an Audio Spectrum Analyzer in Python! (pt. Design LC Filters (V 4. You can then easily combine filters through function composition. Active filters are used for cutoff frequencies that range from sub -1 Hz to 10 MHz, where passive filter designs would require prohibitively large component values and sizes. When the migen module ist installed, fixpoint implementations (for some filter types) can be simulated and exported as synthesizable Verilog netlists. There are several great novice Python courses available that will help you build an ample understanding of the language and starting with the same. Also, it would great if it would be possible to create filters with more than one input layer, so that you can e. Kaiser, "Nonrecursive digital filter design using I 0-sinh window function". The following is an introduction on how to design an infinite impulse response (IIR) filters using the Python scipy. The free online FIR filter design tool. Python is a dynamic language (did I already said that?) and as such, already implements, or makes it easy to implement, a number of popular design patterns with a few lines of code. non-linear) and the mean filter (i. A clean, elegant URL scheme is an important detail in a high-quality Web application. With high-shelf filters, the frequencies above the target frequency are boosted…or cut uniformly through the top end of the EQ. Building Odd-order filters by cascading second-order stages and adding a single real pole [12] Jim Karki,Texas Instruments, Active Low-Pass Filter Design, Application Report, SLOA049B, September 2002. A low-pass filter (LPF) is a filter that passes signals with a frequency lower than a selected cutoff frequency and attenuates signals with frequencies higher than the cutoff frequency. If you want to read more about DSP I highly recommend The Scientist and Engineer's Guide to Digital Signal Processing which is freely available online.