Wave Walker DSP

DSP Algorithms for RF Systems

Blog
Figure 2: An example frequency response for a half band filter designed with halfBandDesign.py.

Half Band Filter Design Function in Python

The half band filter is an incredibly efficient filter useful in a number of applications as well as a great starting point for understanding fundamental DSP concepts. Previous posts covered the design of the filter weights and how to optimize the filter structure for computational efficiency. This blog posts simplifies the design of the half band filter weights using a Python function.

Figure 1: The two sequences for the autocorrelation of x0[n] and x0[n].

Cross Correlation Explained With Real Signals

Cross correlation mathematically measures the similarity of signals. Consider an example where you have a set of data samples represented by x[n] and y[n]. Cross correlation is used to measure on a sample by sample basis how similar x[n] is to y[n]. Simple examples with plots will demonstrate different combinations of positive, negative, strong and weak correlations.

1,000 Page Views!!!

It’s only been 94 days since launch and we just hit 1,000 page views! Thank you everyone!

And a very special thank you to Chad @ Cyclostationary.blog for linking to my site! Chad has published an incredible amount of DSP information on his blog and his expertise is off the charts. Cyclostationarity is a difficult subject and he describes the topic in a way that is much easier to understand than the academic literature. I particularly like his post on the Frequency Smoothing Method and the Time Smoothing Method. Please give him a look!

Figure 4: The frequency-response of H(e(j omega)) for multiple Nyquist zones.

Derivative Filter Impulse Response Derivation

Sooner or later you’re going to have to apply a derivative to a discrete-time signal. An example would be building a derivative matched filter (DMF) for timing recovery [harris2021, p.490]. This brings us to our first piece of DSP Wisdom: If you need to do something in DSP it’s best to do it with a filter. So how do you build a derivative filter?

We’ll start with the derivation in continuous-time to make the math tractable then transform it into discrete-time. A follow-up post will discuss methods and alternatives for designing the derivative filter weights. Richard Lyons has a really great section on derivative filters in his textbook that is totally worth your time if you’re interested in more information on the topic [lyons2011, p.361].

Fourier Transform Pairs of Conjugation and Time Reversal

Too often I find myself asking the questions “what is the Fourier transform of x(-t)“? “What is the inverse Fourier transform of X^*(-f)?” Finding them in a book or on Wikipedia often takes too long so to save myself the time and hopefully be useful to others, I’ve provided the derivations for the Fourier transforms of x(t), x^*(t), x(-t) and x^*(-t) below.

Read more

The DSP Family Tree connects basic undergrad concepts to those used in graduate school and in industry

The DSP Family Tree: Grow Your Career

I recall being an undergraduate and wondering to myself “why are all of these things I am learning useful?” and “how are they going to be applied?” It is hard to have perspective when you’re in the trenches of your undergraduate or graduate degree to know the importance of the material you are learning. I have produced a DSP Family Tree which is my opinion on how all of the different sub-fields of DSP interact and build on one another.

My hope is that the DSP Family Tree is useful in motivating yourself that the concepts you are studying or have studied are important and can be built into larger things. You might also think of this as a road map: you can start with a destination and figure out what you need to learn along your journey.

Read more

Figure 2: The complex sinusoid x0[n] = e(j2 pi 0.125 n) plotted in the complex plane.

Aliasing, Sampling and Spinning Car Tires

You know how on car commercials sometimes it looks like the wheel is spinning backwards? How weird is that? The effect is called aliasing and it occurs when the wheel’s rotation rate is faster than twice the frame rate of the video camera. You can watch a video below that demonstrates aliasing on car tires as well as a video where it appears that a helicopter’s blades have stopped spinning due to a similar effect.

Read more

Figure 2: The frequency responses for three different square root raised cosine filters.

Square Root Raised Cosine Filter in Python

The square root raised cosine (SRRC) filter is used as a pulse shaping filter [harris2021, p.87] in many linear modulations such as BPSK, QPSK, and 16-QAM. Frustratingly neither SciPy or NumPy have a square-root raised cosine (SRRC) filter. Mathuranathan Viswanathan at GaussianWaves.com has a great post on how to build a square-root raised cosine filter. You can also find the design equations in [johnson2004, p.225, harris2021, p. 95].

I’ve written my own SRRC design script in Python which you can download from the WaveWalkerDSP GitHub page in the Blog Downloads repository.

Read more

Blogs by Category

God, the Lord, is my strength; He makes my feet like the deer's; He makes me tread on my high places. Habakkuk 3:19
For everything there is a season, and a time for every matter under heaven. A time to cast away stones, and a time to gather stones together. A time to embrace, and a time to refrain from embracing. Ecclesiastes 3:1,5
The earth was without form and void, and darkness was over the face of the deep. And the Spirit of God was hovering over the face of the waters. Genesis 1:2
Behold, I am toward God as you are; I too was pinched off from a piece of clay. Job 33:6
Enter His gates with thanksgiving, and His courts with praise! Give thanks to Him; bless His name! Psalm 100:4
Lift up your hands to the holy place and bless the Lord! Psalm 134:2
Blessed is the man who trusts in the Lord, whose trust is the Lord. He is like a tree planted by water, that sends out its roots by the stream, and does not fear when heat comes, for its leaves remain green, and is not anxious in the year of drought, for it does not cease to bear fruit. Jeremiah 17:7-8
He said to him, “You shall love the Lord your God with all your heart and with all your soul and with all your mind. This is the great and first commandment. And a second is like it: You shall love your neighbor as yourself. On these two commandments depend all the Law and the Prophets.” Matthew 22:37-39
Then He said to me, “Prophesy over these bones, and say to them, O dry bones, hear the word of the Lord. Thus says the Lord God to these bones: Behold, I will cause breath to enter you, and you shall live." Ezekiel 37:4-5
Riches do not profit in the day of wrath, but righteousness delivers from death. Proverbs 11:4
The angel of the Lord appeared to him in a flame of fire out of the midst of a bush. He looked, and behold, the bush was burning, yet it was not consumed. And Moses said, “I will turn aside to see this great sight, why the bush is not burned.” When the Lord saw that he turned aside to see, God called to him out of the bush, “Moses, Moses!” And he said, “Here I am.” Exodus 3:2-3
Daniel answered and said: “Blessed be the name of God forever and ever, to whom belong wisdom and might. He changes times and seasons; He removes kings and sets up kings; He gives wisdom to the wise and knowledge to those who have understanding." Daniel 2:20-21
Now the Lord is the Spirit, and where the Spirit of the Lord is, there is freedom. 2 Corinthians 3:17
Previous slide
Next slide

This website participates in the Amazon Associates program. As an Amazon Associate I earn from qualifying purchases.

© 2021-2024 Wave Walker DSP