We once had a homework way back when decided to share it. I edited this script which is in Matlab. I hope you like it. It simply is an analysis of AM and DSB-SC Modulation and Demodulation of a Periodic Square Wave.

%Amplitude Modulation with a periodic sqare wave and its spectrum analysis
%Show the time domain and frquency domain representation of DSB-AM and
%DSB-SC modulations
%By : John Roach – 6 March 2009
%visit my site at http://johnroach.info
N = 1024; %N point FFT N>fc to avoid freq domain aliasing
fs = 4096; % Sample frequency
t = (0:N-1)/fs;
fc = 600; %Carrier Frequency
fm2 = 80; %Message Frequency
Ec = 20; %Carrier Amplitude
Em2 = 5; %Messagae Amplitude
% Try changing the message and carrier amplitudes to see the effect in
% DSB-AM modulation
%———Double SideBand Full Carrier Modulation (DSB-FC(AM))
A = Ec + Em2*square(2*pi*fm2*t);%Envelope/eliminate the carrier amplitude
m = A.*sin(2*pi*fc*t); %to convert DSB-AM to DSB-SC
Mf = 2/N*abs(fft(m,N));
f = fs * (0 : N/2) / N;%Since the fft result is symmetrical, only the
%positive half is sufficient for spectral representation
close all;
figure(’Name’,'Time/Fequency domain representations of DSB-AM signals’);
subplot(2,1,1); %Time domain plot
plot(t(1:N/2),m(1:N/2),t(1:N/2),A(1:N/2),’r',t(1:N/2),-A(1:N/2),’r');
title(’Time Domain Representation’);
xlabel(’Time’); ylabel(’Modulated signal’);
subplot(2,1,2); %Frequency Domain Plot
plot(f(1:256),Mf(1:256));
title(’Frequency Domain Representation’);
xlabel(’Frequency (Hz)’); ylabel(’Spectral Magnitude’);
%———-Double SideBand Suppressed Carrier DSB-SC———-
A = Em2*square(2*pi*fm2*t) ; %Envelope/eliminate the carrier amplitude
m = A.*sin(2*pi*fc*t); %to convert DSB-AM to DSB-SC
Mf = 2/N*abs(fft(m,N));
figure(’Name’,'Time/Fequency domain representations of DSB-SC signals’);
subplot(2,1,1); %Time domain plot
plot(t(1:N/2),m(1:N/2),t(1:N/2),A(1:N/2),’r',t(1:N/2),-A(1:N/2),’r');
title(’Time Domain Representation’);
xlabel(’Time’); ylabel(’Modulated signal’);
subplot(2,1,2); %Frequency Domain Plot
plot(f(1:256),Mf(1:256));
title(’Frequency Domain Representation’);
xlabel(’Frequency (Hz)’); ylabel(’Spectral Magnitude’);
text(15,60,’Carrier’);
%——————————————————————–