Bank-switched Farrow resampler

Markus Nentwig August 13, 2011
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...


Least-squares magic bullets? The Moore-Penrose Pseudoinverse

Markus Nentwig October 24, 20109 comments

Hello,

the topic of this brief article is a tool that can be applied to a variety of problems: The Moore-Penrose Pseudoinverse.While maybe not exactly a magic bullet, it gives us least-squares optimal solutions, and that is under many circumstances the best we can reasonably expect.

I'll demonstrate its use on a short example. More details can be found for example on Wikipedia, or the Matlab documentation...


Fitting Filters to Measured Amplitude Response Data Using invfreqz in Matlab

Julius Orion Smith III October 11, 20102 comments

This blog post has been moved to the code snippet section and can now be found HERE.  Please update your bookmark.  Thanks!


Radio Frequency Distortion Part II: A power spectrum model

Markus Nentwig October 11, 20101 comment
Summary

This article presents a ready-to-use model for nonlinear distortion caused by radio frequenfcy components in wireless receivers and linear transmitters. Compared to the similar model presented in my earlier blog entry, it operates on expectation values of the the power spectrum instead of the signal itself: Use the signal-based model to generate distortion on a signal, and the one from this article to directly obtain the power spectrum much more efficiently.In...


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


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


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


Fitting Filters to Measured Amplitude Response Data Using invfreqz in Matlab

Julius Orion Smith III October 11, 20102 comments

This blog post has been moved to the code snippet section and can now be found HERE.  Please update your bookmark.  Thanks!


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


Coefficients of Cascaded Discrete-Time Systems

Neil Robertson March 4, 2018

In this article, we’ll show how to compute the coefficients that result when you cascade discrete-time systems.  With the coefficients in hand, it’s then easy to compute the time or frequency response.  The computation presented here can also be used to find coefficients of mixed discrete-time and continuous-time systems, by using a discrete time model of the continuous-time portion [1].

This article is available in PDF format for...


Generating Partially Correlated Random Variables

Harry Commin March 23, 201910 comments
IntroductionIt is often useful to be able to generate two or more signals with specific cross-correlations. Or, more generally, we would like to specify an $\left(N \times N\right)$ covariance matrix, $\mathbf{R}_{xx}$, and generate $N$ signals which will produce this covariance matrix.

There are many applications in which this technique is useful. I discovered a version of this method while analysing radar systems, but the same approach can be used in a very wide range of...


An Efficient Lowpass Filter in Octave

Paul Lovell November 6, 2019

This article describes an efficient linear-phase lowpass FIR filter, coded using the Octave programming language. The intention is to focus on the implementation in software, but references are provided for those who wish to undertake further study of interpolated FIR filters [1]- [3].

The input signal is processed as a vector of samples (eg from a .wav file), which are converted to a matrix format.   The complete filter is thus referred to as a Matrix IFIR or...


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


The Phase Vocoder Transform

Christian Yost February 12, 2019
1 Introduction

I would like to look at the phase vocoder in a fairly ``abstract'' way today. The purpose of this is to discuss a method for measuring the quality of various phase vocoder algorithms, and building off a proposed measure used in [2]. There will be a bit of time spent in the domain of continuous mathematics, thus defining a phase vocoder function or map rather than an algorithm. We will be using geometric visualizations when possible while pointing out certain group theory...


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=


Compute Modulation Error Ratio (MER) for QAM

Neil Robertson November 5, 20192 comments

This post defines the Modulation Error Ratio (MER) for QAM signals, and shows how to compute it.  As we’ll see, in the absence of impairments other than noise, the MER tracks the signal’s Carrier-to-Noise Ratio (over a limited range).  A Matlab script at the end of the article computes MER for a simplified QAM-64 system.

Figure 1 is a simplified block diagram of a QAM system.  The transmitter includes a source of QAM symbols, a root-Nyquist pulse-shaping filter and a...