0% found this document useful (0 votes)
10 views

Wireless Lab Observation

Uploaded by

No Work
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Wireless Lab Observation

Uploaded by

No Work
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Experiment - 1

Implementation of ASK, PSK and FSK

Aim: To design and Implement ASK, PSK and FSK.


Software Used : MATLAB
MATLAB Code :
Fs = 1000;

Fc = 50;

Fc1 = 30;

Fc2 = 70;

Rb = 10;

Tb = 1 / Rb;

Nb = 10;

dt = 1 / Fs;

t = 0:dt:Nb * Tb - dt;

data = zeros(1, Nb);

for i = 1:Nb

data(i) = round(rand());

end

ask_signal = zeros(1, length(t));

for i = 1:Nb

for j = (i-1)*Fs*Tb + 1 : i*Fs*Tb

if data(i) == 1

ask_signal(j) = cos(2 * pi * Fc * (j-1) * dt);

else
ask_signal(j) = 0;

end

end

end

psk_signal = zeros(1, length(t));

for i = 1:Nb

symbol = 2 * data(i) - 1;

for j = (i-1)*Fs*Tb + 1 : i*Fs*Tb

psk_signal(j) = symbol * cos(2 * pi * Fc * (j-1) * dt);

end

end

fsk_signal = zeros(1, length(t));

for i = 1:Nb

if data(i) == 0

freq = Fc1;

else

freq = Fc2;

end

for j = (i-1)*Fs*Tb + 1 : i*Fs*Tb

fsk_signal(j) = cos(2 * pi * freq * (j-1) * dt);

end

end

figure;

subplot(4, 1, 1);

for i = 1:Nb

line([i-1, i], [data(i), data(i)], 'LineWidth', 2);

end

title('Binary Data');
xlabel('Bit');

ylabel('Amplitude');

axis([0 Nb -0.5 1.5]);

grid on;

subplot(4, 1, 2);

plot(t, ask_signal);

title('ASK Signal');

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

subplot(4, 1, 3);

plot(t, psk_signal);

title('PSK Signal');

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

subplot(4, 1, 4);

plot(t, fsk_signal);

title('FSK Signal');

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

N = length(t);

f = (-N/2:N/2-1) * (Fs/N);

function X = my_fft(x)

N = length(x);

X = zeros(1, N);

for k = 0:N-1
for n = 0:N-1

X(k+1) = X(k+1) + x(n+1) * exp(-1i * 2 * pi * k * n / N);

end

end

end

ASK_FFT = abs(my_fft(ask_signal));

PSK_FFT = abs(my_fft(psk_signal));

FSK_FFT = abs(my_fft(fsk_signal));

figure;

plot(f, fftshift(ASK_FFT)/N);

title('ASK Frequency Response');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

figure;

plot(f, fftshift(PSK_FFT)/N);

title('PSK Frequency Response');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

figure;

plot(f, fftshift(FSK_FFT)/N);

title('FSK Frequency Response');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

disp('ASK, PSK, and FSK modulation and frequency responses generated.');


OUTPUT :
Result: Successfully designed and implemented ASK, PSF and FSK for an input signal.
Experiment - 2
CDMA Modulation

Aim: To design and implement CDMA modulation.


Software Used: MATLAB
MATLAB Code:
Fs = 1000;

Rb_input = 5;

Tb_input = 1 / Rb_input;

Nb = 5;

Rb_code = 20;

Tb_code = 1 / Rb_code;

Nc = 4;

t_input = 0:1/Fs:Nb*Tb_input-1/Fs;

t_code = 0:1/Fs:Nc*Tb_code-1/Fs;

data = zeros(1, Nb);

for i = 1:Nb

data(i) = round(rand);

end

one_bit_code = [1 0 1 0];

extended_spread_code = [];

for i = 1:Nb

extended_spread_code = [extended_spread_code, one_bit_code];

end
extended_spread_code = extended_spread_code(1:Nb * Nc);

spread_signal = zeros(1, Nb * Nc);

for i = 1:Nb

start_idx = (i-1) * Nc + 1;

end_idx = i * Nc;

for j = 1:Nc

spread_signal(start_idx + j - 1) = data(i) * one_bit_code(j);

end

end

function [f, X_shifted] = manual_fft(signal, Fs)

N = length(signal);

X = zeros(1, N);

for k = 0:N-1

sum_val = 0;

for n = 0:N-1

sum_val = sum_val + signal(n + 1) * exp(-1i * 2 * pi * k * n / N);

end

X(k + 1) = sum_val;

end

half_N = floor(N / 2);

X_shifted = [X(half_N + 1:end), X(1:half_N)];

f = (-N/2:N/2-1) * (Fs / N);

end

user_data_rep = zeros(1, Nb * Fs * Tb_input);

for i = 1:Nb
user_data_rep((i-1) * Fs * Tb_input + 1:i * Fs * Tb_input) = data(i);

end

[f_data, X_shifted_data] = manual_fft(user_data_rep, Fs);

spread_signal_rep = zeros(1, Nb * Nc * Fs * Tb_code);

for i = 1:Nb * Nc

spread_signal_rep((i-1) * Fs * Tb_code + 1:i * Fs * Tb_code) = spread_signal(i);

end

[f_spread, X_shifted_spread] = manual_fft(spread_signal_rep, Fs);

figure;

subplot(2, 1, 1);

stairs(0:Nb-1, data, 'LineWidth', 2);

title('Input Binary Data (Time Domain)');

xlabel('Bit');

ylabel('Amplitude');

axis([0 Nb -0.5 1.5]);

grid on;

subplot(2, 1, 2);

plot(f_data, abs(X_shifted_data) / length(user_data_rep));

title('Input Binary Data (Frequency Domain)');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

figure;
subplot(2, 1, 1);

stairs(0:Nb*Nc-1, spread_signal, 'LineWidth', 2);

title('Spread Signal after Operation (Time Domain)');

xlabel('Sample Index');

ylabel('Amplitude');

axis([0 Nb*Nc -0.5 1.5]);

grid on;

subplot(2, 1, 2);

plot(f_spread, abs(X_shifted_spread) / length(spread_signal_rep));

title('Spread Signal (Frequency Domain)');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

disp('CDMA modulation and analysis completed.');

OUTPUT:
Result: Successfully designed and implemented CDMA modulation.
Experiment - 3
CDMA Demodulation

Aim: To design and implement CDMA Demodulation.


Software Used: MATLAB
MATLAB Code:
Fs = 1000;

Rb_input = 2;

Tb_input = 1/Rb_input;

Nb = 5;

Rb_code = 50;

Tb_code = 1/Rb_code;

Nc = 4;

t_input = 0:1/Fs:Nb*Tb_input-1/Fs;

t_code = 0:1/Fs:Nc*Tb_code-1/Fs;

t_output = 0:1/Fs:(Nb*Nc)*Tb_code-1/Fs;

data = randi([0 1], 1, Nb);

one_bit_code = [1 0 1 0];

extended_spread_code = repmat(one_bit_code, 1, Nb);

extended_spread_code = extended_spread_code(1:Nb*Nc);

spread_signal = zeros(1, Nb*Nc);

for i = 1:Nb

start_idx = (i-1)*Nc + 1;

end_idx = i*Nc;

spread_signal(start_idx:end_idx) = xor(data(i), one_bit_code);end


despread_signal = zeros(1, Nb*Nc);

for i = 1:Nb

start_idx = (i-1)*Nc + 1;

end_idx = i*Nc;

despread_signal(start_idx:end_idx) = xor(spread_signal(start_idx:end_idx), one_bit_code);

end

demodulated_data = zeros(1, Nb);

for i = 1:Nb

start_idx = (i-1)*Nc + 1;

end_idx = i*Nc;

if sum(despread_signal(start_idx:end_idx)) > Nc/2

demodulated_data(i) = 1;

else

demodulated_data(i) = 0;

end

end

user_data_rep = repelem(data, length(t_input)/length(data));

[f_data, X_shifted_data] = manual_fft(user_data_rep, Fs);

spread_signal_rep = repelem(spread_signal, length(t_output)/length(spread_signal));

spread_signal_rep = spread_signal_rep(1:length(t_output));

