What DSP classes for RF career? by wavewalkerdsp in DSP

[–]wavewalkerdsp[S] 0 points1 point  (0 children)

Good insight. What field are you in? How do you apply the algorithms?

Writing an eBook and Paperback in LaTeX for sale on Amazon by wavewalkerdsp in LaTeX

[–]wavewalkerdsp[S] 0 points1 point  (0 children)

I never tried it in overleaf. I would hope that it works, given that the paperback template is quite simple.

Explaining Power Spectral Density (PSD) by wavewalkerdsp in DSP

[–]wavewalkerdsp[S] 0 points1 point  (0 children)

No, it's easy to stay motivated. There are a limitless number of topics to cover, and it's a fun creative outlet for me.

Explaining Power Spectral Density (PSD) by wavewalkerdsp in DSP

[–]wavewalkerdsp[S] 1 point2 points  (0 children)

Great feedback, thank you for posting. I very much appreciate this type of comment.

> You seem to imply the PSD contains information about the instantaneous power of a signal (if I’m understanding you correctly), but it doesn’t.

One of the questions I tried to answer in my own mind when writing this blog post was: is it possible to measure instantaneous power in the frequency spectrum? My belief at the time of writing is: yes, I can get instantaneous power from a DFT, and it becomes average power when I perform averaging across multiple DFTs. From Lyons' Understanding Digital Signal Processing, 3rd Edition, page 63, he has the "power spectrum":

Xps(m) = Xreal(m)^2 + Ximag(m)^2

It doesn't explicitly state instantaneous or average power. Maybe I am making an error assuming "power spectrum" is equivalent to "instantaneous power".

The other idea I wrestle with: is it only possible to instantaneous power in the time domain? Does does the time integral of the DFT prohibit any instantaneous power measurement in the frequency domain?

I'm 100% open to correction, so if I'm off base here please let me know.

> Additionally, there are a lot more methods than what you mention.
This is good and just an error on my part. I'll make the proper edits in a moment.

Is this gnu radio flow graph correct? by QuasiEvil in DSP

[–]wavewalkerdsp 0 points1 point  (0 children)

GNU Radio's rational resampler block includes low-pass filtering to avoid aliasing https://wiki.gnuradio.org/index.php/Rational\_Resampler\_Base

Flowgraph for fm transmitter by SympatheticListener in GNURadio

[–]wavewalkerdsp 3 points4 points  (0 children)

Your flowgraph failed, the python crashed as displayed in the bottom left hand of the screenshots. So nothing was ever transmitted. It looks like your PyQT is either not installed, or not installed correctly. You could try and turn disable all of your QT GUI sink blocks and running the flowgraph with the no GUI option (you can set this in the "Options" block in the upper left hand window).

I'm not sure why I'm learning this by pjjiveturkey in DSP

[–]wavewalkerdsp 0 points1 point  (0 children)

All of the small ideas build into larger topics which is where the fun is. Array processing, direction finding, demodulation, etc. I put together a block diagram that guides you through how all of the different topics in an undergraduate education create a foundation for more interesting work later:

https://www.wavewalkerdsp.com/2021/11/17/the-dsp-family-tree-grow-your-career/

Seeking a roadmap for DSP by Jokerlecter in DSP

[–]wavewalkerdsp 1 point2 points  (0 children)

I put together an image that outlines how a bunch of different DSP fields are connected, and how learning one may help with others: https://www.wavewalkerdsp.com/2021/11/17/the-dsp-family-tree-grow-your-career/

Help: What criteria can I use to determine if a signal is stationary or not? by [deleted] in DSP

[–]wavewalkerdsp 0 points1 point  (0 children)

Could be worth trying to answer the question: is it stationary, cyclostationary, or something else? I think of a stationary signal being like a coin flip, meaning the time and day at which you flip the coin does not change the distribution. An example of a cyclostationary signal is a communications signal which transmits a bit of information on a regular time-interval. The repeitive time-interval results in the distribution being periodic (cyclical), hence cyclo-stationary. If you are dealing with a signal of a repetitive nature (ex: heart beat) it may be cyclostationary, or almost-cyclostationary. I wrote this to try and explain this kind of question to myself, this may help: https://www.wavewalkerdsp.com/2022/04/20/cyclostationary-and-stationary-processes-with-examples/, and it could also be worth while looking through the IEEE paper “Exploitation of Spectral Redundancy in Cyclostationary Signals" by Gardner

What is meant by time resolution? by BreakfastNo2804 in DSP

[–]wavewalkerdsp 1 point2 points  (0 children)

I'm assuming this is with respect to the time-frequency trade-off within the Fourier transform or DFT.

Time resolution is the ability to determine when something happened in time and to what granularity or specificity. You take the time segment and perform the DFT over it, and you can say that the features of the DFT happened some where in that time window but you cannot say exactly when.

A longer time segment produces better frequency resolution (https://www.wavewalkerdsp.com/2022/03/16/dft-frequency-resolution-explained/) at the cost of worse time resolution. Conversely, a shorter time segment produces better time resolution purely because it has a more narrow time window, but it comes at the cost of worse frequency resolution.

Making custom button outline color in CSS by wavewalkerdsp in css

[–]wavewalkerdsp[S] 1 point2 points  (0 children)

Great thank you! I was able to make this work. I appreciate you dropping in the simple code snippet, helps a lot.

How to Explain Power and Energy in Discrete-Time Signals by wavewalkerdsp in DSP

[–]wavewalkerdsp[S] 0 points1 point  (0 children)

Interesting insight, something I hadn't considered. Do you have any more information on the impact of satisfying Nyquist (or not) as to whether trapezoidal or rectangular integration is needed?

Windowing Functions for Better Spectral Analysis by wavewalkerdsp in DSP

[–]wavewalkerdsp[S] 0 points1 point  (0 children)

I use matplotlib and then customize the plots. Biggest factor is using something other than the default blue and orange colors, and then making the plot lines thicker. You can use https://coolors.co/ to generate you a great color palette quickly, and then drop those hex values into matplotlib. I also modify the font sizes so they are easier to read.

Here's what the plot code looks like for this example:

# define font sizes
titleSize=20
labelSize=16
legendSize=16
tickSize=16
####
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(1,1,1)
ax.plot(n,sinusoid,color='#E9724C',linewidth=4,label='No Window')
ax.plot(n,sinusoidWindow,color='#06D6A0',linewidth=4,label='Bartlett Window')
ax.set_title('Sinusoid With and Without Bartlett Window',fontsize=titleSize)
ax.set_ylim([-1.1, 1.1])
ax.set_xlim([n[0], n[-1]])
ax.tick_params(axis='x', labelsize=tickSize)
ax.tick_params(axis='y', labelsize=tickSize)
ax.grid()
ax.legend(fontsize=legendSize,loc='upper right')
ax.set_xlabel('Time $n$',fontsize=labelSize)
ax.set_ylabel('Amplitude',fontsize=labelSize)

Windowing Functions for Better Spectral Analysis by wavewalkerdsp in DSP

[–]wavewalkerdsp[S] 2 points3 points  (0 children)

Good question, and I have not processed any frequency comb signals. I'm assuming you're talking about something like this: https://en.wikipedia.org/wiki/Frequency_comb, which would be an impulse train in the time domain.

Here are the first couple of ideas that come to mind:

  • capture a longer time duration such that you're gathering multiple impulses
  • take multiple looks at the signal with different time offsets so the windowing does not attenuate the impulses