?? ofdm.m
字號:
% Modulation OFDM
clear all;
Fd=1; % symbol rate (1Hz)
Fs=1*Fd; % so luong mau moi symbol
M=4; % So muc duoc dieu che tren moi song mang
Ndata=1024; % so symbol duoc truyen
Sdata=64; % 64 du lieu symbol moi khung den ifft
Slen=128; % 128 symbol cho IFFT
Nsym=16; % so luong khung -> Nsym khung
GIlen=144; % symbol voi khoang bao ve them vao
GI=16; % do dai khoang bao ve
% Tao vector
X=zeros(Ndata,1);
Y1=zeros(Ndata,1);
Y2=zeros(Ndata,1);
Y3=zeros(Slen,1);
z0=zeros(Slen,1);
z1=zeros(Ndata/Sdata*Slen,1);
g=zeros(GIlen,1);
z2=zeros(GIlen*Nsym,1);
% Tao ma tran cac so nguyen ngau nhien
X = randint(Ndata, 1, M);
% symbol so duoc map nhu mot symbol tuong tu
Y1 = modmap(X, Fd, Fs, 'qask', M);
% chuyen qua so phuc
Y2=amodce(Y1,1,'qam');
for j=1:Nsym;
for i=1:Sdata;
Y3(i+Slen/2-Sdata/2,1)=Y2(i+(j-1)*Sdata,1);
end
z0=ifft(Y3);
for i=1:Slen;
z1(((j-1)*Slen)+i)=z0(i,1);
end
for i=1:Slen;
g(i+16)=z0(i,1);
end
for i=1:GI;
g(i)=z0(i+Slen-GI,1);
end
for i=1:GIlen;
z2(((j-1)*GIlen)+i)=g(i,1);
end
end
f = linspace(-Sdata,Sdata,length(z1));
Y4 = fft(z1);
% Neu Y4 nho hon 0.01 Y4=0.001
for j=1:Ndata/Sdata*Slen;
if abs(Y4(j)) < 0.01
Y4(j)=0.01;
end
end
Y4 = 10*log10(abs(Y4));
figure( );
subplot(2,1,1);plot(f,abs(z1),'b');grid on;
Title('Signal in Time Domain','Color','b');
xlabel('Time, s','Color','b');
ylabel('Amplitude','Color','b')
f = linspace(-Sdata,Sdata,length(Y4));
subplot(2,1,2); plot(f,Y4,'r');grid on;
Title('Signal in Frequency Domain','Color','r');
xlabel('Frequency, Hz','Color','r');
ylabel('Magnitude square, dB','Color','r')
axis([-64 64 -20 20]);
% The end!
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -