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');

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: