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

Wireless Lab Observation

Uploaded by

No Work
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Wireless Lab Observation

Uploaded by

No Work
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy