PSK31 Demodulation (Kurt & Michael): Difference between revisions

From Class Wiki
Jump to navigation Jump to search
No edit summary
Line 20: Line 20:
# We multiply the signal with a cosine wave at our guess frequency. This splits the signal into two parts: a high frequency component (with frequency equal to the sum of the ''actual'' carrier frequency and our ''guess'' frequency) and a low frequency component (due to the difference of the two frequencies).
# We multiply the signal with a cosine wave at our guess frequency. This splits the signal into two parts: a high frequency component (with frequency equal to the sum of the ''actual'' carrier frequency and our ''guess'' frequency) and a low frequency component (due to the difference of the two frequencies).
# We filter the multiplied signal through a butterworth filter with a 75Hz cutoff frequency to remove the high frequency component.
# We filter the multiplied signal through a butterworth filter with a 75Hz cutoff frequency to remove the high frequency component.
# We mark the locations where the filtered signal changes sign


=== Code ===
=== Code ===

Revision as of 21:30, 12 December 2012

Project Description

The goal of this project is to design and code a Matlab script that will encode and decode a PSK31 signal including signals with noise. The receiver should be able to read in signals (as a wav file) from other sources as well.


PSK31 is a audible text encoding that can be sent over the air by amateur radio operators. A computer's sound card can be used to send and receive the signal since the signal is audible. For more information regarding PSK31 see the Wikipedia article.[1]

Our Approach

Code Overview

Transmitter

Our code creates a PSK31 signal given an input carrier frequency and message. For testing our receiver code, the transmitter is setup to generate a random carrier frequency and phase. It also adds random noise to the signal before writing it to a wav file.

Receiver

Our receiver is split into several steps:

  1. We read in the signal from a wav file and generate utility variables and matrices.
  2. We run the signal through an FFT and take an average over the range of the FFT spike to obtain a carrier frequency guess.
  3. PID stuff (Do you want to go into detail here Kurt?)
  4. We multiply the signal with a cosine wave at our guess frequency. This splits the signal into two parts: a high frequency component (with frequency equal to the sum of the actual carrier frequency and our guess frequency) and a low frequency component (due to the difference of the two frequencies).
  5. We filter the multiplied signal through a butterworth filter with a 75Hz cutoff frequency to remove the high frequency component.
  6. We mark the locations where the filtered signal changes sign

Code

Results/Problems