Signal processing is an electrical engineering subfield that focuses on analysing, modifying and synthesizing signals such as sound, images and biological measurements. Electronic signal processing was first revolutionized by the MOSFET and then single-chip digital signal processor (DSP). Digital signal processing is the processing of digitized discrete-time sampled signals. Processing is done by general-purpose computers or by digital circuits such as ASICs, field-programmable gate arrays or specialized digital signal processors (DSP chips).
Hackaday has published an in interesting series of articles on signal processing, and here are some picks from it:
RTFM: ADCs And DACs
https://hackaday.com/2019/10/16/rtfm-adcs-and-dacs/
DSP Spreadsheet: IQ Diagrams
https://hackaday.com/2019/11/15/dsp-spreadsheet-iq-diagrams/
Sensor Filters For Coders
https://hackaday.com/2019/09/06/sensor-filters-for-coders/
DSP Spreadsheet: FIR Filtering
https://hackaday.com/2019/10/03/dsp-spreadsheet-fir-filtering/
Fourier Explained: [3Blue1Brown] Style!
https://hackaday.com/2019/07/13/fourier-explained-3blue1brown-style/
DSP Spreadsheet: Frequency Mixing
https://hackaday.com/2019/11/01/dsp-spreadsheet-frequency-mixing/
Spice With A Sound Card
https://hackaday.com/2019/07/03/spice-with-a-sound-card/
- check also A real-time netlist based audio circuit plugin at https://github.com/thadeuluiz/RTspice
Reverse Engineering The Sound Blaster
https://hackaday.com/2019/06/19/reverse-engineering-the-sound-blaster/
FM Signal Detection The Pulse-Counting Way
https://hackaday.com/2019/08/28/fm-signal-detection-the-pulse-counting-way/
DSP Spreadsheet: IQ Diagrams< https://hackaday.com/2019/11/15/dsp-spreadsheet-iq-diagrams/
Here is an extra, not from Hackaday, but an interesting on-line signal processing tool for generating sounds
https://z.musictools.live/#95
172 Comments
Barbara morris says:
Hey, sir, I had a question regarding Digital signal processing can I contact you somehow?
Barbara morris says:
Hey, sir, I had a question regarding Digital signal processing can I contact you somehow?
Tomi Engdahl says:
I sent you personal e-mail. Read it and reply to it.
Tomi Engdahl says:
A real-time netlist based audio circuit plugin
https://github.com/thadeuluiz/RTspice
Tomi Engdahl says:
RTFM: ADCs And DACs
https://hackaday.com/2019/10/16/rtfm-adcs-and-dacs/
Tomi Engdahl says:
Use waveform math to extend the capabilities of your DSO or digitizer
https://www.edn.com/use-waveform-math-to-extend-the-capabilities-of-your-dso-or-digitizer/?utm_content=bufferb488c&utm_medium=social&utm_source=edn_facebook&utm_campaign=buffer
Tomi Engdahl says:
Sweet Streams Are Made Of These: Creating Music On The Command Line
https://hackaday.com/2020/03/19/sweet-streams-are-made-of-these-creating-music-on-the-command-line/
Tomi Engdahl says:
Piddler Illustrates Aliasing And The Z-Transform
https://hackaday.com/2020/05/18/piddler-illustrates-aliasing-and-the-z-transform/
https://zigunov.com/2020/04/25/the-anti-gravity-spout-a-demonstration-of-aliasing/
Tomi Engdahl says:
https://www.edn.com/use-waveform-math-to-extend-the-capabilities-of-your-dso-or-digitizer/
Tomi Engdahl says:
Intuition About Signals And Systems
https://hackaday.com/2020/09/05/intuition-about-signals-and-systems/
Signals and systems theory is a tough topic. Terms like convolution and impulse response can be hard to understand on a visceral level and most books that talk about these things emphasize math over intuition. [Discretised] has a YouTube channel that already has several videos that promise to tackle these topics with “minimum maths, maximum intuition.” We particularly noticed the talks on convolution and impulse response.
We think that often math and intuition don’t always come together
Tomi Engdahl says:
Video Compression Explainer — Like We’re Five-Year-Olds
https://hackaday.com/2020/08/28/video-compression-explainer-like-were-five-year-olds/
Tomi Engdahl says:
https://hackaday.com/2020/08/09/talking-head-teaches-laplace-transform/
Tomi Engdahl says:
https://hackaday.com/2020/08/04/facial-detection-with-pi-matlab/
Tomi Engdahl says:
https://hackaday.com/2020/07/02/number-crunching-gps-for-the-diyer/
Tomi Engdahl says:
https://the.wubmachine.com/
Tomi Engdahl says:
WELCOME TO NOISE.SH
noise.sh is a digital signal processing spreadsheet for sound design.
https://noise.sh/
Tomi Engdahl says:
https://hackaday.com/2020/10/06/getting-started-with-geometric-algebra-for-robotics-computer-vision-and-more/
Tomi Engdahl says:
Rockin’ Out In LTSpice: Simulating Classic Guitar Pedals
https://hackaday.com/2020/10/29/rockin-out-in-ltspice-simulating-classic-guitar-pedals/
http://cushychicken.github.io/ltspice-boss-ge7-equalizer/
Tomi Engdahl says:
#303: What is a Pulse Counting FM Demodulator | Detector | Discriminator?
https://www.youtube.com/watch?v=jQlN2fc7LJc
This video describes how a Pulse Counting FM Discriminator works – it is a unique FM demodulator that doesn’t require and tuned circuits like the FM Ratio Detector or Foster Seeley discriminator. It operates by measuring the changing duty cycle resulting from a series or fixed width pulses that are synchronized to the carrier, or IF frequency.
Here is a link to Alan Yates’ blog on a discrete FM broadcast receiver made using this technique:
http://www.vk2zay.net/article/250
Tomi Engdahl says:
#167: How a Diode Ring Mixer works | Mixer operation theory and measurement
https://www.youtube.com/watch?v=junuEwmQVQ8
Tomi Engdahl says:
http://mag.breadboard.pk/how-to-build-an-analog-mixer-additive-mixer-and-multiplicative-mixer/
Tomi Engdahl says:
http://mag.breadboard.pk/all-about-direct-digital-synthesis/
Tomi Engdahl says:
What Bandwidth is Needed for an Arbitrary Digital Signal?
https://www.nwengineeringllc.com/article/what-bandwidth-is-needed-for-an-arbitrary-digital-signal.php
This is a common question in high speed digital design, and it is one that does not have a simple answer. As much as we’d like to think digital signals have a fixed bandwidth, they don’t, contrary to statements from PCB design “experts.” Where you cut off the bandwidth of your digital signal and your channel depends on multiple factors, and designers should understand what defines bandwidth limits when designing high data rate communication channels.
Tomi Engdahl says:
A mathematical approach to estimate probable errors in a measurement task
https://www.edn.com/a-mathematical-approach-to-estimate-probable-errors-in-a-measurement-task/?utm_content=buffer4506f&utm_medium=social&utm_source=edn_facebook&utm_campaign=buffer
Very often, in the test and measurement industry, a measurement is made by instrumentation, which is often subject to errors. It is difficult to estimate the true value of the measured quantity given a number of indeterminate, uncorrelated, and random factors.
This article describes a method to estimate the probable error of a measurement, specifically, the probable error of a direct measurement and an indirect measurement. A direct measurement is one in which the quantity sought is obtained directly by a measurement made by instruments indicating the sought quantity. An indirect measurement is the one in which the measurement is not directly made, but is calculated from other directly-measured quantities.
Tomi Engdahl says:
https://en.m.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem
Tomi Engdahl says:
DSP Spreadsheet: The Goertzel Algorithm Is Fourier’s Simpler Cousin
https://hackaday.com/2020/11/13/dsp-spreadsheet-the-goertzel-algorithm-is-fouriers-simpler-cousin/
You probably have at least a nodding familiarity with the Fourier transform, a mathematical process for transforming a time-domain signal into a frequency domain signal. In particular, for computers, we don’t really have a nice equation so we use the discrete version of the transform which takes a series of measurements at regular intervals. If you need to understand the entire frequency spectrum of a signal or you want to filter portions of the signal, this is definitely the tool for the job. However, sometimes it is more than you need.
For example, consider tuning a guitar string. You only need to know if one frequency is present or if it isn’t. If you are decoding TouchTones, you only need to know if two of eight frequencies are present. You don’t care about anything else.
Fourier in Review
Just to review, a typical system that uses a Fourier transform will read a number of samples at some clock frequency using an analog to digital converter. For example, you might read 1024 samples at 1 MHz. Each sample will be 1 microsecond after the previous sample, and you’ll get just over a millisecond’s worth of data.
The transform will also produce 1024 results, often known as buckets. Each bucket will represent 1/1024 of the 1 MHz. Because of the Nyquist limit, the top half of the results are not very useful, so realistically, the first 512 buckets will represent 0 Hz to 500 kHz.
Tradeoffs
Don’t forget, everything is a tradeoff. The sampling rate and the number of samples determine how long it takes to read each sample and also how broad the frequency range for the bucket is. If you are having to probe for lots of frequencies, you might be better off with a well-implemented Fourier transform library.
Tomi Engdahl says:
Hackaday Prize Entry: Open Source FFT Spectrum Analyzer
https://hackaday.com/2016/07/06/hackaday-prize-entry-open-source-fft-spectrum-analyzer/
Every machine has its own way of communicating with its operator. Some send status emails, some illuminate, but most of them vibrate and make noise. If it hums happily, that’s usually a good sign, but if it complains loudly, maintenance is overdue. [Ariel Quezada] wants to make sense of machine vibrations and draw conclusions about their overall mechanical condition from them. With his project, a 3-axis Open Source FFT Spectrum Analyzer he is not only entering the Hackaday Prize 2016 but also the highly contested field of acoustic defect recognition.
For the hardware side of the spectrum analyzer, [Ariel] equipped an Arduino Nano with an ADXL335 accelerometer, which is able to pick up vibrations within a frequency range of 0 to 1600 Hz on the X and Y axis.
Open Source FFT Spectrum Analyzer
An FFT spectrum analyzer for machinery vibration analysis, using open source hardware and software
https://hackaday.io/project/12109-open-source-fft-spectrum-analyzer
Tomi Engdahl says:
https://www.allaboutcircuits.com/industry-articles/understanding-digital-filtering-with-embedded-microcontrollers/
Tomi Engdahl says:
How does oversampling of ADC improve Resolution?
https://embeddeddesignblog.blogspot.com/2020/12/how-does-oversampling-of-adc-improve.html
Tomi Engdahl says:
ApproxFFT: Fastest FFT Function for Arduino © CC BY-NC
This function performs FFT with very good speed while maintaining accuracy.
https://create.arduino.cc/projecthub/abhilashpatel121/approxfft-fastest-fft-function-for-arduino-fd4917
some of the significant observation on the test:
Speed is more than 3 times faster than conventional FFT,
Memory consumption is low (almost half),
The output is comparable with exact values (low error),
Tomi Engdahl says:
dsp arduino code for filtering analog enviroments
https://hackaday.io/project/176856-dsp-arduino-code-for-filtering-analog-enviroments
get guaranteed accuracy from a sensor in a noisy environment quickly and consistently from hybrid filtering bandpass example for VL53L0
Tomi Engdahl says:
https://hackaday.io/project/176856-dsp-arduino-code-for-filtering-analog-enviroments
Tomi Engdahl says:
Circuit Impedance Calculations Without Cumbersome Simulations
https://hackaday.com/2021/03/02/circuit-impedance-calculations-without-cumbersome-simulations/
Using circuit simulating software like SPICE can be a powerful tool for modeling the behavior of a circuit in the real world. On the other hand, it’s not always necessary to have all of the features of SPICE available all the time, and these programs tend to be quite expensive as well. To that end, [Wes Hileman] noticed an opportunity for a specific, quick method for performing impedance calculations using python without bulky, expensive software and came up with a program which he calls fastZ.
The software works on any network of passive components (resistors, capacitors, and inductors) and the user can specify parallel and series connections using special operators.
https://github.com/whileman133/fastZ
Tomi Engdahl says:
https://www.edn.com/understanding-fft-vertical-scaling/?utm_content=bufferb183f&utm_medium=social&utm_source=edn_facebook&utm_campaign=buffer
The fast Fourier Transform (FFT), added to an oscilloscope or digitizer, permits measuring the frequency domain spectrum of the acquired signals. This provides a different and usually helpful perspective; signals can be viewed as plots of amplitude or phase versus frequency
Tomi Engdahl says:
The #FFT vertical or #amplitude response is affected by a number of factors you should keep in mind #oscilloscopes #measurement
https://buff.ly/3v3SOGR
Tomi Engdahl says:
https://www.edn.com/10-tricks-that-extend-oscilloscope-usefulness/
Tomi Engdahl says:
https://hackaday.com/2021/03/10/perlin-noise-helps-make-trippy-typographic-art/
Tomi Engdahl says:
On Windows I use WaveGene which has 8 individual dual channel oscillators. On Linux and Mac you can use ‘sox’ to generate very low THD signals.
I’m struggling to think why someone would want to build something when there is software like this available for free. But if you want to do it the hard way…
Tomi Engdahl says:
… the Voxengo SPAN *free* FFT Spectrum Analyzer is perfectly adequate for most tasks though.
https://www.voxengo.com/product/span/
Tomi Engdahl says:
On the Linux subject, audmes is a git project for audio.
https://github.com/swwa/audmes
https://sourceforge.net/projects/audmes/
Tomi Engdahl says:
https://enjon.uk/2019/09/01/a-diy-approach-to-distortion-measurements-for-audio-amplifiers/
Tomi Engdahl says:
Digilent Analog Discovery Software WaveForms works with sound cards on most OS and is free to download.
WaveForms got a lot of nice features like Oscilloscope, Spectrum Analyzer, Network Analyzer etc. that works with sound cards. For Spectrum and Network i use both this and ARTA. But the Oscilloscope part is very nice and might be of use for some.
WaveForm reference: https://reference.digilentinc.com/reference/software/waveforms/waveforms-3/start
The best is to download the latest beta that works with your OS: https://forum.digilentinc.com/topic/8908-waveforms-beta-download/?fbclid=IwAR1Bnaq1agWdtzP1DquXQzyEn94-KHXQbAApQEOUGo6XwCTuCx05BcGl2LU
Tomi Engdahl says:
WaveGene & WaveSpectra.
a brief page on how to measure THD
https://gtkc.net/wavespectra-and-wavegene-thd-measurement
Tomi Engdahl says:
https://gtkc.net/wavespectra-and-wavegene-thd-measurement
Tomi Engdahl says:
2 PDFs about FFT basics and different Window functions if anyone is interested .
https://www.virtins.com/doc/D1002/FFT_Basics_and_Case_Study_using_Multi-Instrument_D1002.pdf
https://www.virtins.com/doc/D1003/Evaluation_of_Various_Window_Functions_using_Multi-Instrument_D1003.pdf
Tomi Engdahl says:
You can also use ‘Sox’ to create an inverse test signal.
I found this on DIYAudio dot com
https://www.diyaudio.com/forums/analogue-source/203706-error-self-riaa-7.html
Tony says:
I posted this comment (and a few others I see here) in the Facebook group ‘DIY: Audio test and measurement.’
I don’t mind if my comments are shared but please provide acknowledgement of your source.
https://www.facebook.com/groups/2420755034736319
Thanks.
Tomi Engdahl says:
It looks as though this software can apply an inverse EQ.
https://www.alpinesoft.co.uk/VinylStudio/recording_eq.aspx
Tomi Engdahl says:
All-pass filters provide a simple way of altering/improving the phase response of an IIR without affecting its magnitude response. As such, they are commonly referred to as phase equalisers and have found particular use in digital audio applications. https://www.advsolned.com/all-pass-filter/#datascience #dataanalytics #DSP #signalprocessing #IIR
Tomi Engdahl says:
https://hackaday.com/2021/07/11/digital-audio-for-microcontrollers-doesnt-come-much-simpler-than-a-wart/
Tomi Engdahl says:
https://hackaday.com/2021/02/24/audio-out-over-a-uart-with-an-ftdi-usb-to-trs-cable/
Tomi Engdahl says:
https://hackaday.com/2021/02/26/spectrogram-drawing-for-fun-and-coding/