Engineering the Statistics
Do you remember the probability course you took in undergrad? If you were like me, you would consider it one of those courses that you get out of confused. But maybe a time will come where you regret skipping class because of the lecturer's persisting attempts to scare you with mathematical involved nomenclature.As you might have guessed, I had this moment few months back where I had to go deep into statistical analysis. I learned things the hard way, or maybe it is the right way. I mean...
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...
ICASSP 2011 conference lectures online (for free)
For the first time, the oral presentations of the International Conference on Accoustics, Speech, and Signal Processing (ICASSP) were recorded and posted online for free. This conference is the best in signal processing and it's diverse as well.
It has a bit speech processing, communication signal processing, and some interesting stuff like bio-inspired signal processing, where Prof. Sayed modeled the behaviour of a group of predetors attacking a herd of preys using distributed least mean...
FREE Peer-reviewed IEEE signal processing courses
The IEEE signal processing society is offereing FREE peer reviewed courses, though not many, they are peer reviewed and span differenet topics like; wavelets, speech analysis, and statistical detection.
Enjoy
http://cnx.org/lenses/ieeesps/endorsements?b_start:int=0&-C=
Discrete Wavelet Transform Filter Bank Implementation (part 2)
Following the previous blog entry: http://www.dsprelated.com/showarticle/115.php
Difference between DWT and DWPTBefore getting to the equivalent filter obtention, I first want to talk about the difference between DWT(Discrete Wavelet Transform) and DWPT (Discrete Wavelet Packet Transform). The latter is used mostly for image processing.
While DWT has a single "high-pass" branch that filters the signal with the h1 filter, the DWPT separates branches symmetricaly: this means that one...
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...
Discrete Wavelet Transform Filter Bank Implementation (part 1)
UPDATE: Added graphs and code to explain the frequency division of the branches
The focus of this article is to briefly explain an implementation of this transform and several filter bank forms. Theoretical information about DWT can be found elsewhere.
First of all, a 'quick and dirty' simplified explanation of the differences between DFT and DWT:
The DWT (Discrete Wavelet Transform), simply put, is an operation that receives a signal as an input (a vector of data) and...
Hidden Linear Algebra in DSP
Linear algebra (LA) is usually thought of as a blunt theoretical subject. However, LA is found hidden in many DSP algorithms used widely in practice.
An obvious clue in finding LA in DSP is the linearity assumption used in theoretical analysis of systems for modelling or design. A standard modelling example for this case would be linear time invariant (LTI) systems. LTI are usually used to model flat wireless communication channels. LTI systems are also used in the design of digital filter...
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...
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...
Multimedia Processing with FFMPEG
FFMPEG is a set of libraries and a command line tool for encoding and decoding audio and video in many different formats. It is a free software project for manipulating/processing multimedia data. Many open source media players are based on FFMPEG libraries.
Hidden Linear Algebra in DSP
Linear algebra (LA) is usually thought of as a blunt theoretical subject. However, LA is found hidden in many DSP algorithms used widely in practice.
An obvious clue in finding LA in DSP is the linearity assumption used in theoretical analysis of systems for modelling or design. A standard modelling example for this case would be linear time invariant (LTI) systems. LTI are usually used to model flat wireless communication channels. LTI systems are also used in the design of digital filter...
Components in Audio recognition - Part 1
Audio recognition is defined as the task of recognizing a particular piece of audio (could be music, ring-tone, and speech as well), from a given sample set of audio tracks.
The Human Auditory System (HAS) is unique in that the tasks of "familiarisation" of unknown tracks, and finding "similar" tracks come naturally to us. Tunes from the not-so-recent past can still haunt the human brain many years later, when triggered by a similar tune. The way the brain stores and...
Computing Chebyshev Window Sequences
Chebyshev windows (also called Dolph-Chebyshev, or Tchebyschev windows), have several useful properties. Those windows, unlike the fixed Hanning, Hamming, or Blackman window functions, have adjustable sidelobe levels. For a given user-defined sidelobe level and window sequence length, Chebyshev windows yield the most narrow mainlobe compared to any fixed window functions.
However, for some reason, detailed descriptions of how to compute Chebyshev window sequences are not readily available...
Implementing Impractical Digital Filters
This blog discusses a problematic situation that can arise when we try to implement certain digital filters. Occasionally in the literature of DSP we encounter impractical digital IIR filter block diagrams, and by impractical I mean block diagrams that cannot be implemented. This blog gives examples of impractical digital IIR filters and what can be done to make them practical.
Implementing an Impractical Filter: Example 1
Reference [1] presented the digital IIR bandpass filter...
Multi-Decimation Stage Filtering for Sigma Delta ADCs: Design and Optimization
During my research on digital FIR decimation filters I have been developing various Matlab scripts and functions. In which I have decided later on to consolidate it in a form of a toolbox. I have developed this toolbox to assist and automate the process of designing the multi-stage decimation filter(s). The toolbox is published as an open-source at the MathWorks web-site. My dissertation is open for public online as well. The toolbox has a wide set of examples to guide the user...
Discrete Wavelet Transform Filter Bank Implementation (part 2)
Following the previous blog entry: http://www.dsprelated.com/showarticle/115.php
Difference between DWT and DWPTBefore getting to the equivalent filter obtention, I first want to talk about the difference between DWT(Discrete Wavelet Transform) and DWPT (Discrete Wavelet Packet Transform). The latter is used mostly for image processing.
While DWT has a single "high-pass" branch that filters the signal with the h1 filter, the DWPT separates branches symmetricaly: this means that one...
The Nature of Circles
What do you mean?When calculating the mean of a list of numbers, the obvious approach is to sum them and divide by how many there are.
Suppose I give you a list of two numbers:
- 0
- 359
What is their mean? The obvious answer is 179.5.
If I told you that the numbers were compass bearings in degrees, what would your answer be then? Does 179.5 seem correct?
In the case of compass bearings, 0 is the same direction as 360. When talking about angles in the DSP world, we often talk about...
Analytic Signal
In communication theory and modulation theory we always deal with two phases: In-phase (I) and Quadrature-phase (Q). The question that I will discuss in this blog is that why we use two phases and not more.
Compressive Sensing - Recovery of Sparse Signals (Part 1)
The amount of data that is generated has been increasing at a substantial rate since the beginning of the digital revolution. The constraints on the sampling and reconstruction of digital signals are derived from the well-known Nyquist-Shannon sampling theorem...
Implementing Impractical Digital Filters
This blog discusses a problematic situation that can arise when we try to implement certain digital filters. Occasionally in the literature of DSP we encounter impractical digital IIR filter block diagrams, and by impractical I mean block diagrams that cannot be implemented. This blog gives examples of impractical digital IIR filters and what can be done to make them practical.
Implementing an Impractical Filter: Example 1
Reference [1] presented the digital IIR bandpass filter...
Hidden Linear Algebra in DSP
Linear algebra (LA) is usually thought of as a blunt theoretical subject. However, LA is found hidden in many DSP algorithms used widely in practice.
An obvious clue in finding LA in DSP is the linearity assumption used in theoretical analysis of systems for modelling or design. A standard modelling example for this case would be linear time invariant (LTI) systems. LTI are usually used to model flat wireless communication channels. LTI systems are also used in the design of digital filter...
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...
Multi-Decimation Stage Filtering for Sigma Delta ADCs: Design and Optimization
During my research on digital FIR decimation filters I have been developing various Matlab scripts and functions. In which I have decided later on to consolidate it in a form of a toolbox. I have developed this toolbox to assist and automate the process of designing the multi-stage decimation filter(s). The toolbox is published as an open-source at the MathWorks web-site. My dissertation is open for public online as well. The toolbox has a wide set of examples to guide the user...
The Zeroing Sine Family of Window Functions
IntroductionThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by introducing a class of well behaved window functions that the author believes to be previously unrecognized. The definition and some characteristics are displayed. The heavy math will come in later articles. This is an introduction to the family, and a very special member of it.
This is one of my longer articles. The bulk of the material is in the front half. The...
Off-Topic: A Fluidic Model of the Universe
IntroductionThis article is a followup to my previous article "Off Topic: Refraction in a Varying Medium"[1]. Many of the concepts should be quite familiar and of interest to the readership of this site. In the "Speculations" section of my previous article, I mention the goal of finding a similar differential equation as (18) of [1] for light traveling in gravity. It turns out it is the right equation, but a wrong understanding. As a consequence of trying to solve this puzzle, a new...
The Nature of Circles
What do you mean?When calculating the mean of a list of numbers, the obvious approach is to sum them and divide by how many there are.
Suppose I give you a list of two numbers:
- 0
- 359
What is their mean? The obvious answer is 179.5.
If I told you that the numbers were compass bearings in degrees, what would your answer be then? Does 179.5 seem correct?
In the case of compass bearings, 0 is the same direction as 360. When talking about angles in the DSP world, we often talk about...
Engineering the Statistics
Do you remember the probability course you took in undergrad? If you were like me, you would consider it one of those courses that you get out of confused. But maybe a time will come where you regret skipping class because of the lecturer's persisting attempts to scare you with mathematical involved nomenclature.As you might have guessed, I had this moment few months back where I had to go deep into statistical analysis. I learned things the hard way, or maybe it is the right way. I mean...
Compressive Sensing - Recovery of Sparse Signals (Part 1)
The amount of data that is generated has been increasing at a substantial rate since the beginning of the digital revolution. The constraints on the sampling and reconstruction of digital signals are derived from the well-known Nyquist-Shannon sampling theorem...
Analytic Signal
In communication theory and modulation theory we always deal with two phases: In-phase (I) and Quadrature-phase (Q). The question that I will discuss in this blog is that why we use two phases and not more.