FDMA - An AM radio tuner experiment

 

Preparation

1. Download the different wav files radio.wav (Save it as “radio.wav”.)

2. Download the ece301conv.m file.

3. Open MATLAB and change the directory to where you have saved the previous files.

4. Enter the following commands:

duration=8;
f_sample=44100;
t=(((0-4)*f_sample+0.5):((duration-4)*f_sample-0.5))/f_sample;

 

5. Load radio(t) by the following commands

[radio, f_sample]=audioread('radio.wav');
radio= radio';

(Now you can look at what radio(t) looks like by “plot(t, radio);”

Or you can listen to radio by “sound(radio,f_sample);” Warning! You are going to hear complete noise since radio.wav contains electromagnetic (EM) waves which is meaningless to human ears.)

 

Please go through steps in the prerequisite experiment if you have not tried it before.

Goals:

We know that there are two AM radio stations sending signals and the final resulting EM wave is as described in radio.wav. We also known that one radio station uses frequencies from 3kHz to 5kHz (centered at 4kHz) and the other one uses frequencies from 5.5kHz to 7.5kHz (centered at 6.5kHz). Your job is to design a radio tuner that is able to listen to these two AM radio stations.

Hint: You can use two ideal low-pass filters to construct an ideal band-pass filter.

Note: the frequency between 5kHz and 5.5kHz is not utilized and serves as a “frequency guard band,” which is a common practice in real applications. 

 

Deliverables: Print one figure for each objective, respectively.

  

Objective 1: Reconstruct the music sent by radio station 1 (3kHz – 5kHz) and store it as x1. Listen to it. Use the following commands to plot the corresponding acoustic signal x1(t) and print it down.

 

sound(x1,f_sample);
plot(t, x1);
axis([-2.28, -2.255, -0.08 0.08]);

 

Objective 2: Reconstruct the music sent by radio station 2 (5.5kHz – 7.5kHz) and store it as x2. Listen to it. Use the following commands to plot the corresponding acoustic signal x2(t) and print it down.

sound(x2,f_sample);
plot(t, x2);
axis([-2.28, -2.255, -0.08 0.08]);