Accelerating Matlab DSP Code on the GPU
Intrigued by GPUs, I've spent a few days testing out Jacket, an interface that lets you accelerate MATLAB (my favorite, if frustrating language) on NVIDIA GPUs. It's definitely got some caveats. But it was really easy to accelerate my code. And the results were impressive. So I thought I'd put up a few simple DSP-related benchmarks I created and ran on my laptop (a Macbook Air with NVIDIA GeForce 9400M graphics card). The m-files for the two functions I benchmarked (2D FFT and 2D...
Googling: a now-required skill
How many times has Google saved you? If you're a dsp programmer, I'll bet A LOT. These days, there are simply so many answers out there (and a bigillion more added daily), that for any given problem, the solution is out there. Or at least information to point you in the right direction.
I won't claim being an expert. There are other blogs for that. But I thought I'd share a few dsp-related insights that have helped me out immensely.
-
It's not all...
OpenCV for DSP/GPU, MSDN equivalent for CCS, and more
A great business opportunity might await anyone brave enough to attempt a port of the OpenCV (Open Computer Vision) library to a DSP platform. OpenCV is the lingua franca of "industrial grade" image processing, and it's my sense that the DSP imaging libraries out there pale in comparison to the breadth of features offered by OpenCV. When writing my book for example, I fielded multiple inquiries about making an OpenCV port a centerpiece of the text. Two problems arise,...Computing an FFT of Complex-Valued Data Using a Real-Only FFT Algorithm
Someone recently asked me if I knew of a way to compute a fast Fourier transform (FFT) of complex-valued input samples using an FFT algorithm that accepts only real-valued input data. Knowing of no way to do this, I rifled through my library of hardcopy FFT articles looking for help. I found nothing useful that could be applied to this problem.
After some thinking, I believe I have a solution to this problem. Here is my idea:
Let's say our original input data is the complex-valued sequence...
Random GPGPU Musings
As I procastinate actually sitting down and writing some CUDA kernels to walk you through some of the nuances of CUDA based signal-processing, I hope I can atone for my sins by discussing a few GPGPU items of note. First, today I had a fruitful discussion with a well-known DSP consulting house, and a major topic of discussion was CUDA. This conversation reinforced my view that GPGPU is the wave of the future, and is going to be of tantamount importance in the coming years. ...
GPGPU DSP
Greetings dear readers and welcome to my inaugural blog posting! I'm new to this blogging thing so I hope there is a grace period while I get acclimated. Before I jump into the meat of this posting allow me to introduce myself and briefly discuss where I intend to go with this blog.Until quite recently I was Director of Software Engineering at a medical device startup, before resigning to strike out on my own. I have experience in a wide variety of industries, in addition...
Some Thoughts on a German Mathematician
Carl Friedrich Gauss
Here are a few interesting facts about the great Carl Friedrich Gauss (1777-1855), considered by some historians to have been the world's greatest mathematician. The overused phrase of "genius" could, with full justification, be used to describe this man. (How many people do you know that could have discovered the law of quadratic reciprocity in number theory at the age seventeen years?) Gauss was so prolific that by some estimates he personally doubled the amount of...
50,000th Member Announced!
In my last post, I wrote that DSPRelated.com was about to reach the 50,000 members mark. Well, I am very happy to announce that it happened during the holidays, and the lucky person is Charlie Tsai from Taiwan. Charlie is an assistant professor in the Department of Electrical Engineering at the National Central University in Taiwan where he teaches the "Biomedical Signal Processing" class. He is also the advisor of the
Unit Testing for Embedded Algorithms
Happy Holidays! For my premier article, I am writing about my favorite technique to use when designing and developing software- unit testing. Unit testing is a best practice when designing software. It allows the designer to verify the behavior of the software units before the entire system is complete, and it facilitates the change and growth of the software system because the developer can verify that the changes will not affect the behavior of other parts of the system. I have used...
Almost 50,000 Members!
I am very happy to announce that DSPRelated.com will reach the 50,000 registered members mark before the end of 2009. To celebrate this milestone, I will buy a BMW 5 to the 50,000th person to register (please make sure to confirm you email address to activate your registration). Please read the fine prints after the picture.
I am just having fun here and it's not even April's fool day. The 50,000th member won't get a BMW (I wish I could offer it!),...
Why is Fourier transform broken
Every engineer who took a basic signal processing course is familiar with the Gibbs phenomenon, however, not all know why it occurs, I mean really why!
The answer lies in the mathematical background that is almost always skipped in signal processing courses. Moreover, from my experience at least, many textbooks present the theory, e.g. the Fourier transform, as infallible and no discussion of the limitation of the topic is given.
The short answer is that the metric space of continuous...
The Little Fruit Market: The Beginning of the Digital Explosion
There used to be a fruit market located at 391 San Antonio Road in Mountain View, California. In the 1990's I worked part time in Mountain View and drove past this market's building, shown in Figure 1, many times, unaware of its history. What happened at that fruit market has changed the lives of almost everyone on our planet. Here's the story.
William Shockley In 1948 the brilliant physicist William Shockley, along with John Bardeen and Walter Brattain, co-invented the transistor at Bell...
Handy Online Simulation Tool Models Aliasing With Lowpass and Bandpass Sampling
Analog Devices Inc. has posted a neat software simulation tool on their corporate web site that graphically shows the aliasing effects of both lowpass and bandpass periodic sampling. This is a nice tutorial tool for beginners in DSP.
The tool shows four important characteristics of periodic sampling:
Characteristic# 1: All input analog spectral components, regardless of their center frequencies, show up (appear) below half the sample rate in the digitized...Microprocessor Family Tree
Below is a little microprocessor history. Perhaps some of the ol' timers here will recognize a few of these integrated circuits. I have a special place in my heart for the Intel 8080 chip.
Image copied, without permission, from the now defunct Creative Computing magazine, Vol. 11, No. 6, June 1985.
A Lesson In Engineering Humility
Let's assume you were given the task to design and build the 12-channel telephone transmission system shown in Figure 1.
Figure 1
At a rate of 8000 samples/second, each telephone's audio signal is sampled and converted to a 7-bit binary sequence of pulses. The analog signals at Figure 1's nodes A, B, and C are presented in Figure 2.
Figure 2
I'm convinced that some of you subscribers to this dsprelated.com web site could accomplish such a design & build task....Constrained Integer Behavior
The wheels go round and round, round and round ...Integer arithmetic is ubiquitous in digital hardware implementations, it's prolific in the control and data-paths. When using fixed width (constrained) integers, overflow and underflow is business as usual.
Building with IntegersThe subtitle of this post mentions a wheel - before I get to the wheel I want to look at an example. The recursive-windowed-averager (rwa, a.k.a moving average)...
An Alternative Form of the Pure Real Tone DFT Bin Value Formula
IntroductionThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving alternative exact formulas for the bin values of a real tone in a DFT. The derivation of the source equations can be found in my earlier blog article titled "DFT Bin Value Formulas for Pure Real Tones"[1]. The new form is slighty more complicated and calculation intensive, but it is more computationally accurate in the vicinity of near integer frequencies. This...
Collaborative Writing Experiment: Your Favorite DSP Websites
You are invited to contribute to the content of this blog post through the magic of Google Docs' real time collaboration feature.
I discovered this tool several months ago when I was looking for a way to coordinate our annual family halloween party (potluck) and avoid the very unpleasant situation of ending up with too much chips and not enough chocolate (first world problem!). It was amusing to keep an eye on the "food you will bring" document we had created for this and watch...
A Useful Source of Signal Processing Information
I just discovered a useful web-based source of signal processing information that was new to me. I thought I'd share what I learned with the subscribers here on DSPRelated.com.
The Home page of the web site that I found doesn't look at all like it would be useful to us DSP fanatics. But if you enter some signal processing topic of interest, say, "FM demodulation" (without the quotation marks) into the 'Search' box at the top of the web page
and click the red 'SEARCH...
Curse you, iPython Notebook!
First, I think ipython is great. I use it daily and always have an ipython terminal open. But just recently, I was showing off the ipython 0.12 notebook and in the process created a lengthy example while demonstrating the cool features of the ipython notebook. The example included LaTeX equations, plots, etc. Since the notebook session was on something of relevance I decided to clean up the session and use it for the beginning of a report.
Why is Fourier transform broken
Every engineer who took a basic signal processing course is familiar with the Gibbs phenomenon, however, not all know why it occurs, I mean really why!
The answer lies in the mathematical background that is almost always skipped in signal processing courses. Moreover, from my experience at least, many textbooks present the theory, e.g. the Fourier transform, as infallible and no discussion of the limitation of the topic is given.
The short answer is that the metric space of continuous...
The 2024 DSP Online Conference
Here we go!
This week is the fifth edition of the DSP Online Conference! This milestone year marks our 5th anniversary, and we’re celebrating with a stellar lineup of renowned DSP experts like fred harris, Rick Lyons, Julius Orion Smith III, and Dan Boschen. These industry leaders will be generously sharing their knowledge and insights with the DSP community.
Why Attend?
Even if your schedule is packed this week, purchasing a pass grants you on-demand access to all...
Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 2)
IntroductionThis is an article that is a continuation of a digression from trying to give a better understanding of the Discrete Fourier Transform (DFT). It is recommended that my previous article "Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 1)"[1] be read first as many sections of this article are directly dependent upon it.
A second family of formulas for calculating the frequency of a single pure tone in a short interval in the time domain is presented. It...
Of Forests and Trees and DSP
When Stephane invited me to write a blog for dsprelated.com I immediately came up with a flood of ideas for highly detailed, technical, narrowly focused articles related to the intersection of DSP and control systems.
Then the USENET groups that I frequent received a spate of posts from people that were either asking about how to implement highly detailed, narrowly focused algorithms in ways that were either fundamental misapplications or were flawed because they were having problems...
Digging into an Audio Signal and the DSP Process Pipeline
In this post, I'll look at the benefits of using multiple perspectives when handling signals.A Pre-existing Audio FileLet's say we have an audio file of interest. Let's load it into Audacity and zoom in a little (using View → Zoom → Zoom In, multiple times). The figure illustrates the audio signal: just a basic single-tone signal.
By continuing to zoom into the signal, we eventually get to the point of seeing individual samples as illustrated below. Notice that I've marked one...
Matlab Programming Contest
Every 6 months Mathworks hosts an online Matlab programming contest. If you love or hate Matlab check out the contest. The group does a really good job putting together the puzzles. The contest runs for a week and starts today at noon EST (10 Nov 2010).
If you are an experienced Matlab programmer or new to Matlab it is worth checking out. Even if you do not intend on submitting solutions. Also, the problems / puzzles only require the base Matlab...
DSP Papers, Articles, Theses, etc
As you may already know, there is a 'Papers and Theses' section on DSPRelated:http://www.dsprelated.com/documents.phpThere are hundreds of DSP Related documents (articles, papers, theses, dissertations, etc) scattered all around the web, and the goal with this section is to find and list as many of those documents as possible in one place. There are, at the moment, a little over 100 documents listed, which I believe is only a small subset of what is available out there, and I need your help...
State Space Representation and the State of Engineering Thinking
Most, if not all, textbooks in signal processing (SP) thoroughly covers the frequency analysis of signals and systems alike, including the Fourier and the Z-transform that produce the well known Transfer Function. Another way of signal analysis, not as popular in signal processing though, is State Space representation. State space models describes the internal signals of the system or the process and how it affect the output, in contrast to the frequency representation that only describe the...
An Alternative Form of the Pure Real Tone DFT Bin Value Formula
IntroductionThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving alternative exact formulas for the bin values of a real tone in a DFT. The derivation of the source equations can be found in my earlier blog article titled "DFT Bin Value Formulas for Pure Real Tones"[1]. The new form is slighty more complicated and calculation intensive, but it is more computationally accurate in the vicinity of near integer frequencies. This...
How the Cooley-Tukey FFT Algorithm Works | Part 2 - Divide & Conquer
The Fast Fourier Transform revolutionized the Discrete Fourier Transform by making it much more efficient. In part 1, we saw that if you run the DFT on a power-of-2 number of samples, the calculations of different groups of samples repeat themselves at different frequencies. By leveraging the repeating patterns of sine and cosine values, the algorithm enables us to calculate the full DFT more efficiently. However, the calculations of certain groups of samples repeat more often than others. In this article, we’re going to explore how the divide-and-conquer method prepares the ground for the next stage of the algorithm by grouping the samples into specially ordered pairs.


