[f_spread, X_shifted_spread] = manual_fft(spread_signal_rep, Fs);

despread_signal_rep = repelem(despread_signal, length(t_output)/length(despread_signal));

despread_signal_rep = despread_signal_rep(1:length(t_output));

[f_despread, X_shifted_despread] = manual_fft(despread_signal_rep, Fs);

figure;

subplot(3, 1, 1);

stairs(t_input, user_data_rep(1:length(t_input)), 'LineWidth', 2);


title('Input Data vs Time');

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

subplot(3, 1, 2);

plot(t_output, spread_signal_rep, 'LineWidth', 2);

title('Spread Signal vs Time');

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

subplot(3, 1, 3);

plot(t_output, despread_signal_rep, 'LineWidth', 2);

title('Demodulated Output vs Time');

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

figure;

subplot(3, 1, 1);

plot(f_data, abs(X_shifted_data)/length(user_data_rep));

title('Frequency Response of Input Data');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

subplot(3, 1, 2);

plot(f_spread, abs(X_shifted_spread)/length(spread_signal_rep));

title('Frequency Response of Spread Signal');

xlabel('Frequency (Hz)');

ylabel('Magnitude');
grid on;

subplot(3, 1, 3);

plot(f_despread, abs(X_shifted_despread)/length(despread_signal_rep));

title('Frequency Response of Demodulated Data');

xlabel('Frequency (Hz)');

ylabel('Magnitude');

grid on;

disp('CDMA modulation, demodulation, and frequency response analysis completed.');

function [f, X_shifted] = manual_fft(signal, Fs)

N = length(signal);

X = zeros(1, N);

for k = 0:N-1

for n = 0:N-1

X(k+1) = X(k+1) + signal(n+1) * exp(-1i * 2 * pi * k * n / N);

end

end

X_shifted = [X(N/2+1:N) X(1:N/2)];

f = (-N/2:N/2-1)*(Fs/N);

end
OUTPUT:

Result: Successfully designed and implemented CDMA demodulation.


Experiment - 4
3-Ray Model

Aim: To design and implement a 3-ray model.


Software Used: MATLAB
MATLAB Code:
f = 2.4e9; c = 3e8; lambda = c / f;

P_t = 1; G_t = 1; G_r = 1;

h_t = 50; h_r = 2; h_obj = 30;

d = linspace(100, 5000, 1000);

d_LOS = d;

d_ref1 = sqrt(d.^2 + (h_t + h_r)^2);

d_ref2 = sqrt(d.^2 + (h_t - h_obj)^2 + (h_obj - h_r)^2);

phi_LOS = 2 * pi * d_LOS / lambda;

phi_ref1 = 2 * pi * d_ref1 / lambda;

phi_ref2 = 2 * pi * d_ref2 / lambda;

A_LOS = sqrt(P_t * G_t * G_r) ./ d_LOS;

A_ref1 = sqrt(P_t * G_t * G_r) ./ d_ref1;

A_ref2 = sqrt(P_t * G_t * G_r) ./ d_ref2;

E_total = A_LOS .* exp(-1i * phi_LOS) + A_ref1 .* exp(-1i * phi_ref1) + A_ref2 .* exp(-1i * phi_ref2);

P_r = abs(E_total).^2;

P_r_dBm = 10 * log10(P_r / 1e-3);


figure;

subplot(2, 1, 1); plot(d / 1000, P_r_dBm);

title('Received Power vs Distance'); xlabel('Distance (km)'); ylabel('Power (dBm)'); grid on;

subplot(2, 1, 2); plot(d / 1000, unwrap(phi_LOS), 'r', d / 1000, unwrap(phi_ref1), 'b', d / 1000,
unwrap(phi_ref2), 'g');

title('Phase vs Distance'); xlabel('Distance (km)'); ylabel('Phase (radians)'); legend('LOS', 'Ref 1', 'Ref 2');
grid on;

OUTPUT:

Result: Successfully designed and implemented a 3-ray model.


Experiment - 5
Rayleigh Channel Effect

Aim: To study the effects of Rayleigh channel fading on a signal.


Software Used: MATLAB
MATLAB Code:
n = 2;

fs = 300;

t = 0:1/fs:1-1/fs;

sigma = 60;

x = t;

rcf = zeros(1, length(t));

for i = 1:length(t)

c = i - 1;

rcf(i) = c * exp(-c^2 / (2 * sigma^2)) / sigma^2;

end

signal = zeros(1, length(t));

for i = 1:n

f = randi([1 10], 1) * 1e9;

A = randi([1 10], 1);

signal = A * sind(2 * pi * f * t);

norm_factor = normpdf(t, 0.5, 0.1);

out = rcf .* (signal + norm_factor);


hold on;

plot(t, out);

end

hold off;

xlabel('Time (s)');

ylabel('Amplitude');

title('Modulated Signal with RCF');

OUTPUT:

Result: The effect of Rayleigh channel fading on a signal has been studied.
Experiment - 6
Rician Channel Effect

Aim: To study the effects of Rician channel fading on a signal.


Software Used: MATLAB
MATLAB Code:
fs = 1e3;

t = 0:1/fs:1;

f = 5;

n = 3;

scale = 1;

K = 3;

sineWaves = zeros(n, length(t));

for i = 1:n

sineWaves(i, :) = sin(2 * pi * f * t + (i-1) * (pi/4));

end

x = 0:0.01:10;

A = sqrt(K / (K + 1));

pdfRician = (x / scale^2) .* exp(-(x.^2 + A^2) / (2 * scale^2)) .* besseli(0, x * A / scale^2);

fadedSignals = zeros(n, length(t));

for r = 1:n

for tIndex = 1:n

fadedSignals(r, :) = pdfRician .* sineWaves(tIndex, :);

end

end
figure;

for i = 1:n

subplot(n, 1, i);

plot(t, sineWaves(i, :));

title(['Original Sine Wave from Transmitter ', num2str(i)]);

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

end

figure;

for r = 1:n

subplot(n, 1, r);

plot(t, fadedSignals(r, :));

title(['Faded Signal at Receiver ', num2str(r)]);

xlabel('Time (s)');

ylabel('Amplitude');

grid on;

end

figure;

plot(x, pdfRician, 'LineWidth', 2);

title('Rician Distribution PDF');

xlabel('x');

ylabel('Probability Density');

grid on;

xlim([0 5]);
OUTPUT:

Result: The effect of Rician channel fading on a signal has been studied.
Experiment - 7
LMS Equalizer

Aim: To develop a Least Mean Square Equalizer and study its effects.
Software Used: MATLAB
MATLAB Code:
fs = 1000;

t = 0:1/fs:1;

freq = 10;

original_signal = sin(2*pi*freq*t);

noise = 0.6 * randn(size(t));

Tx_signal = original_signal + noise;

Tx_dft = DFT(Tx_signal);

N = length(Tx_signal);

frequencies = (0:N-1) * (fs/N);

cutoff_freq = 10;

mask = frequencies < cutoff_freq;

filtered_dft = Tx_dft .* mask;

equalized_signal = IDFT(filtered_dft);

figure;

subplot(3,1,1);

plot(t, original_signal);

title('Original Signal');

xlabel('Time (s)');

ylabel('Amplitude');
subplot(3,1,2);

plot(t, Tx_signal);

title('Transmitted Signal with Noise');

xlabel('Time (s)');

ylabel('Amplitude');

subplot(3,1,3);

plot(t(1:length(equalized_signal)), equalized_signal);

title('Filtered Signal Using DFT');

xlabel('Time (s)');

ylabel('Amplitude');

function inp_dft = DFT(inp)

N = length(inp);

inp_dft = zeros(1, N);

for k = 1:N

for n = 1:N

inp_dft(k) = inp_dft(k) + inp(n) * exp(-1i * 2 * pi * (k-1) * (n-1) / N);

end

end

end

function outp = IDFT(inp_dft)

N = length(inp_dft);

outp = zeros(1, N);

for n = 1:N

for k = 1:N

outp(n) = outp(n) + inp_dft(k) * exp(1i * 2 * pi * (k-1) * (n-1) / N);

end
end

outp = real(outp / N);

end

OUTPUT:

Result: The effect of Rician channel fading on a signal has been studied.

You might also like