SDR Logo

Home
Archives


Project Deliverables

Functional Description
System Block Diagram
Project Proposal
Proposal Presentation
DR Presentation
Final Presentation
Final Report


Related Articles

Project Hardware Kit
802.11a Specifications
Synchronization
Matlab Central


Login

January 2006
SMTWTFS
  12345
6789101112
13141516171819
20212223242526
2728293031  

Valid XHTML 1.0!

Software Defined Radio

Team members: Luke Vercimak, Karl Weyeneth

A software defined radio is a radio transmitter/receiver that uses digital signal processing (DSP) for coding/decoding and modulation/demodulation. This allows much more power and flexibility when choosing and designing modulation and coding techniques. This project will implement a Digital Software radio receiver with a TI C6700 series of digital signal processor.

Due to hardware availability, both the transmitter and receiver will be implemented on the same DSP evaluation board. The system will be constructed and programmed entirely in Simulink using the embedded target for TI C6000 Simulink library. See deliverables for more information.


Thursday, January 31st

Phase Lock Loop


We are going to be using a phased locked loop for the carrier recovery in the Software radio. Much of this information was researched in "Telecommunication Breakdown" by C. Richard Johnson Jr. To properly recover the carrier, two unknown parameters need to be determined. These are the carrier frequency and phase. Johnson describes how the carrier frequency and phase can be recovered using either a cascaded phased locked loop or a single phased locked loop with a higher order fileter inside a single PLL. If properly chosen, it was indicated that this PLL can track modest frequency and phase changes. The choice for this filter is supposed to be detailed in the document Analysis of the Phased Locked Loop in the CD that came with the book.

In the document Analysis of the Phased Locked Loop proof that the PLL converges when simplified linearly. However, there was little discussion of filter choice for a single PLL that tracks both phase and frequency.

A descrete phased lock loop was created out of signal processing blocks in simulink and see how it reacted to modest changes in frequency and phase.

The following test plots in Simulink verify the design.
PLL_results (44k image)
Figure 1 PLL Simulation Results
The two top graphs in figure 1 are the input and output of the PLL respectively. The bottom graph is the input to the VCO. This is consistant with the behavior of a locked PLL. When the frequency difference is increased to 1 Hz.

PLL_cycle_slipping (17k image)
Figure 2 – PLL that is cycle slipping

One hertz is evidentally beyond the capture range for the PLL. More studying will have to be made to determine how the gain block, filter gain, and VCO sensitivity affect the hold-in and capture range of the VCO.

Karl on 01.31.06 @ 09:22 PM CST [link] [1 Comment]

Thursday, January 26th

RTDX Interfacing and Testing III


Now that the Matlab testing interface was verified using the testing program, the next step is to design the testing software for the DSP side of the board.

The testing software for the DSP board has 3 parts; initialization, data receiving, and data sending. The DSP board timer controls the execution of the Software Radio processing. The timer is disabled when waiting to receive, receiving, and sending data because there is no software radio data processing that needs to be done at these locations. Also, the simulink program is set to abort on an “overrun.” Although this is supposed to be able to be disabled from the “Configuration Parameters” dialog in Simulink.

To test the testing interface, the following simulink block diagram program was created.
RTDX_test_interface_sim (8k image)
Figure 1 - Test program for the simulink interface

This interface was then compiled and downloaded on the board. When working it gives the following response:

Press return to try again. Type exit and return to exit:
Test Message: Test message 1

msg =

Test message 1

Message sent, waiting 5 seconds for it to return

num_msg =

1


outdata =

Test message 1

Press return to try again. Type exit and return to exit:


This is the output of the matlab program. Since the same data coming out is what is going in, the program is working successfully.
Karl on 01.26.06 @ 09:00 PM CST [link] [1 Comment]

Thursday, January 19th

RTDX Interfacing and Testing II


Now that the receive RTDX blocks in Simulink are verified to work and experience has been gained in working with RTDX, Matlab, and Code Composer Studio, we need to design a test system that will verify that the Software radio parts are working as intended on the board. The first thing that needs developed when doing this is a block diagram of the radio. This is shown in Figure 1.
RTDX_block_diagram (17k image)
Figure 1 - Block Diagram for Software Radio Test Interface
The Matlab program will act as the bridge between the user and the DSP board. It will take the user’s “message”, convert the message into a binary stream, transmit it to the DSP board, and indicate to the DSP board that the data is ready to be sent through the radio. On the receive side, the Matlab program will do the opposite. It will wait until DSP indicates that the radio is done processing the data, receive this data into Matlab, and then convert it back into the form of the original message.

On the DSP side, two simulink blocks/sections of C code will interface the RTDX to the software radio designed in simulink. The Input interface block waits until the data has been sent by the Matlab program, the data is put in a convenient location for the Simulink program to process and indicate to the radio that it has data to process. After this, the radio will process the data. The output interface block will stop the radio when its buffer is full and indicate to the Matlab program that the processing has been completed, and transmit the data back into Matlab.

To test the interface, a program will be developed to run on the DSP board. A simple echo program was designed in C to echo back whatever string came in the input of the DSP board. The code from this program will later be used to implement the testing blocks in simulink. A flow chart for this program can be found in figure 2.
RTDX_test_proj_flow (12k image)
Figure 5 - Flowchart for test echo DSP program



Karl on 01.19.06 @ 06:56 PM CST [link] [No Comments]

Thursday, January 11th

RTDX Interfacing and Testing I


The RTDX interface in Simulink was investigated to verify the transfer of data to and from the DSP board when testing the software radio. RTDX is a way to programmatically send and receive data to and from the TI 6713DSK board through code composer studio. Although the interface will not work in a production environment, it is an excellent way to send data to the DSK board for testing.

simulink_rtdx_blocks (11k image)
Figure 1 - RTDX Blocks in simulink

The “From RTDX” block receives data from the host PC and transmits that data to the DSK board. The “To RTDX” block transmits data from the DSK board to the Host PC.

As a starting point for testing, the model in figure 2 was created.
RTDX_test_model (16k image)
Figure 2 - Test model for RTDX data tranmission from DSK to PC

The model counts from 0 – 15, incrementing every 1 second and transmits this to the RTDX channel. This value is also sent to the LEDs so that there is a visual indicator on the board that it is still running the program.

Communication on the host side was programmed in Matlab. The Code Composer Studio link for Matlab provides functions for interfacing with RTDX.
When receiving an RTDX “message” in matbab, there are 3 things one needs to first do:

1. Enable RTDX overall
2. Open the specific RTDX channel.
3. Enable the specific RTDX channel.

Once this takes place, the board will begin to transmit the data to code composer studio. When the connection is not enabled, the messages are lost. The message is then read with the readmsg function. After the data is taken in, the channel is then disabled, closed, and rtdx itself is disabled.


Karl on 01.11.06 @ 03:42 PM CST [link] [No Comments]