I'm reading "Understanding DSP" in order to gain enough understanding to follow programs such as CubicSDR. (I'm fluent in C++ and event-driven programming.) Chapter 2 discusses the effects of sampling frequency and bandwidth, along with some other ideas (k, m). "We select the sampling frequency" sounds a little fishy to me since the hardware that I know of, such as SDRPlay, offer fixed sampling rates.
Am I going to discover as I read further that the discrete samples can be mathematically changed from the original sampling rate and sample size to what we need in order to do filtering and such?
Keep reading, Rich :-)
All the best,
The concept in the book is related to requirements for sampling relative to the content of the signal.
If you are working in audio, then the hardware will likely already offer sampling rates that will meet the requirements of audio signals, such as 44100, 48000, or other multiples or dividers of these.
If you are working in communications (e.g. wireless), then there are many possibilities.
For modern telecomm in the LTE or 5G space then most sampling rates are rationally related to 30.72 MHz.
At your stage of thinking, don't let these issues get you stalled.
P.S. At some point you may run into situations where you may have to convert from one sampling rate to another, but I hope - for your sake - that those circumstances will come way down the road. ;-)
Oops. Sorry Rich, I read too fast, and I re-read you message and realize that you are talking SDR, in which case you may have to work with sample rate changes sooner rather than later.
What do you mean by "original sampling rate?"
A signal is sampled from analogue world at the ADC and reverse at DAC. The minimum sampling rate is determined by sampling rules...you may oversample at ADC or upsample later in digital domain using new samples by interpolation "guess" or downsample...you may scale up or down the value. There is plenty freedom in DSP.
If you can find a copy of the "Multirate Signal processing for Communication Systems" on someone's desk, ask if you can borrow it and many of your questions will be answered. We use arbitrary interpolators to change sample rates between any to clock domains... all the time. We use them for timing recovery, for improvement in the D-to-A and A-to-D we use it to remove Doppler from Narrow bandwidth signals and for continuously variable bandwidth filters. Also for interesting audio special effects. Signal generation too... examples attached
Hello richgroot. Can you tell what page, of which edition, of my book is causing you problems?
Rick (and thanks to everyone else!),
I'm reading Chapter 2 in the third edition - which is all about center frequency, sampling frequency, m, n, k, spectral inversion, and all that stuff. I also read Chapter 3 and then reread Chapter 2. We seem to be choosing the sampling frequency to suit our needs of the moment (for bandpass filtering) but in practice, at least for audio and for SDR radios, we have to choose among the sampling rates offered by the hardware/software. SDRPlay, for example, offers 600K samples per second, and 1, 2, 3, ... 10 million samples per second. So in real life we don't get to choose the sampling frequency that would best suit our need. So I wondered whether I would later learn that we mathematically can fiddle the apparent sampling rate, perhaps by interpolation/decimation or some such. Just didn't want to have to read the whole book to see where the plot was going!
Hi Rich. Your notion that "we mathematically can fiddle the apparent sampling rate, perhaps by interpolation/decimation or some such" to change the sample rate of a discrete sequence is correct! My book's Chapter 10 discusses the deep and fascinating process of "sample rate conversion" (also called "resampling").
In my Chapter 10 you'll see how we can start with a finite-length sine wave sequence whose frequency is 1000 Hz sampled at a rate of 10,000 samples/second and, using that original sequence, generate a new finite-length sine wave sequence whose frequency is 1000 Hz sampled at a rate of 5,000 samples/second using the process called "decimation". Also in that chapter you'll see how we can start with a
finite-length sine wave sequence whose frequency is 1000 Hz sampled at a
rate of 10,000 samples/second and generate a new finite-length sine wave sequence whose frequency is 1000 Hz sampled at a rate of 20,000 samples/second using the process called "interpolation".
I visited the SDRPlay web site. Such wonderful hardware!!
Rich, in case you haven't done so in the past, please visit the following web page: