clc;
clear;
close all;
% Input binary data
data = [1 0 1 1 0 1 0 1];
% Parameters
samples = 100;
fc = 5;
% Empty signals
message = [];
carrier = [];
ask = [];
% ASK Modulation
for i = 1:length(data)
t = (0:samples-1)/samples;
% Message signal
m = data(i) * ones(1, samples);
% Carrier signal
c = sin(2*pi*fc*t);
% ASK signal
a = m .* c;
% Store signals
message = [message m];
carrier = [carrier c];
ask = [ask a];
end
% ASK Demodulation
demodulated = [];
for i = 1:length(data)
start_point = (i-1)*samples + 1;
end_point = i*samples;
% Get ASK signal for one bit
bit_signal = ask(start_point:end_point);
% Detect signal
if max(abs(bit_signal)) > 0.5
demodulated = [demodulated ones(1,samples)];
else
demodulated = [demodulated zeros(1,samples)];
end
end
% Time axis
T = 0:length(message)-1;
% Display all signals
figure;
subplot(4,1,1);
plot(T,message);
grid on;
title('Message Signal');
xlabel('Time');
ylabel('Amplitude');
subplot(4,1,2);
plot(T,carrier);
grid on;
title('Carrier Signal');
xlabel('Time');
ylabel('Amplitude');
subplot(4,1,3);
plot(T,ask);
grid on;
title('ASK Modulated Signal');
xlabel('Time');
ylabel('Amplitude');
subplot(4,1,4);
plot(T,demodulated);
grid on;
title('Demodulated Signal');
xlabel('Time');
ylabel('Amplitude');
To embed this project on your website, copy the following code and paste it into your website's HTML: