FIR Filters For Xilinx

Digital filters are always an interesting topic, and they are especially attractive with FPGAs. [Pabolo] has been working with them in a series of blog posts. The latest covers an 8th order FIR filter in Verilog.  He covers some math, which you can find in many places, but he also shows how an implementation maps to DSP slices in a device. Then to reduce the number of slices, he illustrates folding which trades delay time for slice usage.

Folding takes a multi-stage parallel multiplication and breaks it into fewer multiplications done over a longer period of time. This reuses slices to reduce the number required for high-order filters.

Continue reading “FIR Filters For Xilinx”

Signal Conditioning Hack Chat This Wednesday

Join us on Wednesday, February 17 at noon Pacific for the Signal Conditioning Hack Chat with Jonathan Foote!

The real world is a messy place, because very little in it stays in a static state for very long. Things are always moving, vibrating, heating up or cooling down, speeding up or slowing down, or even changing in ways that defy easy description. But these changes describe the world, and understanding and controlling these changes requires sensors that can translate them into usable signals — “usable” being the key term.

Making a signal work for you usually requires some kind of signal processing — perhaps an amplifier to boost a weak signal from a strain gauge, or a driver for a thermocouple. Whatever the case, pulling a useful signal that represents a real-world process from the background noise of all the other signals going on around it can be challenging, as can engineering systems that can do the job in sometimes harsh environments. Drivers, filters, amplifiers, and transmitters must all work together to get the clearest picture of what’s going on in a system, lest bad data lead to bad decisions.

To help us understand the world of signal conditioning, Jonathan Foote will drop by the Hack Chat. You may remember Jonathan as the “recovering scientist” who did a great Remoticon talk on virtual modular synthesizers. It turns out that synths are just a sideline for Dr. Foote, who has a Ph.D. in Electrical Engineering and a ton of academic experience. He’s a bit of a Rennaissance man when it comes to areas of interest — machine learning, audio analysis, robotics, and of course, signal processing. He’ll share some insights on how to pull signals from the real world and put them to work.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, February 17 at 12:00 PM Pacific time. If time zones have you tied up, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.

Continue reading “Signal Conditioning Hack Chat This Wednesday”

SOUL Wants To Process Your Audio

Abstraction is the core of nearly all progress in computing. Unless you are fabricating your own semiconductors and drawing wire, we all create with building blocks ranging from components like CPUs, to operating system functions, to specialized libraries. Just as you wouldn’t want to spend your time deblocking disk records or rendering fonts for output devices, you probably shouldn’t have to think too much about audio data. While there are some powerful audio processing libraries out there, a new embeddable language called SOUL (SOUnd Language) is now in version 1.0 and wants to help you create efficient code for processing audio.

The goal of SOUL is to target a runtime that can run on CPUs, but is better on DSPs. The code aims to be secure and real time with no pointers, garbage collection, and other things that typically interfere with audio processing or security.

Continue reading “SOUL Wants To Process Your Audio”

DSP Spreadsheet: The Goertzel Algorithm Is Fourier’s 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.

A Fourier transform can do either of those jobs. But if you go that route you are going to do a lot of math to compute things you don’t care about just so you can pick out the one or two pieces you do care about. That’s the idea behind the Goertzel. It is essentially a fast Fourier transform algorithm stripped down to compute just one frequency band of interest.  The math is much easier and you can usually implement it faster and smaller than a full transform, even on small CPUs.

Continue reading “DSP Spreadsheet: The Goertzel Algorithm Is Fourier’s Simpler Cousin”

Learning SDR And DSP Hack Chat

Join us on Wednesday, November 11th at noon Pacific for Learning SDR and DSP Hack Chat with Marc Lichtman!

“Revolution” is a term thrown about with a lot less care than it probably should be, especially in fields like electronics. It’s understandable, though — the changes to society that have resulted from the “Transistor Revolution” or the “PC Revolution” or more recently, the “AI Revolution” have been transformative, often for good and sometimes for ill. The common thread, though, is that once these revolutions came about, nothing was ever the same afterward.

Such is the case with software-defined radio (SDR) and digital signal processing (DSP). These two related fields may not seem as transformative as some of the other electronic revolutions, but when you think about it, they really have transformed the world of radio communications. SDR means that complex radio transmitters and receivers, no longer have to be implemented strictly in hardware as a collection of filters, mixers, detectors, and amplifiers; instead, they can be reduced to a series of algorithms running on a computer.

Teamed with DSP, SDR has resulted in massive shifts in the RF field, with powerful, high-bandwidth radio links being built into devices almost as an afterthought. But the concepts can be difficult to wrap one’s head around, at least when digging beyond the basics and really trying to learn how SDR and DSP work. Thankfully, Dr. Marc Lichtman, an Adjunct Professor at the University of Maryland, literally wrote the book on the subject. “PySDR: A Guide to SDR and DSP using Python” is a fantastic introduction to SDR and DSP that’s geared toward those looking to learn how to put SDR and DSP to work in practical systems. Dr. Lichtman will stop by the Hack Chat to talk about his textbook, to answer your questions on how best to learn about SDR and DSP, and to discuss what the next steps are once you conquer the basics.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, November 11 at 12:00 PM Pacific time. If time zones baffle you as much as us, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.

[Banner image credit: Dsimic, CC BY-SA 4.0, via Wikimedia Commons]

Continue reading “Learning SDR And DSP Hack Chat”

Hackaday Links: October 11, 2020

If you’re interested in SDR and digital signal processing but don’t know where to start, you’re in luck. Ben Hillburn, president of the GNU Radio Project, recently tweeted about an online curriculum for learning SDR and DSP using Python. The course was developed by Dr. Mark Lichtman, who was a lead on GNU Radio, and from the look of it, this is the place to go to learn about putting SDRs to use doing cool things. The course is chock full of animations that make the concepts clear, and explain what all the equations mean in a way that’s sure to appeal to practical learners.

It’s not much of a secret that the Hackaday community loves clocks. We build clocks out of everything and anything, and any unique way of telling time is rightly applauded and celebrated on our pages. But does the clock motif make a good basis for a video game? Perhaps not, but that didn’t stop Clock Simulator from becoming a thing. To “play” Clock Simulator, you advance the hands of an on-screen clock by pressing a button once per second. Now, thanks to Michael Dwyer, you don’t even have to do that one simple thing. He developed a hardware cheat for Clock Simulator that takes the 1PPS output from a GPS module and wires it into a mouse. The pulse stream clicks the mouse once per second with atomic precision, rendering the player irrelevant and making the whole thing even more pointless. Or perhaps that is the point.

Maybe we were a little hard on Clock Simulator, though — we can see how it would help achieve a Zen-like state with its requirement for steady rhythm, at least when not cheating. Another source of Zen for some is watching precision machining, and more precise, the better. We ran into this mesmerizing video of a CNC micro-coil winder and found it fascinating to watch, despite the vertical format. The winder is built from a CNC lathe, to the carriage of which a wire dispenser and tensioning attachment have been added. The wire is hair-fine and passes through a ruby nozzle with a 0.6 mm bore, and LinuxCNC controls the tiny back and forth motion of the wire as it winds onto the form. We don’t know what the coil will be used for, but we respect the precision of winding something smaller than a matchhead.

Dave Jones over at EEVblog posted a teardown video this week that goes to a place few of us have ever seen: inside a processor module for an IBM System/390 server. These servers earned the name “Big Iron” for a reason, as everything about them was engineered to perform. The processor module Dave found in his mailbag was worth $250,000 in 1991, and from the look of it was worth every penny. From the 64-layer ceramic substrate supporting up to 121 individual dies to the stout oil-filled aluminum enclosure, everything about this module is impressive. We were particularly intrigued by the spring-loaded copper pistons used to transfer heat away from each die; the 2,772 pins on the other side were pretty neat too.

Here’s an interesting question: what happens if an earthquake occurs in the middle of a 3D printing run? It’s probably not something you’ve given much thought, but it’s something that regular reader Marius Taciuc experienced recently. As he relates, the magnitude 6.7 quake that struck near Kainatu in Papua New Guinea (later adjusted to a 6.3 magnitude) resulted in a solid 15 seconds of shaking at his location, where he was printing a part on his modified Mendel/Prusa i2. The shaking showed up clearly in the part as the machine started swaying with the room. It’s probably not a practical way to make a seismograph, but it’s still an interesting artifact.

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. It is one thing, for example, to know that E=I times R, and power is I times E, but it is another to realize that a half-watt transmitter delivers 5V into a 50Ω load and that one watt will take just over 7V into that same load.

The example used is computing how much smoke you can expect to create by setting off fireworks. We presume the math models are notional since we imagine a real model would be pretty complex and involve things like wind data. But it still makes a nice example.

If you don’t know anything about the topic, these might not be the right ones to try to learn the basics. But we do applaud people sharing their intuition on these complex subjects.

Continue reading “Intuition About Signals And Systems”