Close
0%
0%

Signal Processing techniques for Beginners

Online course covering intro topics about signal
acquisition and processing.
Assumes no more than High School math skills

Similar projects worth following
The Signal Processing techniques for Beginners is the home for a set of courses developed by
Philip Freidin, Starting in 2020. Live and recorded Webinars, as well as Live Q&A / Open Office hours are planned.
The topics will be designed specifically for Makers who design systems with microprocessors and sensors. No special prior education other than high school maths will be assumed. The webinars cover computer arithmetic, understanding how to sample sensor data, and various processing techniques. Other topics may include software optimization, test equipment, simulation, and algorithm analysis.

About this course

DSP (Digital Signal Processing) is the term used for how computers and microprocessors manipulate data collected from the external world, usually via a sensor.

We can split this area knowledge into three sections:

- Introductory techniques and skills

- Simple algorithms

- Complex algorithms

If you search the interwebs for an introduction to DSP, what you will find are introductions to the complex algorithms, that assume at least college level math skills. It is very hard to find comprehensive coverage of the introductory techniques and simple algorithms material. So that’s what this course is about, and my goal is to make the material accessible to people who have no more than high school math skills. I may eventually get to the complex algorithms, but that will depend on the response I get to all the initial material I am preparing.

Who is this course for?

  • This course is for anyone who is involved in the following areas (and similar areas)You call yourself a Maker (using electronics)
    • Electronics Hobbyist
    • Doing projects that involve any type of Sensor
    • Doing projects that use Analog to Digital Converters (ADC)
    • Doing projects that use Digital to Analog Converters (DAC)
    • Robotics
    • Arduino, Raspberry Pi, Beaglebone, or any of the 100’s of other microprocessor boards
    • Building/designing 3D Printers
    • Designing your own Printed Circuit Boards (PCB)
    • You know which end of a soldering iron to hold
  • Although the title targets “Kids”, there is no age limit. It just seemed like a catchy thing to write, and I am assuming that many of the people I hope will use these courses are kids.

Course content

The course content will be a combination of videos, text pages like this page, exercises, and quizzes. While the courses are all free, if you want to take the quizzes and keep track of your progress, you will have to register and create an account so that your progress can be tracked. There will probably also be points awarded for completing quizzes, and certificates at the end of each course.

There are already a huge number of videos available on YouTube and else where that touch on many of the topics that I want to cover as well. Some are really good, and some “not so much”. Rather than create videos where there are already good ones available, as part of my creation of this course, I have watched many existing ones, and if I find good ones, then this course will just give you a link to the video, with an explicit acknowledgement of the video author or web site. Basically there is no point in me creating videos where good ones already exist. My value is to find them for you. Of course there will be videos that I create if I can’t find existing ones that meet my standards. The other valuable task I will do is that I will read the comments on the existing videos, which often show what was hard to understand, or not explained well enough. I will then have material in my course that fills in the gaps, or has exercises and quizzes to help in understanding. I welcome you comments about this approach.

Prerequisites

  • Basic high school maths skills: Add, Subtract, Multiply and Divide. See the site logo.
  • When more complicated skills are needed, they will be taught as part of the courses
  • An interest in becoming more skilled with designing systems with sensors

Cost

All the courses are free

Tools

As part of learning about DSP, we will be needing to use various software programs. I will make sure that they are free and that they are available for Windows, Mac, and Linux (or equivalent programs). Some of the tools we will use may have web based versions, that are of course independent of what type of computer you are using. You will just need a browser like Chrome, Firefox, Safari, etc. When programs are to be written, I will present the examples in Python 3, but it should be simple enough...

Read more »

  • 1
    Decimal is for People, Binary is for Computers (and DSP)

    In this course we will be covering everything about Binary arithmetic, the language that computers and microprocessors use for all their calculations. We will build on your knowledge of the Decimal system that you already know, and show that every step of the way, what you already know can be applied to coming to a full understanding of Binary arithmetic. This is important because as we work with measurement from the sensors that we use in our projects, the measurement data is almost always natively Binary.

    Topics

    • Alphabets
    • Introduction to Binary numbers
    • Radix Prefix
    • Arithmetic overflow
    • Powers
    • What is Hexadecimal
    • Converting from Decimal to Binary
    • Converting from Binary to Decimal
    • Converting from Binary to Hexadecimal
    • Converting from Hexadecimal to Binary
    • How many bits are enough
    • Numbers that are too big
    • Negative numbers
    • Fractions
    • Addition
    • Subtraction
    • Multiplication
    • Division
    • Cheating with Decimal
    • Let the computer do it for you
  • 2
    Bounded Arithmetic, Truncation and Saturation

    Awaiting detailed topic list

  • 3
    Data Conversion

    In this section we will be covering the transformation of signals between the world and our digital designs. In the world, signals are analog, meaning that their values are continuous, without steps. For example temperatures do not just jump from one value to the next. Instead it is always a continuous process of sliding between one value and the next that takes time. In our microprocessor based systems, the same information follows steps, the size of which we determine as part of our design

    How long is a 1 foot ruler (or 30 cm ruler)

    • Concepts of analog domain to digital domain
    • Ever better magnifying glasses
    • Grab 100 rulers and compare them
    • How many watches should you own

    Analog to Digital Converters

    • Survey of types of converters, not going into too much detail
    • Important parameters
      • Speed
      • Number of bits
      • Architecture
      • SNR
      • THD
      • SINAD
      • SFDR
      • ENOB
      • DNL
      • INL
      • Input Range
      • Input Offset
      • Input Impedance
      • Gain Error
      • Mux Topology
      • Timer controlled / DMA
      • Data Format
      • Power supply requirements
      • Power supply rejection
      • Reference Requirements
      • Power consumption
      • Sampling Aperture
      • Timing jitter
    • Sample and Hold
    • Track and Hold
    • Anti-Alias filters
    • Guess the number game, inc by 1
    • Guess the number game, binary split
    • Dual Slope
    • Delta-sigma or Sigma-delta
    • Successive Approximation
    • Flash

    Digital to Analog Converters

    • Similar Long list to ADC
    • Arduino PWM is a pretty crappy Digital to Analog Conversion

    Sampling

    • Long list
    • Sampling rates
    • How do you decide on a sample rate
    • Aliasing
    • ETS

    How many bits are enough

    • Understanding sensor capability
    • What about number of bits during calculations
    • Floating Point
    • Don't fool yourself
    • Don't fool other people either

View all 11 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates