ETR241 - Electronic Communications I:
Studies noise, information and bandwidth, modulation and demodulation, transmitters and receivers, wave propagation, antennas and transmission lines. Includes broad band communication systems, microwave, both terrestrial and satellite, fiber optics, multiplexing and associated hardware.
Adafruit Software-Defined Radio USB
SparkFun Pro RF - LoRa, 915MHz (SAMD21)
Assembled Feather HUZZAH w/ ESP8266 WiFi With Stacking Headers
Bluefruit LE Friend - Bluetooth Low Energy (BLE 4.0) - nRF51822 - v3.0
AM2320 Digital Temperature and Humidity Sensor
830 Tie Point Plug In Breadboard
Monoprice USB-A to Micro B 2.0 Cable
10K ohm 5% 1/4W - 25 THT
Welcome to ETR241! I will be posting content and labs each Friday and following with solutions and updates each Wednesday. This post serves as an introduction to the course, syllabus, and the structure. Feel free to reach out if you need anything. Make sure to have all the class materials by the end of the week!
Please make sure you post on the discussion board. If you do not have access through your PVCC Student Account, let me know ASAP.
Watch the introduction video and read the syllabus.
Watch out for the first class posting on Thursday evening!
Lab 1: Intro to SDR
To make sure everything is working, and to jump into the fun stuff, we will test our setup with the RTL-SDR. This can be done on Windows, Mac, or Linux. Throughout the semester, I will move from Windows to Linux purposefully, but you may stick to whichever OS works for you. Please make sure you can get a signal on FM and NBFM. Send a screenshot to the posted form below. Watch this video to get started. If you need help or want to share anything, use the Groups Discussion on this posting. Thanks!
CubicSDR Releases - Github
Zadig Driver Installer - Windows
apt install rtl-sdr librtlsdr-dev libusb-1.0-0-dev
RTL-SDR Getting Started - Adafruit
National Weather Radio Stations - VA
Week 1 Lab:
Make sure you submitted your screenshots and answered the two questions on the form and worked through the supplemental readings and videos. If you are having any trouble with getting a signal, you may want to adjust your gain. I posted a video to explain how to do that in CubicSDR. If you want to communicate with the group, please check the Group Discussion. I will be posting grades by the end of the week for you to keep updated in a separate spreadsheet for your own viewing.
Please read and watch the supplemental materials before continuing. This will provide background and context into basic radio communication. This includes the first 4 links below.
Who Invented Wireless - BBC
Fundamentals of RF and Basic Radio Communications - Maxim Integrated
RF for Non-RF Engineers - TI
Intro to RTL-SDR, Principles & Hardware - Ajoo
Cubic SDR Overview - Signals Everywhere
Radio Reference - Virginia
rtl-sdr Software Package - Osmocom
Driver Installation - Michael Lustig (Berkeley)
02 - Local Frequencies & Command Line - Video
Lab: Intro to SDR
Using your SDR, find the range of AM and FM Bands that you can reach with our antenna. Use the provided video to guide you around CubicSDR.
Use radio reference to find a local amateur station, police/fire/hospital, or if you are close to the airport try them! I was able to pull some AM Ground Control signals poorly.
Try using the rtl_sdr command line tool to sample data. We will be using this next week. If you have the R820T tuner, don't use the
Find the datasheets for the RTL2832U and R820T Tuner (or the ones in your particular SDR)
Don't forget to use the discussion if you need it!
Week 2 Lab:
Please make sure that you submitted your assignment in the provided form. You should have had success with the AM and FM in the area as well as using the command line tools to capture data. This video should help get you setup if you ran into any trouble and don't forget to use the discussion if you need it!
Please make sure you are caught up with the current readings and videos for the week! Read Chapter 1 of Introduction to Communication Systems by Madhow. Check supplemental videos...
Introduction to Communication Systems - Upamanyu Madhow
03 - Local Radio & Command Line Details
RTL-SDR Tools - Prebuilt Windows - .zip
sudo apt install rtl-sdr librtlsdr-dev libusb-1.0-0-dev
Mac OSX Systems: Install macports, Xcode, Xcode command line tools,then in terminal
sudo port install rtl-sdr
GNU Octave Documentation
Lab Screenshots - .zip
Lab: SDR Signal Plotting
Find your sample rate and gain values using the
rtl_test -p command.
Collect sample data using
rtl_sdr setting a center frequency, gain (choose from your previous test), sample rate, and save the file as a .dat file.
Install GNU Octave to plot and manipulate your data.
Use the loadFile.m provided to load the data you just saved from your SDR as a vector. The msg.m will create a spectrogram of your data
d = loadFile('YOURSAMPLE.dat') then use
msg(d,1,1024,2000); to display your data.
ds = msg(d,1,1024,2000); will assign the output to a variable
plot(abs(ds(:,1000))); will plot the spectrum at a time of .5 sec of column 1000
plot(abs(ds(313,:))); would show a strong plot at 313...
dd = msg(d,1,256,80000); would sample at 8kHz in blocks that are 256 samples
As a bonus, see if you can find your sample and play it back through your sound card...
Week 3 Discussion!
Week 3 Lab:
Please make sure that you submitted your assignment in the provided form. Make sure you captured your own data and created a unique plot in GNU Octave. Don't forget to use the discussion if you need it! Here is a step by step video of the lab.
Read the 3 articles below to gain a basic understanding of modulation, demodulation and RF filters...
04 - Command Line SDR & GNU Octave
Basics of Modulation & Demodulation - J. Browne
Applications of RF Filters - nuWave Engineering
Getting an RF Low Pass Filter Right - Jenny List
Lab: Narrow Band Scanner
Use the amateur raio repeater near your area to find a signal, capture the Narrow Band frequency. Albemarle is listed here.
Autmatically find signals in your captured data using the ffreq.m program in GNU Octave.
This should automatically compute the spectrogram from the previous lab for every .1 second, finds which frequencies have a signal over the squelch threshold of 10% of the peak, then returns frequency offsets!
Use the command
f = ffreq(d) where f is your output and d is the dataset you loaded with loadFile.m from the amateur radio station.
The results are all Hz frequencies. We need to demodulate and create a low pass filter.
We can demodulate the data using a few parameters in the ffreq.m program. In GNU Octave you can set these, for example:
fs = 2048000 would be the sampling frequency
dt = 1/fs would be the sampling time
t = [1:length(d)]*dt; would be the time of each sample of d
dm = d.*exp(-i*2*pi*(-396000)*t); is the demodulated data of d, the data loaded
Now we can decimate the dm by 64 to bring our sample from 2.048 MHz to 16 kHz. Do this by a factor of 8 two times for efficiency.
dmd = decimate(dm,8,'fir'); will decimate one time,
dmdd = decimate(dmd,8,'fir'); will be our second...
msg(dmdd, 1, 256,1024) to plot this data. Try using the FIR and the IIR filters...
sound(abs(dmdd), 32000); to playback your signal, and try to plot your data as well like in the previous lab...
Week 4 Discussion!