DSPRelated.com
The 2025 DSP Online Conference

TCP/IP interface (Matlab/Octave)

Markus Nentwig June 17, 201210 comments

Communicate with measurement instruments via Ethernet (no-toolbox-Matlab or Octave)

Purpose

Measurement automation is digital signal processing in a wider sense: Getting a digital signal from an analog world usually involves some measurement instruments, for example a spectrum analyzer. Modern instruments, and also many off-the-shelf prototyping boards such as FPGA cards [1] or microcontrollers [2] are able to communicate via Ethernet. Here, I provide some basic mex-functions (compiled C...


Weighted least-squares FIR with shared coefficients

Markus Nentwig May 23, 2012

FIR design with arbitrary routing between delay line and coefficient multipliers.

Includes a commented implementation of a generic IRLS FIR design algorithm.

Introduction: Reverse Engineering

While looking for numerical IIR filter optimization, a Matlab program in [1] for the design of FIR filters caught my attention. The equations looked familiar, sort of, but on closer examination the pieces refused to fit together. Without the references, it took about two evenings to sort out how it...


Instant CIC

Markus Nentwig May 8, 20124 comments

Summary:

A floating point model for a CIC decimator, including the frequency response.

Description:

A CIC filter relies on a peculiarity of its fixed-point implementation: Normal operation involves repeated internal overflows that have no effect to the output signal, as they cancel in the following stage.

One way to put it intuitively is that only the speed (and rate of change) of every little "wheel" in the clockworks carries information, but its absolute position is...


Design study: 1:64 interpolating pulse shaping FIR

Markus Nentwig December 26, 20115 comments

This article is the documentation to a code snippet that originated from a discussion on comp.dsp.

The task is to design a root-raised cosine filter with a rolloff of a=0.15 that interpolates to 64x the symbol rate at the input.

The code snippet shows a solution that is relatively straightforward to design and achieves reasonably good efficiency using only FIR filters.

Motivation: “simple solutions?”

Python number crunching faster? Part I

Christopher Felton September 17, 20114 comments

Everyone has their favorite computing platform, regardless if it is Matlab, Octave, Scilab, Mathematica, Mathcad, etc.  I have been using Python and the common numerical and scientific packages available.  Personally, I have found this to be very useful in my work.  Lately there has been some chatter on speeding up Python.

From another project I follow, MyHDL, I was introduced to the Python JIT compiler,


Bank-switched Farrow resampler

Markus Nentwig August 13, 20112 comments
Bank-switched Farrow resampler Summary

A modification of the Farrow structure with reduced computational complexity.Compared to a conventional design, the impulse response is broken into a higher number of segments. Interpolation accuracy is achieved with a lower polynomial order, requiring fewer multiplications per output sample at the expense of a higher overall number of coefficients.

Example code

This code snippet provides a Matlab / Octave implementation.And


FREE Peer-reviewed IEEE signal processing courses

Sami Aldalahmeh April 26, 20111 comment

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)

David December 5, 20109 comments

Following the previous blog entry: http://www.dsprelated.com/showarticle/115.php

Difference between DWT and DWPT

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


Matlab Programming Contest

Christopher Felton November 10, 2010

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


Discrete Wavelet Transform Filter Bank Implementation (part 1)

David October 27, 20101 comment

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


There's No End to It -- Matlab Code Plots Frequency Response above the Unit Circle

Neil Robertson October 23, 20179 comments
Reference [1] has some 3D plots of frequency response magnitude above the unit circle in the Z-plane.  I liked them enough that I wrote a Matlab function to plot the response of any digital filter this way.  I’m not sure how useful these plots are, but they’re fun to look at. The Matlab code is listed in the Appendix. 

This post is available in PDF format for easy...


Correlation without pre-whitening is often misleading

Peter Kootsookos February 18, 20089 comments
White Lies

Correlation, as one of the first tools DSP users add to their tool box, can automate locating a known signal within a second (usually larger) signal. The expected result of a correlation is a nice sharp peak at the location of the known signal and few, if any, extraneous peaks.

A little thought will show this to be incorrect: correlating a signal with itself is only guaranteed to give a sharp peak if the signal's samples are uncorrelated --- for example if the signal is composed...


Multi-Decimation Stage Filtering for Sigma Delta ADCs: Design and Optimization

AHMED SHAHEIN March 1, 20176 comments

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


Add a Power Marker to a Power Spectral Density (PSD) Plot

Neil Robertson February 7, 2021

Perhaps we should call most Power Spectral Density (PSD) calculations relative PSD, because usually we don’t have to worry about absolute power levels.  However, for cases (e.g., measurements or simulations) where we are concerned with absolute power, it would be nice to be able to display it on a PSD plot.  Unfortunately, you can’t read the power directly from the plot.  For example, the plotted spectral peak of a narrowband signal, such as a sinewave, is lower than the...


'z' as in 'Zorro': Frequency Masking FIR

Markus Nentwig October 2, 2012

An efficient way to implement FIR filters. Matlab / Octave example included. Keywords: Frequency masking FIR filter implementation

Introduction

An "upsampled" FIR filter uses multiple-sample delays between the taps, compared to the unity delays in a conventional FIR filter. The resulting frequency response has steeper edges, but contains periodic images along the frequency axis (Fig. 1). Due to the latter, it is typically not too useful on its own.

Figure 1: Conventional and 'upsampled'...

Decimators Using Cascaded Multiplierless Half-band Filters

Neil Robertson November 19, 2023

In my last post, I provided coefficients for several multiplierless half-band FIR filters. In the comment section, Rick Lyons mentioned that such filters would be useful in a multi-stage decimator. For such an application, any subsequent multipliers save on resources, since they operate at a fraction of the maximum sample frequency. We’ll examine the frequency response and aliasing of a multiplierless decimate-by-8 cascade in this article, and we’ll also discuss an interpolator cascade using the same half-band filters.


Simple Discrete-Time Modeling of Lossy LC Filters

Neil Robertson April 19, 20231 comment

There are many software applications that allow modeling LC filters in the frequency domain.  But sometimes it is useful to have a time domain model, such as when you need to analyze a mixed analog and DSP system.  For example, the system in Figure 1 includes an LC filter as well as a DSP portion.  The LC filter could be an anti-alias filter, a channel filter, or some other LC network.  For a design using undersampling, the filter would be bandpass [1].  By modeling...


Accelerating Matlab DSP Code on the GPU

Seth March 25, 20102 comments

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


Determination of the transfer function of passive networks with MATLAB Functions

Josef Hoffmann December 7, 20212 comments

With MATLAB functions, the transfer function of passive networks can be determined relatively easily. The method is explained using the example of a passive low-pass filter of the sixth order, which is shown in Fig.1

Fig.1 Passive low-pass filter of the sixth order

If one tried, as would be logical, to calculate the transfer function starting from the input, it would be quite complicated. On the other hand, if you start from the output, the determination of this function is simple...


The Discrete Fourier Transform of Symmetric Sequences

Neil Robertson December 8, 2024

Symmetric sequences arise often in digital signal processing. Examples include symmetric pulses, window functions, and the coefficients of most finite-impulse response (FIR) filters, not to mention the cosine function. Examining symmetric sequences can give us some insights into the Discrete Fourier Transform (DFT). An even-symmetric sequence is centered at n = 0 and xeven(n) = xeven(-n). The DFT of xeven(n) is real. Most often, signals we encounter start at n = 0, so they are not strictly speaking even-symmetric. We’ll look at the relationship between the DFT’s of such sequences and those of true even-symmetric sequences.


The 2025 DSP Online Conference