A broadcast station may transmit more than one subcarrier signal.. The purpose of the Rational Resampler block is to decimate the sample rate by a factor of 48 and interpolate the sample rate by a factor of 25, which results in a new sample rate of 480k4825=250k. https://wiki.gnuradio.org/index.php/Tutorials
Experiment with changing both the overall sample rate in the flow graph as well as the sample rate in the audio sink to see how the tone is affected. Note that there are in fact 32 samples within one cycle of the wave. Unauthorized reception of SCA broadcasts may violate the Communications Act of 1934 which states that no one may receive, or assist in receiving, any radio communication to which they are not entitled and use that information for their own benefit. This certainly prohibits any commercial use of the information in these broadcasts. The Options block sets some general parameters for the flow graph. (|sR,}i/xo3g}zeVdvy5^Q34|X'Y'-K>6iGeTx@ A YsaJ The Resources section provides links to several suppliers of this hardware.
This Signal Source is now set to output a real-valued 1 kHz sinusoid with a peak amplitude of 0.5. You can also click on the magnifying glass (or binoculars, on some operating systems) in the upper right side of the window and simply type a search term (e.g.
The gain of this block is controlled by the variable gain and the block further decimates the sample rate to 48 KS/s. On the right side of the window is a list of the blocks that are available.
Decreasing X Max in the control panel until 1 ms is visible will let you count the number of samples. Finally, high frequencies are deemphasized according to standard FM protocol by the FM Deemphasis block and sent to the Audio Sink block, which makes them audible by sending them to the PCs sound card. If you are only using a daughterboard that is fast enough you can conveniently change the flow graph to tune the USRP directly and remove the frequency translating filter.
The FCC allocation for SCA dates to the switch of the FM broadcast band from its original 42-50 MHz allocation to the 88-108 MHz allocation in the mid-1940s. Copyright Statement, Using Serial Bluetooth With a Microcontroller, Why You Need an Analog Front End and How to Set It Up, Restoring a Vintage Zenith Table Top AM/FM Receiver from the 60s, Generating Analog Waves From Digital Signals, RADAR And Electronic Warfare Fundamentals, Understanding Digital Buffer, Gate And Logic IC Circuits. Exactly 48 cycles of the 57 kHz subcarrier are used to encode each bit using differential Manchester encoding to provide a data rate of 5700048=1187.5 bits per second just adequate enough to encode the song name and station information for the listener. The execution stage runs the Python code that was generated in the previous step. When you are comfortable with this material, feel free to move on to tutorial 2. launch the GNU Radio Companion (GRC) software.
These subcarrier channels are not receivable with a regular radio; special receivers are required. https://www.fcc.gov/media/radio/broadcast-radio-links#FAM, Explanation of frequency allocation for FM broadcast band
l;xp(ipfCa4+T}5n5rQCbQtu)#+AMd_m2,)!Aq|kZ.7I; osU=I i"plA+y@K9Rm7
/S]g&Bn$b^y
Select the FIR Type to be Float->Float (Decimating).
The next frequency component ranging from 23-53 kHz and centered at 38 kHz is double sideband suppressed carrier modulation consisting of the difference of the left and right (L - R) audio channels. The sample rate of 2.4 MS/s (set by the variable samp_rate) used by the SDR source blocks must ultimately be reduced (or decimated) to a sample rate that is appropriate for the PCs sound card (usually 36 or 48 KS/s) connected to the audio sink block. It is worth noting that sample rates, especially related to audio output are a common source of frustration in these labs so it is worth spending some time to ensure the concepts are understood here. Open the Waveform Generators category and double-click on the Signal Source. Explore each of the categories so that you have an idea of what blocks are available. Properties for slider setting frequency. Also note that there is no Throttle block.
Next, the signal is demodulated by the FM Demod block and scaled according to the variable gain_sca by the Multiply Constant block. Security Electronics Systems And Circuits, Build a Farmer, Fox, Chicken, Corn Puzzle, Vintage Tek: Continuously Variable Autotransformers, Restoration of a Vintage Zenith G725 AM/FM Receiver, Build a Digital Clock Family Using Nextion Displays, Download the file(s) from my webpage (see. The video below shows the narrow band FM receiver in action receiving the AO-51 amateur radio satellite using the USRP, WBX and an Arrow antenna. Other commonly-supported rates are 8000, 11025 and 22050. It's easy - Just click the "Subscribe" link below to review your options and place your order. GRC flowgraph of an FM monophonic receiver. This article shows how to combine hardware, software, and your PC to build Software Defined Radios (SDRs) to receive FM radio broadcasts and more.
Embedded software engineer in the satcom industry during the day. If you want to edit the flow graph, you can double-click on the .grc file and it will launch GNU Radio companion.
In this case, M = 2, so the receiver decodes the signals as binary phase shift keying (BPSK). (Note: After adding the RTL-SDR source block, in the Device Arguments, you may need to add rtl=0 so GRC identifies the connection to the RTL-SDR hardware.). Click on this block to see the variable name and value.
Small Logic Gates The building blocks of versatile digital circuits. Connect this to the output of the Signal Source by clicking on the out port of the Throttle and then the in port of the QT GUI Frequency Sink. In order to view this wave we need one of the graphical sinks. Recall that for an FFT, the frequency resolution f0=fs/N where fs is the sample rate and N is the FFT block size. FIGURE 10. %
The other source block is either omitted or disabled (shown in gray) in the flowgraph. %PDF-1.3
use the computers audio hardware with GRC. GRC will play sample data from the file instead of from the hardware.
If you live in a more remote area, you may require an elevated external FM antenna or old-style VHF TV antenna for satisfactory reception. Since the sample rate is 48 KS/s and the samples are real, this FFT plot displays a 24 kHz bandwidth of the monophonic audio spectrum. FM no static at all begins the song sung in the 70s by the jazz-rock group Steely Dan.
Fortunately, under the Fair Use Doctrine of US copyright law, its permissible to use small amounts of copyright-protected material for non-commercial, educational purposes which seems to be the case here.
GRC can be installed by downloading it from the gnuradio wiki, or by following the Windows workflow provided by SDRPlay in the downloads section of their webpage. The WBFM block recovers the composite baseband signal and sends it to the second Low Pass Filter block to recover the monophonic audio. It is because the sample rate on the FFT has not been adjusted to properly measure its input.
Thats the equivalent to a maximum receiver bandwidth of 10.66 MHz. FIGURE 2.
The higher the sample rate, the higher the processing demand on the PC, so its important to reduce it as much as possible while still accommodating signal bandwidth requirements.
More information about how GNU Radio communicates with the computers audio hardware can be found here. W91s#'h*UaA`'GX!$07) ]q[u Therefore, the flowgraph will consume as much of the computers resources as it possibly can which can cause the GRC software to lock up.
Set Run to Autostart, and Realtime Scheduling to Off. The final step is to use Add and Subtract blocks to recover the individual L and R audio channels from the sum and difference of L + R and L - R before sending them to the Audio Sink block to make the sound audible by way of the PCs speakers.
Finally, setting Num Inputs = 2 in the Audio Sink block enables stereo operation and makes both the monophonic audio and SCA audio signals audible simultaneously with each volume controlled by a GUI Slider block.
View all posts by Alexandru Csete, Quadrature Signals: Complex, But Not Complicated, Recording IQ data using dynamic file names, Dynamic File Names in GNU Radio Companion, Turn your Raspberry Pi into a live HDTV transmitter, Butternut HF2V for the 160-30 meter bands, My first weather satellite images with a 137 MHz turnstile antenna, On-air tests of the Wimo TA-1 turnstile antenna, Using the Logitech C920 webcam with Gstreamer 1.2, NOAA-19, Meteor-M N2 and the Thumbnet N3 SDR Nongle, Tune within the passband using frequency translating filter (fast tuning), Automatic gain control (fast/medium/slow), Tune within +/- 25 kHz of the USRP frequency, Level controls for audio, carrier, signal and USRP gain.
44100 is supported by every sound card. This time, the Frequency Xlating FIR Filter block shifts the desired SCA signal to baseband according to the variable channel controlled by the GUI Chooser Block.
As before, the monophonic FM receiver shown in the upper part of the flowgraph is identical to that shown back in Figure 2 and functions in the same way. In the US, the FM broadcast band is in the VHF part of the radio spectrum with 100 channels allocated between 88 MHz to 108 MHz that are 200 kHz (0.2 MHz) wide.
The Audio Sink is found in the Audio category.
Signal constellation displayed by Scope Sink block (top) and decoded RDS program information displayed by RDS Panel block (bottom).
https://www.fcc.gov/media/radio/fm-frequencies-end-odd-decimal, Explanation of subcarriers and allowable carrier frequency deviation Measure it precisely by letting the cursor hover over the peak of the observed component.
A complete discussion of this flowgraph exceeds the space I have here, so a few comments must suffice. We want to create a filter that will pass the 200 Hz and block the 1.8 kHz component. Figure 1 shows the audio and digital signals that are added together to form the composite signal that is transmitted by the FM carrier. The Notebook block causes each of the three FFT plots to display using tabs for convenient review during receiver operation. Properties for slider setting volume. Review the theory of the Spectrum Analyzer (section 1.4). It is important to be aware of the sample rate in each branch of your flowgraph. You can also directly modify top_block.py in your preferred editor and run it from a terminal window like any other python script. FIGURE 3. Note that these GRC scripts are not compatible with current GNU Radio. Instead of WAV file input you can connect it directly to the output of a WFM receiver like the one presented in the previous section.
If the flowgraph has not yet been saved, a file dialog will appear when you click this button. The GNU Radio Companion (GRC) is GNU Radios graphical tool that implements digital signal processing using visual depictions known as flowgraphs. This is a simple narrow band FM receiver with two NBFM demodulators to allow switching between 5 kHz and 2.5 kHz deviation. Note that you can use this exponential notation anywhere that GNU Radio requires a number. Q VI0awQ. Please email me at [emailprotected].
To fix the problem, double-click the Throttle and change the Type to Float. What output do you expect from the product of two sinusoids? In this example, the sine wave changes too fast for the numbers to keep up. Modify the flow graph to include a Low Pass Filter block as shown. Close the output windows. This is a simple SSB/CW receiver featuring a complex band pass filter for side selection and automatic gain control with fast/medium/slow rate.
A few comments about sample rates are necessary before we get started. You should observe that only the 200 Hz component passes through the filter and the 1.8 kHz component is attenuated. The next three blocks Differential Decoder, RDS Decoder, and RDS Parser decode the binary information and format it for display by the RDS Panel block. (I used GRC 3.17.13.5 downloaded from the SDRPlay site for the flowgraphs in this article.). Stations in the FM band typically broadcast a composite baseband signal that may include monophonic and stereophonic voice and music, subsidiary communications authorization (SCA) services (at one time elevator music, for example), and Radio Data System (RDS) services (providing station and programming information), among some of the possibilities. (Note: SCA signal is not present in this example.).
The Frequency Xlating FIR Filter block filters the signal according to the parameters listed in the Low-Pass Filter Taps block.
A third FFT plot titled Audio Spectrum displays the spectrum of the monophonic audio signal. There are 99 spaces between the 100 channels; a fact that will be applied when its time to discuss receiver tuning. It is an excellent way to learn the basics of GNU Radio.
The frequency range listed on the R820Ts datasheet for the tuner is 42-1002 MHz, but most tuners will operate between 24 MHz and 1.8 GHz. gr-osmosdr blocks. Unfortunately, the FFT plot does not provide enough resolution to clearly see the two distinct components. An important advantage of this approach is that it allows us to break out the spectra of the signals along the receive chain as shown in Figure 11.
The first frequency component 30 Hz15 kHz is the monophonic audio channel consisting of the sum of the left and right (L + R) audio channels. GNU Radio is a free and open-source software development environment that provides digital signal processing blocks that implement many signal processing functions, including functions necessary for software defined radio (SDR). You should be authorized to receive programming which is non-commercial in nature, such as reading services that are commonly broadcast by NPR affiliated public broadcasting stations. Costing approximately ~$100, the RSP1A from SDRPlay is an example of a more capable as well as more costly hardware solution. Generate and execute the flow graph. Need to brush up on your electronics principles? Also, dont forget to set the speaker volume on your PC to an appropriate level when the receiver is in operation.
), According to the FCC, A subcarrier, known also as Subsidiary Communications Authority or SCA, is a separate audio or data channel that is transmitted along with the main audio signal over a broadcast station.
By The intent of SCA was to provide the nascent FM broadcast industry an additional revenue stream to defray their business and equipment costs. It will execute the program contained in the flow graph. GNU Radio Companion (GRC) is a graphical user interface that allows you to build GNU Radio flowgraphs. A small text window will appear above the list of blocks in which your search term will be entered. Im making available two files that I have recorded and uploaded that contain RDS and SCA subcarrier transmissions, along with standard stereo programming. Generate and execute the flow graph. Make a brief list of these concepts.
GRC flowgraph of an FM monophonic receiver that includes RDS decoding and display. Figure 3 shows the slider used to set the value of the variable freq according to the low and high frequencies and channel spacing for the FM broadcast band discussed earlier.
RDS information is broadcast on a 57 kHz subcarrier, which is the third harmonic of the 19 kHz stereo pilot tone. Sorry there is no GRC file, but it should be very easy to reproduce from the screenshot. GRC is easy to use and easy to learn because there are guided tutorials that provide information to get started (see Resources). use basic blocks such as signal sources and graphical sinks. This is one-half of the 32 kHz sample rate. This will filter the list leaving only blocks with receiver in their name.
[~Ly FIGURE 5. Now that weve identified the primary signals of interest in the composite baseband, its time to implement SDRs that will allow us to receive them. The Binary Slicer block converts the real-valued sample to a binary value of 0 or 1 prior to being decimated by a factor of two by the Keep 1 in N block. WBX) tuning is not fast enough for the user moving a GUI slider.
On the inexpensive side, its hard to beat a ~$25 USB dongle that pairs the high-performance R820T digital silicon tuner from Rafael Micro with Realteks RTL2832u demodulator/USB 2.0 interface that provides eight bits of resolution. https://picodes.nrscstandards.org, Article on legality of SCA reception by Bruce F. Elving, Ph.D \+vMfHBE8v/%MY )-?@Yz3w7_
kv@.>qF'XmSI&TqRc]
xZK9@w(Km/[6 Od
xEJ6/f.1oUs_o72/y^l|oWcoj
>|f&o%sYtWOX(k .sPN Q7f2&`Cgf5Ey wfk Khr,)JimO>n3m
iAo;lD;g+
fABX 'KHeYt]a
ex[2^63]|LYg7}XNc4y~ ^a7;GiE/("#(dZz!N'.{a"@v%/cv0L)$RUMbbTvs0E|UJ:=:Qkf! Figure 4 shows the slider used to set the value of the variable gain that controls the audio volume. You will find that in many of the examples tuning is done using a frequency translating FIR filter rather than changing the USRP frequency. %PDF-1.4
Decimation decreases the number of samples that are processed. https://en.wikipedia.org/wiki/Radio_Data_System, Radio Data System PI code database Browse to the directory that contains the GRC file that you have been working on. Recall that the Multiply block outputs a 200 Hz and a 1.8 kHz sinusoid. I hope you have as much fun building FM broadcast band receivers using GRC and learning about SDR as I did in preparing this article for you to read. receiver) to search all categories. Change the Type to Float and leave the remaining parameters at their default values. The sample rate must be twice as high or higher than the bandwidth of the signal we are processing for real samples (blocks with orange ports). Since the sample rate is 480 KS/s and the samples are real, this FFT plot displays the 240 kHz bandwidth of the baseband spectrum. Try lowering the sample rate to 10 kHz.
Im happy to respond to your questions or comments about this article. Decimation and Interpolation options decrease and increase the sample rate respectively.
How low can you drop the sample rate? The first path uses a bandpass filter to select the 19 kHz pilot tone out of the composite baseband signal; regenerates the tone using a PLL Ref Out block (which implements phased locked loop carrier recovery); doubles the frequency with a Multiply block from 19 kHz to 38 kHz; and then bandpass filters to eliminate everything but the 38 kHz tone. In addition to saving a .grc file with your flow graph, note that there is also a file titled top_block.py, as shown below. FIGURE 4. The number sink is typically used to monitor slowly-changing signals such as the RMS input level.
Experiment with the controls on the scope plot.
This is a simple AM receiver featuring a variable low pass filter and automatic gain control with fixed rate and levels. Close the scope and change the sample rate back to 32000.
The purpose of the 19 kHz pilot tone that comes next is to indicate the presence of stereo broadcasts, as well as to provide a coherent reference that can be frequency doubled to 38 kHz to demodulate them. At the time of creation the only available hardware option was the USRP series from Ettus Research. Figure 6 depicts the GRC flowgraph for a FM monophonic receiver that includes RDS decoding and display. To fix this problem, disconnect the. In order to observe the operation of this simple system we must generate https://www.adafruit.com/product/1497 Try a few searches such as filter and source to see what comes up.
FIGURE 1. Experiment with this and see how the output changes as you drop below the Nyquist rate. Click first on whichever of or icons are available to you (or press F5) to generate the flowgraph.
In the flowgraph, the Signal Source block will have an orange output tab, representing a float (real) data type. Note that the sample rate is set to 48000, a sample rate that is usually, but not always supported by computer audio hardware. How many dB down is the 1.8. kHz wave compared to the 200 Hz wave?
In order to obtain better resolution, we can lower the sample rate.
You should observe the scope as before along with an FFT plot correctly showing the frequency of the input at 1 kHz.