EE123: Digital Signal Processing


Spring, 2014

Project information

The class project aim is to give the student a practical design experience in using the material covered in the class and the labs for implementing a system which which in its core uses digital signal processing to do something interesting.


  • Submit 2 paragraph project proposal on bspace by Friday 04/11/2014. The project proposal should include the topic and the scope of the project. The project proposal should include information about the approach you are going to take in order to accomplish it. If the project is a team project, then students in the team should submit the same proposal, but each individual student should also add a paragraph defining what role is he/she going to play in the overall project.

  • Project is Due Tuesday May 06th (Tentatively)


  • Software (Python) implementation of the system

  • Demo during the project presentation day

  • Poster or a few slides describing the system, design consideration and solutions.

Project Ideas:

The project proposals should ideally be using the radios, SDR's and interfaces you got. If you would like to do something else, it should be very relevant to the class.

Default Project

The default project is to implement a Slow-Scan TV (SSTV) transciever system. Information about the project is listed below. Even though it is the default one, it is a really cool one, which will allow you to send and receive images using your radios.

Other project ideas:

  • Come up with a new SSTV protocol, either digital or analog

  • Gesture recognition using sound – doppler and sonar

  • Methods to overlay digital information on voice, that is backward compatible so that regular radios can still receive the voice

  • Implement Digital Voice encoding scheme, so it can be used to send voice digitally.

  • Implementation / Invention of ANY useful ham protocol

  • High Quality audio by time stretching or scrambling.

  • Separation of two interfereing FM signals

  • A fancy communication channel using advanced modulation (QAM, OFDM)

  • Phased array rtl-receiver implementation of passive radar or direction detection

  • Weak signal communication using radios and SDR

  • Cross-band FM repeater chat room with a ontrol channel

  • DTMF/Voice controlled something – like a message board, answering system, voice mail.

  • Simple voice recognition

Slow-Scan TV over radio using software defined radio

Slow scan television is a method for transmitting still images. It is used mainly by amateur radio enthusiasts. While the old analog broadcast TV (NTSC) requires 6MHz bandwidth to transmit video and audio, SSTV uses a much narrow bandwidth of about 3KHz. Of course the transmission rates are much lower and take a few seconds to minutes to transmit.

Even though we are in the internet age, SSTV is still very active among amateurs. As an anecdote, SSTV was used to send images from space in the early days. In fact, the international space station astronauts still occasionally send images on amateur radio frequencies (145.8Mhz) using the SSTV protocol. You can visit http://www.issfanclub.com/, the ISS fan club webpage to see if the SSTV is active and when is the ISS going to be visible in your area. The task of this lab is to use the wide-band FM (WBFM) transmitter and the SDR you received and design a transceiver system for SSTV.

SSTV uses narrowband analog frequency modulation (NBFM) to transmit images. Brightness in the image is encoded as frequencies in the audio range (1500-2300Hz). Color images are achieved by transmitting green-blue-red signals sequentially. There are many modes of transmission for SSTV. Here we are going to use Martin M1, which is one of the most popular schemes to transmit SSTV. It is mostly popular in Europe. Because it is relatively straight forward we will use it here. With Martin M1 it takes 114 second to transmit a 256x320 pixel image. We will transmit the Martin M1 signal over broadcast FM radio using the WBFM transmitter, receive it on another computer using the SDR, demodulate it, and decode it to produce images.


There are senveral SSTV analog modes. You can implement any of them. They differ by qulity, resolution speed, color etc. The one discribed below is Martin M1 mode. Look at the links in the resources below to get information on other SSTV protocols.

VIS code

All standard SSTV modes utilize a unique digital code that identifies the mode to a receiving system. The code is called the VIS, or Vertical Interval Signal code. Although the entire calibration header is often referred to as the “VIS code”, the code itself is only a part of it. The seven-bit code is transmitted least-significant- bit (LSB) first, and uses “even” parity. The code for Martin M1 is 44d (decimal).

The VIS packet is transmitted before the image information:

VIS code

The VIS packet consists of 300ms Leader tone at 1900Hz, 30ms break tone at 1200Hz, another Leader tone at 1900Hz, 30ms VIS start bit at 1200Hz, Seven 30ms bits where 1100Hz = “1” and 1300Hz = “0”, 30ms of parity bit where Even=1300Hz and Odd = 1100Hz, 30ms VIS stop bit at 1200Hz.

Martin M1 Mode:

The Martin M1 Mode is pretty straight-forward. It is based on FM modulation and encodes the intensity of the color components in frequency. The color mode is RGB with frequency range of 1500-2300Hz to in code the luminance. The line scan has 320 pixels and there are 256 lines. The scan sequence in each line consists of Green, Blue and then Red. Below is a diagram of Martin M1:

Martin M1

Each line starts with a T_s=4.862ms sync pulse at 1200Hz. It is followed by a T_1=0.572ms separator at 1500Hz, a T_g=146.432 (0.4576ms/pixel) Green scan at 1500-2300Hz, a T_1=0.572ms separator at 1500Hz, a T_b=146.432 Blue scan at 1500-2300Hz, a T_1=0.572ms separator at 1500Hz, a T_r=146.432 Red scan at 1500-2300Hz and a final T_1=0.572ms separator at 1500Hz. The total transmission is therefore 114.3 seconds.

Specs and Tips On modulator:

  • Your encoding function should generate a valid VIS packet and Martin M1 data

  • Suggestion: Install an application for SSTV (multimode for macs, plenty more for windows and linux) and play a coded image to test your coding. There's even an iPhone app!

Specs and Tips On Decoder:

  • You must decode the VIS packet and check for the 44d code, but this should not stop you from being able to decode the image even if you missed the VIS packet.

  • It is recommended that you use the sync pulses for synchronization between scan lines - this way if you missed the beginning of the packet you can still reconstruct an image. It will also help if the clocks on the transmitter and the clock on the receiver have an offset.

  • Use appropriate filtering

  • The FM modulation can be demodulated by taking the derivative of the (one sided signal) phase. It can also be decoded with other methods. Each method will have different sensitivity to noise. See: Some thought on “Real-Time” SSTV processing http://lionel.cordesses.free.fr/gpages/Cordesses.pdf

Transmit and Receive Application Once you have debugged all the above and you are convinced they work, you will need to develop an application. Theis will provide a user interface and display for transmitting and receiving images.

Specs and Tips on the Transmitter

  • The transmitter application should transmit an image on demand. The image can be chosen in advance, it can be the same image over and over, or can be acquired from your laptop's webcam.

Specs and Tips On Receiver

  • Receiver should always be listening for a transmission

  • It should start automatically when a transmission is detected

  • The application should also have an option for manual start of decoding.

  • It is recommended that you incrementally display the received lines as they arrive.

  • If using the SDR, the receiver application should be able to choose the center frequency

  • I expect people to send images to each other during the presentation day on various frequencies!

  • Continuity of processing: Each filter, decimator etc, has boundary effects. It is better that you use processing on overlapping sections - similarly to overlap and save where you use overlapped data for processing and save only the valid signal.

Resources :

Beyond…..Faster SSTV? There are many possible extensions:

  • Filtering and processing of the image to improve quality and reduce artifacts.

  • Yuo are welcom

please let me know if there are any problems.

-- Miki