Going back to Germany!

Stephane Boucher June 13, 20176 comments

A couple of blog posts ago, I wrote that the decision to go to ESC Boston ended up being a great one for many different reasons.  I came back from the conference energized and really happy that I went.  

These feelings were amplified a few days after my return when I received an email from Rolf Segger, the founder of SEGGER Microcontroller (check out their very new website), asking if I would be interested in visiting their headquarters...


Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 2)

Cedron Dawg June 11, 20174 comments
Introduction

This 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...


Modeling a Continuous-Time System with Matlab

Neil Robertson June 6, 2017

Many of us are familiar with modeling a continuous-time system in the frequency domain using its transfer function H(s) or H(jω).  However, finding the time response can be challenging, and traditionally involves finding the inverse Laplace transform of H(s).  An alternative way to get both time and frequency responses is to transform H(s) to a discrete-time system H(z) using the impulse-invariant transform [1,2].  This method provides an exact match to the continuous-time...


ESC Boston's Videos are Now Up

Stephane Boucher June 5, 2017

In my last blog, I told you about my experience at ESC Boston and the few videos that I was planning to produce and publish.  Here they are, please have a look and any feedback (positive or negative) is appreciated. 

Short Highlight

This is a very short (one minute) montage of some of the footage that I shot at the show & conference.  In future shows, I absolutely need to insert clips here and there of engineers saying a few words about the conference (why they...


How to Find a Fast Floating-Point atan2 Approximation

Nic Taylor May 26, 20177 comments
Context Over a short period of time, I came across nearly identical approximations of the two parameter arctangent function, atan2, developed by different companies, in different countries, and even in different decades. Fascinated with how the coefficients used in these approximations were derived, I set out to find them. This atan2 implementation is based around a rational approximation of arctangent on the domain -1 to 1:

$$ atan(z) \approx \dfrac{z}{1.0 +...


Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 1)

Cedron Dawg May 12, 2017
Introduction

This is an article that is a another digression from trying to give a better understanding of the Discrete Fourier Transform (DFT). Although it is not as far off as the last blog article.

A new family of formulas for calculating the frequency of a single pure tone in a short interval in the time domain is presented. They are a generalization of Equation (1) from Rick Lyons' recent blog article titled "Sinusoidal Frequency Estimation Based on Time-Domain Samples"[1]. ...


Back from ESC Boston

Stephane Boucher May 7, 20172 comments

NOT going to ESC Boston would have allowed me to stay home, in my comfort zone.

NOT going to ESC Boston would have saved me from driving in the absolutely horrible & stressful Boston traffic1.

NOT going to ESC Boston would have saved me from having to go through a full search & questioning session at the Canada Customs on my return2.

2017/06/06 update: Videos are now up!

So two days...


A Beginner's Guide to OFDM

Qasim Chaudhari May 1, 20173 comments

In the recent past, high data rate wireless communications is often considered synonymous to an Orthogonal Frequency Division Multiplexing (OFDM) system. OFDM is a special case of multi-carrier communication as opposed to a conventional single-carrier system. 

The concepts on which OFDM is based are so simple that almost everyone in the wireless community is a technical expert in this subject. However, I have always felt an absence of a really simple guide on how OFDM works which can...


A Recipe for a Common Logarithm Table

Cedron Dawg April 29, 2017
Introduction

This is an article that is a digression from trying to give a better understanding to the Discrete Fourier Transform (DFT).

A method for building a table of Base 10 Logarithms, also known as Common Logarithms, is featured using math that can be done with paper and pencil. The reader is assumed to have some familiarity with logarithm functions. This material has no dependency on the material in my previous blog articles.

If you were ever curious about how...


Sinusoidal Frequency Estimation Based on Time-Domain Samples

Rick Lyons April 20, 201715 comments

The topic of estimating a noise-free real or complex sinusoid's frequency, based on fast Fourier transform (FFT) samples, has been presented in recent blogs here on dsprelated.com. For completeness, it's worth knowing that simple frequency estimation algorithms exist that do not require FFTs to be performed . Below I present three frequency estimation algorithms that use time-domain samples, and illustrate a very important principle regarding so called "exact"...


Polyphase Filters and Filterbanks

Kyle March 20, 20138 comments

ALONG CAME POLY

Polyphase filtering is a computationally efficient structure for applying resampling and filtering to a signal. Most digital filters can be applied in a polyphase format, and it is also possible to create efficient resampling filterbanks using the same theories.

This post will walk through a reference implementation of both the downsampling polyphase filter and a downsampling polyphase filterbank using scipy, numpy, matplotlib, and python. It should also highlight some of...


Four Ways to Compute an Inverse FFT Using the Forward FFT Algorithm

Rick Lyons July 7, 20151 comment

If you need to compute inverse fast Fourier transforms (inverse FFTs) but you only have forward FFT software (or forward FFT FPGA cores) available to you, below are four ways to solve your problem.

Preliminaries To define what we're thinking about here, an N-point forward FFT and an N-point inverse FFT are described by:

$$ Forward \ FFT \rightarrow X(m) = \sum_{n=0}^{N-1} x(n)e^{-j2\pi nm/N} \tag{1} $$ $$ Inverse \ FFT \rightarrow x(n) = {1 \over N} \sum_{m=0}^{N-1}...

Understanding and Relating Eb/No, SNR, and other Power Efficiency Metrics

Eric Jacobsen May 29, 20122 comments

Introduction

Evaluating the performance of communication systems, and wireless systems in particular, usually involves quantifying some performance metric as a function of Signal-to-Noise-Ratio (SNR) or some similar measurement. Many systems require performance evaluation in multipath channels, some in Doppler conditions and other impairments related to mobility. Some have interference metrics to measure against, but nearly all include noise power as an impairment. Not all systems are...


Time Machine, Anyone?

Andor Bariska March 7, 20086 comments

Abstract: Dispersive linear systems with negative group delay have caused much confusion in the past. Some claim that they violate causality, others that they are the cause of superluminal tunneling. Can we really receive messages before they are sent? This article aims at pouring oil in the fire and causing yet more confusion :-).

PDF version of this article.

Introduction 

In this article we reproduce the results of a physical experiment...


Frequency Dependence in Free Space Propagation

Eric Jacobsen May 14, 20088 comments

Introduction

It seems to be fairly common knowledge, even among practicing professionals, that the efficiency of propagation of wireless signals is frequency dependent. Generally it is believed that lower frequencies are desirable since pathloss effects will be less than they would be at higher frequencies. As evidence of this, the Friis Transmission Equation[i] is often cited, the general form of which is usually written as:

Pr = Pt Gt Gr ( λ / 4πd )2 (1)

where the...


Understanding and Preventing Overflow (I Had Too Much to Add Last Night)

Jason Sachs December 4, 2013

Happy Thanksgiving! Maybe the memory of eating too much turkey is fresh in your mind. If so, this would be a good time to talk about overflow.

In the world of floating-point arithmetic, overflow is possible but not particularly common. You can get it when numbers become too large; IEEE double-precision floating-point numbers support a range of just under 21024, and if you go beyond that you have problems:

for k in [10, 100, 1000, 1020, 1023, 1023.9, 1023.9999, 1024]: try: ...

Accurate Measurement of a Sinusoid's Peak Amplitude Based on FFT Data

Rick Lyons December 14, 201110 comments

There are two code snippets associated with this blog post:

Flat-Top Windowing Function for the Accurate Measurement of a Sinusoid's Peak Amplitude Based on FFT Data

and

Testing the Flat-Top Windowing Function

This blog discusses an accurate method of estimating time-domain sinewave peak amplitudes based on fast Fourier transform (FFT) data. Such an operation sounds simple, but the scalloping loss characteristic of FFTs complicates the process. We eliminate that complication by...


A Differentiator With a Difference

Rick Lyons November 3, 20076 comments

Some time ago I was studying various digital differentiating networks, i.e., networks that approximate the process of taking the derivative of a discrete time-domain sequence. By "studying" I mean that I was experimenting with various differentiating filter coefficients, and I discovered a computationally-efficient digital differentiator. A differentiator that, for low fequency signals, has the power of George Foreman's right hand! Before I describe this differentiator, let's review a few...


Oscilloscope Dreams

Jason Sachs January 15, 20125 comments

My coworkers and I recently needed a new oscilloscope. I thought I would share some of the features I look for when purchasing one.

When I was in college in the early 1990's, our oscilloscopes looked like this:

Now the cathode ray tubes have almost all been replaced by digital storage scopes with color LCD screens, and they look like these:

Oscilloscopes are basically just fancy expensive boxes for graphing voltage vs. time. They span a wide range of features and prices:...


Understanding and Implementing the Sliding DFT

Eric Jacobsen April 23, 20154 comments
Introduction

In many applications the detection or processing of signals in the frequency domain offers an advantage over performing the same task in the time-domain.   Sometimes the advantage is just a simpler or more conceptually straightforward algorithm, and often the largest barrier to working in the frequency domain is the complexity or latency involved in the Fast Fourier Transform computation.   If the frequency-domain data must be updated frequently in a...


Two jobs

Stephane Boucher December 5, 201223 comments

For those of you following closely embeddedrelated and the other related sites, you might have noticed that I have been less active for the last couple of months, and I will use this blog post to explain why. The main reason is that I got myself involved into a project that ended up using a better part of my cpu than I originally thought it would.

I currently have two jobs: one as an electrical/dsp engineer recycled as a web publisher and the other as a parent of three kids. My job...


Do you like the new Comments System?

Stephane Boucher September 19, 20124 comments

I have just finished implementing a new comments system for the blogs.  Do you like it?

Please share your thoughts with me by adding a comment.

I'll wait a few days and make sure it works properly and then I'll port it to the code snippets and papers section.

Thanks!


DSP Papers, Articles, Theses, etc

Stephane Boucher March 17, 20111 comment

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...


Code Snippets Suggestions

Stephane Boucher January 19, 20115 comments

Despite being only a couple of months old, the Code Snippet section ( DSPRelated.com/code.php ) already contains tens of snippets, thanks to the contributors who have taken the time to share their code. 

But let's not stop here - there is room for several hundreds more snippets before the database can be said to cover a decent portion of the DSP field.  

To keep the momentum going, I will do two things:  

First, I am modifying the rewards program.  Instead of...


Latest DSP Books

Stephane Boucher December 1, 2010

As you may already know, Rick Lyons has just published a new edition of his highly acclaimed book: "Understanding Digital Signal Processing".   This book has been getting very high ratings and positive reviews from the DSP community since the publication of the first edition.  The 3rd edition seems to contain more than enough new material to justify replacing your old copy.

Also of possible interest to you, a new DSP book by C. Britton Rorabaugh titled "


Code Snippets Section Now LIVE

Stephane Boucher November 2, 20101 comment

The new code sharing section is now live and can be accessed HERE.  

Please take a few minutes to rate and/or comment the snippets that you have the expertise to judge.

If you think of some code snippets that you would like to share with the DSP community, please apply to become a contributor HERE.

If you are not aware of the reward program for contributors, your can learn about it HERE.

As always, your comments and suggestions are...


New Code Sharing Section & Reward Program for Contributors!

Stephane Boucher October 15, 201012 comments

UPDATE (11/02/2010): The code section is now live.

UPDATE 2 (01/31/2011): The reward program has changed.  A flat fee of $20 per code snippet submitted will now be paid.  

_______________

I am very happy to finally announce the imminent launch of the new code sharing section.  My vision for this new section is a rich library of high quality code snippets for the DSP community, from processor specific functions to Matlab or Scilab routines, from the simplest filter...


50,000th Member Announced!

Stephane Boucher January 11, 2010

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


Almost 50,000 Members!

Stephane Boucher November 26, 20091 comment

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!),...


DSPRelated faster than ever!

Stephane Boucher March 2, 20094 comments

if you are visiting DSPRelated.com on a regular basis, you should observe that the site loads significantly faster in your browser than it used to, especially if you are in Europe or in Asia.  The main reason for this is that I am now using Amazon's CloudFront service for the delivery of most static content on DSPRelated.com (images, javascripts, css).   The cloudFront service automatically detects the location of a visitor and will deliver the static content from the server...