16qam.m
%%%%%%%%%%%%%%%%%%%%%%%% %Chương trình chính %Chương trình chính
clear all%xoa tat ca cac bien close all%xoa tat cac hinh clc%oxoa man hinh
Dlen=411264; % Tat ca du lieu symbol duoc truyen
Flen=6048; % 6⁄44 du lieu symbol tren khung duoc bien doi
IFFT
IFFTlen=2048; % chieu dai 128 symbol cho IFFT F=DIen/Flen; % so luong frame
G=128; % chieu dai chuoi bao ve
x1=zeros(Dlen/4,1);%tao ra chuoi symbol sau khi duoc ma hoa qpsk y=zeros(IFFTlen,1);
y1=zeros(IFFTlen,1);
zzeros(F*IFFTlen,1);%chuoi symbol sau khi duoc chuyen doi song song noi tiep
z_ø—zeros(F*®(IFFTlen+G),1);%chuoi symbol sau khi duoc ghep chuoi
bao ve
% tao nguon tin hieu
x=randint(Dlen,1,2);%tao chuoi tin hieu 0 va 1 bat ki % chuyen sang mien phuc
x1=dc16qam(x);%ham con chuyen doi 16_QAM
%ghép các pilot
for i=1:F
% chuyen doi noi tiep song song y(180)=randint(1,1,2);
%ghep cac pilot lien tuc vao symbol
for j=1:45
v(-1)*9+181)=randint(1,1,2); end
%ghep cac pilot roi rac vao symbol
for j=46:176
y(G-1)*9+181)=randint(1,1,2);
end
%ghep bit thong tin vao symbol
for j=1:176 for t=1:8 v(Œ-1)*9+181+t)=x1((-1)*1512+(-1)*8+t); end end for j=1:104 y(176*9+180+]j)=x((-1)*1512+176*8+j); end
% dua ve cac song con truc ø1ao y1=ifft(y,length(y));%bien doi ifft
% chuyen doi song song noi tiep
for j=1:IFFTilen
z(Œ-1)*IFFTlen+j)=y10);
end
end
%chen chuoi bao ve
for i=1:F for j=1:G z_ ø((-1)*2176+j)=z(1*2048-G+]); end for j=1:2048 z_ ø((-1)*2176+G+]j)=z((-1)*2048*]); end end
% Do thi trong mien thoi gian figure(1);
subplot(2,1,1); stem(real(z),T.);
xlabel(chi so thoi gian');ylabel(chi so bien do”);
title(phan thuc);
subplot(2,1,2); stem(imag(zZ),T. `);
xlabel( chi so thoi gian');ylabel(chi so bien do));
title( phan ao));
figure(2);
f = linspace(-Flen,Flen,length(z));
plot(f,abs(z));%bieu dien gia tri tuyet doi cua tin hieu sau dieu che ofdm theo mien thoi gian
title( gia tri tuyet doi cua tin hieu trong mien thoi gian); y2 = fft(z);%ochuyen tin hieu sang mien tan so
% neu Y2 la be hon 0.01 thi Y2=0.001 for j=1:F*IFE Tlen;
if abs(y20)) < 0.01
y20)=0.01;
end end
y2 = 10*log10(abs(y2));%chuyen y2 sang dB
% Do thi trong mien tan so figure(3);
f = linspace(-F*IFFTlen/2,F*IFF Tlen/2,length(y2)); plot(f,y2); plot(f,y2);
tifle(pho cua tin hieu trong mien tan so);
0%%o%%o%%o%%6%%6%%%o%%o%%0%%020%20%20020 2020 %Chương trình con điều chế 16-QAM%%%%%
function y=dc16qam(x) for i=1:4:length(x)
if x()==0 & x(i+1)==0 & x(+2)==0 & x(+3)==0
y(+3)/4)=expQ*p1⁄4);
elseif x(ï)==1 & x(i+1)==0 & x(+2)==0 & x(i+3)==0
y(+3)/4)=expU*3*p1⁄4);
elseif x(i)==1 & x(+1)==1 & x(+2)==0 & x(i+3)==0
y(+3)/4)=expQ*5*p1⁄4);
elseif x(1)==0 & x(+1)==1 & x(+2)==0 & x(i+3)==0
y(+3)/4)=exp*7*p1⁄4);
elseif x(i)==0 & x(+1)==0 & x(+2)==1 & x(i+3)==0
y(+3)/4)=2*exp(J*pI⁄6);
elseif x(1)==0 & x(i+1)==0 & x(+2)==1 & x(i+3)==1
y(+3)/4)=2*expU*p1⁄4);
elseif x(i)==0 & x(+1)==0 & x(+2)==0 & x(+3)==