clc;
clear all;
close all;
%data asli RZ
nama = 'dianita';
% data=[1 1 1 1 0 0 1 1 1 1];
data = dec2bin(nama,8)-48;
dataT = reshape(data,1,size(data,2)*size(data,1));
%NRZ
nrz = 2*dataT-1;
% figure; stem(nrz); title('NRZ');
%Generate PN Code
N = 2^9;
PNCode = zeros(N,N);
for i=1:N
PNCode(i,:) = 2*round(rand(1,N))-1;
end
%Spreading
nrzpulse = rectpulse(nrz,N); %memanjangkan bit
% figure; subplot(2,1,1);stem(nrzpulse);title('NRZ');
% subplot(2,1,2);plot(abs(fft(nrzpulse)));title('Frequency');
pnrep = repmat(PNCode(2,:),1,size(dataT,2)); %mereplikasi matriks pn
outspread = nrzpulse.*pnrep; %mengalikan matriks nrzpulse dengan pnrep
% figure; subplot(2,1,1);stem(outspread);title('Spread');
% subplot(2,1,2);plot(abs(fft(outspread)));title('Frequency');
%Header
Nh = 2^9;
Rph = 5;
header = [1 1 0 1 0 1 0 0];
%NRZ
nrzh = 2*header-1;
PNCodeH = zeros(Nh,Nh);
for i=1:Nh
PNCodeH(i,:) = 2*round(rand(1,Nh))-1;
end
%Spreading
nrzpulseh = rectpulse(nrzh,Nh);
pnreph = repmat(PNCodeH(512,:),1,length(header));
outspread = nrzpulseh.*pnreph;
%replikasi
outheaderrep = repmat(outspread,1,Rph);
%baca file host audio
[audio,fs] = audioread('diskusi.wav');
hostaudio = audio(:,1)';
%Memasukan data ke audio
A = 0.1; %Sebagai gain
hidedata = [outheaderrep outspread];
banyakrep = floor(length(audio)/length(hidedata)); %menghitung replikasi data agar sepanjang audio disisipkan
datasisip = repmat(hidedata,1,banyakrep);
datasisip = [zeros(1,length(audio)-length(datasisip)) datasisip]; %zeropadding
embeddata = datasisip*A+hostaudio;
audiowrite('0.01tes.wav',embeddata,fs);
save tes.mat pnrep outheaderrep N
save data dataT nama