You are on page 1of 90

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG 1

BÁO CÁO THỰC HÀNH


THÔNG TIN DI ĐỘNG

Họ tên :Nguyễn Ngọc Toàn


Mã sinh viên :B17DCVT363
Nhóm lớp học : 04
Tổ thực hành : 04
Giảng viên : Nguyễn Viết Đảm

Hà Nội - 2023
Sim_MA01
Biểu diễn PSD của các tín hiệu cho hệ thống BPSK_DSSS_CDMA trong băng tần
gốc và băng thông
I. Base_PassBand
1. Giải thích lệnh và tham số
* Làm sạch vùng làm việc

* Cài đặt tham số và công thức

* Biểu diễn
2. Kết quả mô phỏng
* Giá trị các biến
* Hình vẽ mô phỏng

3. Nhận xét
Biểu đồ PSD của tín hiệu cơ sở:
+ PSD giảm dần theo tần số và có đỉnh ở tần số gần 0 Hz.
+ Hình dạng biểu đồ phù hợp với PSD của tín hiệu cơ sở, với tần số càng cao thì công
suất càng nhỏ.
Biểu đồ PSD của tín hiệu thông qua băng tần chuyển đổi:
+ Biểu đồ có hai đỉnh, một ở f + fc và một ở f - fc.
+ Đây là dạng phổ của một tín hiệu BPSK chuyển đổi qua một sóng mang với tần số fc.
II. SS_CDMA
1. Giải thích lệnh và tham số
* Làm sạch vùng làm việc

* Cài đặt tham số và công thức

* Biểu diễn
2. Kết quả mô phỏng
* Bảng giá trị các biến
* Hình vẽ mô phỏng

3. Nhận xét
+ Một tín hiệu sau khi áp dụng Spread Spectrum có một PSD phân tán hơn và trải đều
hơn trên dải tần số so với tín hiệu gốc.
+ thay đổi trong tính chất phổ của tín hiệu
Tăng rộng dải tần số (Bandwidth): Tín hiệu sau khi áp dụng Spread Spectrum có một dải
tần số rộng hơn so với tín hiệu cơ sở. Điều này có thể được thấy từ biểu đồ PSD, trong đó
PSD sau khi áp dụng Spread Spectrum mở rộng hơn và trải đều hơn trên dải tần số.
Phân tán năng lượng (Energy Dispersal): Tín hiệu DSS-BPSK được phân tán trên dải tần
số, điều này đồng nghĩa với việc năng lượng của tín hiệu được phân bố rải rác trên nhiều
tần số khác nhau. Các thay đổi này giúp tăng khả năng chống nhiễu và tăng tính bảo mật
của tín hiệu.
Tác động lên khả năng truyền thông: Spread Spectrum giúp cải thiện khả năng truyền
thông bằng cách làm cho tín hiệu trở nên khó bị nhiễu và khó bị gián đoạn trong quá trình
truyền.
Sim MA_02
Mô phỏng quá trình tạo chuỗi m và hàm tự tương quan của chuỗi m
1. Giải thích lệnh và tham số
* Làm sạch vùng làm việc

* Cài đặt tham số và công thức


* Biểu diễn
% xac dtnh khoang gi6i h n cua tr1,1c x va tr1,1c yd bi u d6 hi n tht ro rang.
axis([l length(m_seq) -2 2]);
% B t lu6i tren bi u d6.
grid on;
% Chuy n d n ph n du6i cung cua subplot, cilng v6i 2 dong va 1 c9t,
% va day la dong thu hai.
subplot(2,1,2);
% Ve bi u d6 duong li n cua bi n Rxx b ng d9 day duong net la 1.5.
plot(Rxx,'LineW dth', 1.5]);
% E) t nhan tn,ic x la "tre" v6i cac
% thu9c tinh font, mau va kich thu6c van ban duqc chi d:inh.
xlabel('tre','Font ame','.VnTime','color','b','FontSize',14);
% E) t nhan tr1,1c y la "Ham tv tuong quan cua chu6i" v6i cac thu9c tinh font,
% mau va kich thu6c van ban duqc chi d:inh.
ylabel('Harotu tuong quan cua chuoi','Font ame','.vnmime'.',color','b','Font
% E) t tieu d cha biiu d6, hi n thi s6 chu ky (periods) da ch9n trong tieu c
title{['Harotu tuong quan cua chuoi voi so chu ky = ',num2str(number_per"od)
'Font ame','.VnTime','color','b','Fontsize',14);
% Cho phep them du li u khac vao cung m9t bi u d6 ma khong x6a du li u cu.
hold on;

% Ve bi u do d ng stem cua bien Rxx bang mau do ('r') va dq day duong net la 3.5.
% Day la bi§u d6 bi§u di n ham t tuong guan cua chu6i.
stem (Rxx, 'r','LineWidth',J3.5]);
% B t lu6i tren bi€u d6.
grid on;

% T o m9t hinh ve m6i v6i s6 thu t la 2.


% Cac bi§u d6 sau nay se duqc hi§n thi tren hinh ve nay.
figure(2)
% Ve bi€u d6 duong li n cua bi n Rxx b ng d9 day duong net la 3.5.
plot(Rxx,'LineWidth',J3.5]);
% D t nhan tr1,1c x la "tre" voi cac
% thu9c tinh font, mau va kich thu6c van ban duqc chi dinh
xlabel('Tre','FontName','.VnTime','color','b','Fontsize',14);
% Il t nhan tr1,1c y la "Ham t tuang quan cua chu6i" v6i cac thu9c tinh font,
% mau va kich thuoc van ban duqc chi dinh
ylabel('Ham tu tuong guan cua chuoi','FontName','.VnTime','color','b','FontSize',18
% Il t tieu d cho bi€u d6, hi€n thi s6 chu ky (periods) da ch9n trong tieu d .
title(['Ham tu tuong guan cua chuoi voi so chu ky = ',num2str(number_period)],...
'Font ame','.VnTime','color','b','FontSize',18);
% Cho phep them du li u khac vao cung m9t bi u d6 ma khong x6a du li u cu.
hold on;
% Ve bi€u d6 d ng stem cua chu6i m_seq b ng mau do va d9 day duong net la 3.5
% Day la bi€u d6 bi§u di n bien d9 cua chu6i m_seq.
stem(Rxx,'r','LineWidth',_3.5]);
% B t lu6i tren bi€u d6.
grid on;
2. Kết quả mô phỏng
* Giá trị các biến

* Hình vẽ mô phỏng
3. Nhận xét
+ Chuỗi M-sequence (m_seq):
Đây là một chuỗi pseudo-random nhị phân với một chu kỳ dài và các giá trị nhị phân sẽ
lặp lại sau một số chu kỳ.
+ Hàm tương quan tự (Rxx):
Hàm tương quan tự chỉ có giá trị không âm và có một điểm cực đại ở vị trí 0 (tương quan
của chuỗi với chính nó).
 kết quả cho thấy rằng chuỗi M-sequence được tạo ra có tính tương quan rất cao
với chính nó (với giá trị tương quan tại vị trí 0 là cao nhất). Điều này phù hợp với
tính chất của chuỗi pseudo-random, nơi các giá trị gần nhau trong chuỗi có mức
tương quan cao.
Sim MA03
Mô phỏng tạo chuỗi Gold và mã định kênh cho hệ thống WCDMA
1. Giải thích lệnh và tham số
a. Hàm MA_03_autocorr

b. Hàm MA_03_mseq
c. Hàm MA_03_shift
d. Hàm MA_03_goldseq
e. Hàm MA_03_delay

f. Chương trinh Golsseq


* Làm sạch vùng làm việc

* Cài đặt tham số và công thức


% d t gia tri Number_stages la 3, m9t bi n d chi s6 giai do9n cua chu6i M-sequence.
Number_stages = 3;
% T9o m9t mang Position registerfeedback chua cac vi tri cua cac ph&n tu
% trong chu6i M-sequence ma b9n mu6n phan h6i.
Position_registerfeedback = [1 3];
% Dinh nghia m9t mang Initial_sequence la chu6i khoi d u ban d u cua M-sequence v6i 3 giai do9n.
% Trong vi d9 nay, b9n b t d u v6i chu6i (1 1 1]
Initial_sequence = [1 1 1];
% D t gia tri Number_outputsequence la 1,
% cho bi t b9n chi mu6n t9o m9t chu6i d&u ra tu M-sequence
Number_outputsequence = 1;
% G9i ham MA_03_mseq d t90 chu6i M-sequence m 1 d1,1a tren cac thong s6 da d\.I9c d t a tren.
m 1 = MA_03_mseq{Number_stages,Position_registerfeedback,Initial sequence,Number_outputsequence);

input_sequence = 1-2*m 1;
number_period = 2;
Rxx 1 = {1/length{m_l))*MA_03_autocorr{input_sequence, number_period);

% m2 : M-sequence 2
% d t gia tri Number_stages la 3, m9t bi@n d chi s6 giai do9n cua chu6i M-sequence.
Number_stages = 3;
% T9o m9t mang Position_registerfeedback chua cac vi tri cua cac ph n tu
% trong chu6i M-sequence ma b9n mu6n phan h6i.
Position_registerfeedback = [2 3];
% Dinh nghia m9t mang Initial_sequence la chu6i khoi d u ban d u cua M-sequence v6i 3 giai do9n.
% Trong vi d9 nay, b9n b t d u v6i chu6i [1 1 1]
Initial sequence = (1 1 l];
% 0 t gia tri Number_outputsequence la 1,
% cho bi@t b9n chi mu6n t9o m9t chu6i d u ra tu M-sequence
Number_outputsequence = 1;
% G9i ham MA_03_mseq d t?O chu6i M-sequence m_2 d1,1a tren cac thong s6 da du9c d t a tren.
m 2 = MA_03_mseq{Number_stages,Position registerfeedback,Initial_sequence,Number_outputsequence);

%tinh toan input_sequence b ng each thay d6i gia tri cua chu6i m_2,
% sao cho cac gia tri O tro thanh -1 va gia tri 1 khong d6i.
% Di u nay lam cho chu6i tro thanh chu6i bipolar (-1 va 1).
input_sequence = 1-2*m 2;
% cho bi@t mu6n tinh ham t9 tuong quan cho hai chu ky.
number_period = 2;
% tinh toan ham t1,1 tuong quan Rxx_2 cua input_sequence su d9ng ham MA 03 autocorr. 1/length(m_2)
% duqc su d\lng d chu n h6a gia tri t1,1 tuong quan.
Rxx 2 {1/length{m_2))*MA_03_autocorr{input_sequence, number_period);
* Biểu diễn
% chia hinh ve thanh m9t lu6i c6 2 dong va 1 c9t, va t9o m9t bi§u d6 o vt tri (2,1) trong lu6i.
% Oi§u nay c6 nghia la bi§u d6 aiu tien se duqc hi§n tht 6 vung nay.
subplot(2,1, 2);
% ve duong bi§u d6 cua Rxx v6i d9 day duong la 1.5, nghia la duong se c6 d9 day
% 16n hon so v6i m c dtnh. Bi§u d6 nay hi§n thi ham tuong quan cua chu6i gl
% v6i gia tri Rxx(i) tren tr1,1c y va chi s6 i tren tr1,1c x.
plot(Rxx,'LineWidth',11-SJ);
% d t nhan tr1,1c x cho bi§u d6 la "tre" va dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th§.
xlabel('tre','FontName','.VnTime','color','b','Fontsize',12);
% d?t nhan tr1,1c y cha bi§u d6 la "RXX(i)" va dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th§
ylabel('RXX(i)','Font ame','.VnTime','color','b','Fontsize',12);
% d t tieu d cua bi§u d6 la m9t chu6i k t hqp cua van ban va gia trt number_period.
% Tieu d nay m6 ta ham tuong quan cua chu6i gl va s6 chu ky la number_period.
title(['Ham tu tuong quan cua chuoi GOLD voi so chu ky = ',num2str(number_period)],...
'FontName','.VnTime','color','b','Fontsize',12);
% cha phep them du li u khac vao bi§u d6 hi n t9i ma kh6ng x6a du li u hi n c6 tren bi§u d6.
hold on;
% ve bi§u d6 dAu m t nguqc tren bi§u d6 hi n t9i. oAu m t nguqc nay duqc ve b ng duong do ("r")
% va c6 d9 day duong la 3.5.
stem(Rxx,'r','Linewidth',(3.SJ J;
% B?t lu6i
grid on;

figure(2)
% t90 mot 6 con (subplot) tren hinh ve s6 2 c6 t6ng cong 4 6 con thee b6n hang va mot cot.
% 6 con nay c6 s6 thu tv 1 vase chua bi§u d6 ti p thee.
subplot(4,l,l);
% t9o chu6i ml tu chu6i m_l b ng each thvc hi n phep
ml=l-2*m l;
% ve bi§u d6 d9ng d&u m t nguqc (stem plot) cua chu6i ml.
% Bi§u d6 nay su d1,1ng dSu do ("r") va c6 do day duong la 3.5.
% oAu m t nguqc thuong duqc su d1,1ng ct§ hi§n thi cac gia tri roi r9c
% va vt tri cua chung tren tr1,1c thoi gian.
stem(ml,'r','LineWidth',[3.SJ);
% dG1t nhan tr1,1c x cha bi u d6 la "Thoi gian" va dinh d9ng van ban v6i font, mau va kich thu6c c1,1 t:
xlabel('Thoi gian','FontName','.VnTime','color','b','Fontsize',12);
% d t nhan tr1,1c y cha bi§u d6 la "Bi n d9" va dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th§
ylabel('Bien do','FontName','.VnTime','color','b','Fontsize',12);
% d t tieu d& cua bi§u d6 la m9t chu6i k t hqp cua van ban va do dai cua chu6i ml.
% Tieu d@ nay mo ta chu6i ml va dQ dai cua n6.
title(['Chuoi ml voi chu ky N = ',num2str(length(ml))],...
'FontName','.VnTime','color','b',1Fontsize1,12);
% d t gi6i h9n tr1,1c x va tr1,1c y cua bi§u d6.
% c1,1 th , tr1,1c x se duqc gi6i h9n tu 1 d n dQ dai cua chu6i ml,
% va tr1,1c y se duqc gi6i h9n tu -2 d n 2, giup di&u chinh ph vi cua bi u d6.
axis([l length(ml) -2 2]);
% b t lu6i tren bi u d6
grid on;
'::I ......................,.

% t9o m9t 6 con (subplot) tren hinh ve s6 2 c6 t6ng c9ng 4 6 con theo b6n hang va m9t c9t.
% 6 con nay c6 s6 thu tv 2 vase chua bi u d6 ti@p theo.
subplot(4,1, 2);
% t9o chu6i ml tu chu6i m_2 b ng each thvc hi n phep
m2=1-2"m 2;
% ve bi u d6 d9ng d&u m t nguqc (stem plot) cua chu6i ml.
% Bi u d6 nay su di,mg d&u do ("r") va c6 d9 day duong la 3.5.
% D&u m t nguqc thucmg duqc su d1,1ng d hi n thi cac gia tri roi r9c
% va vt tri cua chung tren tr1,1c thoi gian.
stem(m2,'r','Line Jidth',(3.5]);
% d t nhan tr1,1c x cho bi u d6 la "Thai gian" va dinh d9ng van ban v6i font, mau va kich thu6c c1,1 t:
xlabel('Thoi gian','FontName','.VnTime','color','b','FontSize',12);
% d t nhan tr1,1c y cho bi u d6 la "Bi@n d9" va dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th
ylabel('Bien do','FontName','.VnTime','color','b','FontSize',12);
% d t tieu d cua bi u d6 la m9t chu6i k t hqp cua van ban va d9 dai cua chu6i m2.
% Tieu d@ nay m6 ta chu6i m2 va d9 dai cua n6.
title(['Chuoi m2 voi chu ky N = ',num2str(length(ml))J,...
'FontName•,'.VnTime',1color','b','Fontsize',12);
% d t gi6i h9n tr1,1c x va tr1,1c y cua bi u d6.
% c1,1 th , tr1,1c x se duqc gi6i h9n tu 1 d@n d9 dai cua chu6i ml,
% va tr1,1c y se duqc gi6i h9n tu -2 d@n 2, giup di u chinh phgm vi cua bi u d6.
axis([l length(m2) -2 2]);
% b t lu6i tren bi u d6
grid on;

% Dong nay t9o mqt 6 con tren hinh ve s6 2, chia hinh ve thanh t6ng c9ng
% 4 6 con theo b6n hang va m9t c9t. 6 con nay c6 s6 thu tv 3 vase chua bi u d6 tiep theo.
subplot(4,l,3);
% Dong nay ve bi u d6 d9ng d&u m t nguqc (stem plot) cua chu6i gl.
% Bi u d6 nay su d1,1ng d&u do ("r") va c6 d9 day duong la 3.5.
% D&u m t nguqc thucmg duqc su d1,1ng d hi4n thi cac gia tri roi r9c
% va vi tri cua chung tren tr1,1c thai gian.
stem(gl,'r','LineWidth',J3.5]);
% Dong nay d t nhan tr1,1c x cho bi4u d6 la "Thai gian" va
% dinh dgng van ban v6i font, mau va kich thu6c Cl,l th .
xlabel('Thoi gian','FontName','.VnTime','color','b','FontSize',12);
% Dong nay d t nhan tr1,1c y cho bi4u d6 la "Bi€!n d9" va
% dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th .
ylabel('Bien do','FontName','.VnTime','color','b','Fontsize',12);
% Dong nay d t tieu d cua bi4u d6 la m9t chu6i k€!t hqp cua
% van ban va d9 dai cua chu6i gl. Tieu d nay m6 ta chu6i gl va d9 dai cua n6.
title(['Chuoi GOLD voi chu ky N = ',num2str(length(gl))],...
'FontName','.VnTime','color','b','Fontsize',12);
% Dong nay d t gi6i hgn tr1,1c x va tr1,1c y cua bi u d6.
% C1,1 th4, tr1,1c x se duqc gi6i h9n tu 1 d€!n d9 dai cua chu6i gl,
% va tr1,1c y se duqc gi6i h9n tu -2 d€!n 2, giup di u chinh phgm vi cua bi4u d6.
axis([l length(gl) -2 2]);
% b t lu6i tren bi4u d6,
grid on;
% t6ng c9ng 4 6 con theo b6n hang va m9t c9t.
% 6 con nay c6 s6 thu t 4 vase chua bi u d6 Rxx.
subplot(4,1,4);
% Dong nay ve bi u d6 duong (line plot) cua Rxx.
% Bi u d6 nay su dvng duong n6i cac di m du li u va c6 d9 day duong la 1.5.
plot(Rxx,'LineWidth',[1.5));
% fl.;tt nhan trvc x cho bi u d6 la "tre" va
% dinh d9ng van ban voi font, mau va kich thuoc CV th .
xlabel('tre','FontName','.VnTime','color','b','Fontsize',12);
% D<;\t nhan trvc y cho bi u d6 la "R_X_X(iJ" va
% dinh d9ng van ban voi font, mau va kich thuoc cv th .
ylabel('R_X_X(i)','FontName','.VnTime','color','b','Fontsize',12);
% fl.;tt tieu d cua bi u d6 la m¢t chu6i k t hqp cua van ban va s6 chu ky number_period.
% Tieu d nay mo ta ham tuong quan cua chu6i GOLD va s6 chu ky cua n6.
title(['Ham tu tuong quan cua chuoi GOLD voi so chu ky ',num2str(number_period)J,...
'FontName',• .VnTirne','color','b','FontSize',12);
% Dong nay b?t ch d9 giu nguyen tren bi u d6,
% cho phep ve them du li u tren bi u d6 hi n t9i ma kh6ng x6a du li u da c6.
hold on;
% Dong nay ve bi u d6 d9ng d§.u m t nguqc (stem plot) cua Rxx.
% Bi u d6 nay su dvng d§.u d6 ("r") va c6 d9 day duang la 3.5.
% D§.u m t nguqc thuong duqc su d g d hi n thi cac gia tri roi r9c
% va vi tri cua chung tren trvc thoi gian.
stem(Rxx,'r','LineWidth',[.3.5)J ;
% b?t luoi tren bi u d6
grid on;

% t9o hinh ve so 3,
figure(3)
% tc;1O m9t 6 con ditu tien tren hinh ve s6 3, chia hinh ve thanh t6ng c9ng 3
% 6 con theo ba hang va m9t c9t. 0 con nay c6 s6 thu t 1 vase chua bi u d6 Rxx 1.
subplot(3,1,1);
% ve bi u dd duong (line plot) cua Rxx 1.
% Bi u dd nay su dvng duong n6i cac di§m du li u va c6 dQ day duong la 1.5.
plot(Rxx_l,'LineWidth',[1.5));
% fl t nhan trvc X cho bi u dd la "tre" va
% dinh dc;1ng van ban v6i font, mau va kich thuoc cv th .
xlabel('tre','Font ame','.VnTime','color','b','Fontsize',12);
% fl<;\t nhan trvc y cho bi u dd la "R_X_X(i)" va
% dinh d9ng van ban v6i font, mau va kich thuoc cv th§.
ylabel('R_X_X(iJ ','FontName','.VnTime','color','b','FontSize',12);
% fl<;\t tieu d cua bi§u dd
title(['Ham tu tuong quan cua chuoi ml voi so chu ky ',num2str(number_period)J,...
'Font ame','.VnTime','color','b','Fontsize',12);
% Dong nay b t ch dQ giu nguyen tren bi u d6,
..cho phep ve them du li u tren bi§u dd hi n tc;1i ma kh6ng x6a du li u da c6.
hold on;
% Dong nay ve bi§u dd d9ng d§.u mat nguqc (stem plot) cua Rxx.
% Bi u dd nay su d\mg d§.u do ("r") va c6 d9 day duong la 3.5.
% oau m t nguqc thuong duqc SU dvng d§ hi n thi cac gia trt roi rc;1c
% va vi tri cua chung tren trvc thoi gian.
stem(Rxx_l,'r','LineWidth',J3.5));
stem(Rxx_l,'r','Linewictth',[,L !:>J J;
% b t lu6i tren bi u d6
grid on;
% t9o mqt 6 con d u tien tren hinh ve s6 3, chia hinh ve thanh tdng cqng 3
% 6 con theo ba hang va m9t c9t. 6 con nay c6 s6 thu tu 2 vase chua bi u d6 Rxx 2.
subplot(3,1,2);
% ve bi u d6 duong (line plot) cua Rxx 2.
% Bi§u d6 nay su d1,111g duong n6i cac di§m du li u va c6 d9 day duong la 1.5.
plot(Rxx_2,'LineWidth',11.5));
% El,;it nhan tr1,1c x cho bi u d6 la "tre" va
% dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th§.
xlabel('tre','FontName','..VnTime','color','b','FontSize',12);
% El,;it nhan tr1,1c y cho bi u d6 la "R_X_X(i)" va
% dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th§.
ylabel('R_X_X(i)','FontName','.VnTime','color','b','FontSize',12);
% EJ t tieu d cua bi§u d6
title(('Ham tu tuong quan cua chuoi m2 voi so chu ky ',num2str(number_period)J,...
'FontName','.VnTime','color','b','Fontsize',12);
% Dong nay b t chg d9 giu nguyen tren bi§u d6,
% cho phep ve them du li u tren bi u d6 hi n t9i ma kh6ng x6a du li u da c6.
hold on;

% Dong nay ve bi§u d6 d9ng d.§.u m t nguqc (stem plot) cua Rxx.
% Bi§u d6 nay SU di,mg dau do ("r") va c6 d9 day duong la 3.5.
% Dau mh nguqc thuong duqc su di,mg d§ hi n thi cac gia tri roi r9c
% va vi tri cua chung tren tr1,1c thoi gian.
stem(Rxx_2,'r','LineWidth',[3.5]);
% b t lu6i tren bi§u d6
grid on;
% t90 m9t 6 con aiiu tien tren hinh ve s6 3, chia hinh ve thanh t6ng c9ng 3
% 6 con theo ba hang va m9t c9t. 6 con nay c6 s6 thu tu 3 vase chua bi§u d6 Rxx.
subplot(3,l,3);
% ve bi§u d6 duong (line plot) cua Rxx 2.
% Bi§u d6 nay su d1,1ng duong n6i cac di§m du li u va c6 d9 day duong la 1.5.
plot(Rxx,'LineWidth',Jl.5]);
% fl t nhan tr1,1c x cho bi§u d6 la "tre" va
% dinh d9ng van ban v6i font, mau va kich thu6c c1,1 th§.
xlabel('tre','FontName','.VnTime','color','b','FontSize',12);
% fl,;it nhan tr1,1c y cho bi§u d6 la "R_X_X(i)" va
% dinh d9ng van ban v6i font, mau va kich thu6c C\I th§.
ylabel('R_X_X(i)','FontName','.VnTime','color','b','FontSize',12);
% fl t tieu d cua bi§u d6
title(['Ham tu tuong quan cua chuoi GOLD voi so chu ky ',num2str(number_period)],...
'Font ame','.VnTime','color','b','FontSize',12);
% Dong nay b t ch d9 giu nguyen tren bi§u d6,
% cho phep ve them du li u tren bi§u d6 hi n t9i ma kh6ng x6a du li u da c6.
hold on;
g. Chương trình Ovsf
* Làm sạch vùng làm việc

* Cài đặt tham số và công thức


2. Kết quả mô phỏng
* Các biến và giá trị

* Hình vẽ
7°Figwe1
r-, ((lit i/le:w " lo,ois W'lll(SOw !-kip " X

t1 ... i:I □
Chuol GOLD vol chu ky N • 7 .1!0 0.Q

.g

iii.

.,

Thoi gian

Ham t.u tuong quan cua chuoi GOLD v I so chu ky 2

QB

0-6

[ o•
a:
o.,

·02

--
,$1"1

7°Fi91M"e2
re Ee1,1 i/lt:w "lOOfS W'll'l(S(MI Http
• Q Sffrch L. 0 .,, -=--
q. (:, VlE
"'"' 9/!

"
.fl

t1c:.J ... i:1 □

i.1, Chuoi m1 vol ehu k)' N =- 7 ! '. I


I
! ! .'.
Thoi gian
Chuoi m2 vol chu k)' N = 7

.g
ii 0
iii
., I
Thoi g!an
Chuol GOLD vol c.hu ky N = 7 L1!13 0...!
.g'
ii
iii
0

., I
Tho! glan
Ham tu tuong quan cua chuol GOLD v I I0 chu ky • 2

'=ii••
a:

,.. ,. 12 ,.

--
,$1"1
• Q Sffrch L. 0 q. (:, VlE
"'"' 9/! .fl
3. Nhận xét
+ Chuỗi M-sequence và Hàm Tương Quan Tự (m_1, m_2, Rxx_1, Rxx_2):
Các chuỗi M-sequence và hàm tương quan tự của chúng (Rxx_1 và Rxx_2) có tính chất
tương quan cao. Điều này phù hợp với tính chất của chuỗi M-sequence, nơi các giá trị
gần nhau trong chuỗi có mức tương quan cao.
+ Chuỗi Gold và Hàm Tương Quan Tự (g_1, g1, Rxx):
Chuỗi Gold được tạo ra bằng cách kết hợp hai chuỗi M-sequence (m_1 và m_2). Kết quả
là một chuỗi pseudo-random có tính chất tương quan cao và độ dài chu kỳ lớn.
+ Đồ Thị Biểu Diễn Chuỗi và Hàm Tương Quan:
Chuỗi và hàm tương quan tự được biểu diễn một cách rõ ràng và có độ dài phù hợp.
Sim MA06
Trực quan hóa nguyên lý hoạt động hệ thống truyền dẫn OFDM trên cơ sở
FFT/FFT và chèn/ khử CP

1. Giải thích lệnh và tham số


1.1. Hàm
a. hàm MA_06_CP_insert

b. hàm MA_06_CP_Remove
c. hàmMA_06_CP_matrix

d. hàm MA_06_IFFT_matrix
1.2. Chương trình
a. OFDM_mode1
* Làm sạch vùng làm việc

* Cài đặt tham số và công thức


% cac bi n d dinh nghia kich thu6c cua FFT (Fast Fourier Transform)
% va kich thu6c cua chu6i CP (Cyclic Prefix).
FFTsize 4;
CPsize = 2;
0

% Generate for FFTsize bits: BPSK


% solution 1:
% t o m9t chu6i du li u ng&u nhien data c6 gia tri O ho c 1,
% sau d6 bi n d6i n6 thanh chu6i BPSK v6i gia tri -1 ho c 1.
% each nay su d ng m9t bi u thuc d bi n d6i ng&u nhien
% thanh tin hi u BPSK.
data = O.S*(sign(rand(l,FFTsize)-0.5)+1);
data 2*data-1

% % solution 2:
% data = round(rand(l,FFTsize));
% data 2*data-1
0----------------------------------------------
0
% IFFT & FFT Princeples
% step 1: IFFT process
% Thvc hi n qua trinh IFFT cho du li u data, k t qua la data IFFT.
data IFFT = ifft(data,FFTsize)
% step 2: add CP
% Them m9t chu6i CP vao d&u chu6i data IFFT d t o data_IFFT_CP.
data IFFT CP = [data_IFFT(FFTsize-CPsize+l:FFTsize) data_IFFT];
% step 3: remove CP
% Lo i bo chu6i CP khoi data IFFT CP d t o data CPR.
data CPR = data- IFFT- CP(CPsize+l:FFTsize+CPsize);
% step 4: IFFT process
% Thvc hi n qua trinh FFT cho data CPR, kh qua la data FFT.
data FFT = fft(data CPR,FFTsize)

%%%%% decision and determine error


% solution 1:
% Hard decision
% m9t vector du9c khoi t o v6i d9 dai b ng v6i data ban d&u d luu k t q
% Ban d&u, t t ca cac ph&n tu cua data_desl du9c gan gia trio.
data desl = zeros(l, length(data));
for i = 1:length(data_FFT)% duy t qua tung ph&n tu cua data FFT
% N u data_FFT(i) (gia tri thvc cua ph&n tu FFT) 16n hon ho c b ng 0
% data_desl(i) se du9c gan gia tri 1.
if data_FFT(i) >= 0
data_desl(i) = 1;
else
% Ngu9c l i, n u data FFT(i) nho hon 0,
% data_desl(i) se du9c gan gia tri -1.
data_desl(i) = -1;
end
end
% to determine error (comparesion)
% m9t vector chua cac gia tri logic (0 ho c 1) d bi u thi li u cac
% bit quy t dinh cung trong data_desl c6 khac v6i data khong.
% Di u nay du9c thvc hi n b ng phep so sanh data~= data_desl.
% Neu m9t bit trong data khac v6i bit tuong ung trong data_desl,
% gia trt tuong ung trong error_vectorl se la 1; ngu9c l i,
% neu chung gi6ng nhau, gia tri se la 0.
L end
% to determine error (comparesion)
% m9t vector chua cac gia tri logic (0 ho c 1) d§ bi§u thi li u cac
% bit quy§t dinh cung trong data_desl c6 khac v6i data khong.
% Bi u nay du9c thvc hi n b ng phep so sanh data~= data_desl.
% Neu m9t bit trong data khac v6i bit tuong ung trong data_desl,
!I- gia tri tuong ung trong error_vectorl se la 1; ngu9c l i,
0

'o neu chung gi6ng nhau, gia tri se la 0.


0

error vectorl data~=data desl;


% errcount & number of errors
% t6ng cua cac gia tri trong error_vectorl,
% bi§u thi s6 lu9ng bit bi sai s6 sau quy§t dinh cung.
num errorl = sum(error vectorl);
% ty 1 16i bit sau khi thvc hi n quy§t dinh cung dva tren gia tri thvc
% N6 du9c tinh b ng each chia num errorl cho FFTsize,
% tuc la s6 16i bit tren t6ng s6 bit trong tin hi u.
BERl = num errorl/FFTsize

% solution 2:
% Hard decision
% m9t vector chua k§t qua quyh dinh cung du9c t o ra tu ph!n thvc cua
% FFT b ng each su di,mg ham sign(real(data- FFT)).
% Ham real(data FFT) 1§.y ph n thvc cua data FFT,
% solution 2:
!I- Hard decision
0

'o m9t vector chua k§t qua guyet dinh cung du9c t o ra tu ph!n thvc cua
0

% FFT b ng each su di,mg ham sign(real(data- FFT)).


% Ham real(data- FFT) 1§.y ph!n thvc cua data- FFT,
% sau d6 sign() ap di,mg ham d§.u d§ chuy§n d6i cac gia tri thanh -1 n§u am
data des2 = sign(real(data- FFT));
% to determine error (comparesion)
% m9t vector chua cac gia tri logic (0 ho c 1) d§ bi§u thi li u cac
% bit quy§t dinh cung trong data_des2 c6 khac v6i data khong.
% Bi u nay du9c thvc hi n b ng phep so sanh data~= data_des2.
% Neu m9t bit trong data khac v6i bit tuong ung trong data_des2,
% gia tri tuong ung trong error_vector2 se la 1; ngu9c l i,
% neu chung gi6ng nhau, gia tri se la 0.
error vector2 data~=data des2;
% errcount & number of errors
% t6ng cua cac gia tri trong error_vector2,
% bi§u thi s6 lu9ng bit bi sai s6 sau quy§t dinh cung.
num error2 = sum(error_vector2);
% ty 1 16i bit sau khi thvc hi n quy§t dinh cung dva tren ph n thvc cua
BER2 = num error2/FFTsize
* Biểu diễn

* Kết quả mô phỏng


- Giá trị các biến:
- Kết quả:

b. OFDM_mode2
Code và giải thích mode2 tương tự với mode 1, điểm khác là ở phần cài đặt tham
số đầu tiên nên em sẽ chỉ show kết quả của phần này
- Kết quả:
c. AWGN
* Làm sạch vùng làm việc
* Cài đặt tham số và công thức
% IFFT & FFT Princeples
% step 1: IFFT process
% Su d ng phep bi n d6i nghich dao cua OFT (IFFT} d chuy n d6i
% tin hi u tu mi n t n s6 v mi n thoi gian.
% Di u nay tuong duong v6i vi c chuy n d6i day s6 thanh m9t
% tin hi u trong mi n thoi gian.
data IFFT = ifft(data};
% step 2: add CP
% Them cyclic prefix (CP) vao du li u IFFT. CP la m9t b9 ph n
% tru6c du li u du9c sao chep tu cuoi du li u d giam b6t
% tac d9ng cua hi u ung da duong.
data IFFT CP = [data IFFT(FFTsize-CPsize+l:FFTsize} data IFFT];
- - -
% step 3: AWG channel
% T o nhi u Gaussian tr ng va them n6 vao tin hi u IFFT d
% mo phong tac d9ng cua kenh truy n va nhi u. RV_Gausian la
% nhi u Gaussian tr ng, va RxSymbols la tin hi u thu du9c sau
% khi di qua kenh truy n va nhi u.
tmp = randn(l,FFTsize+CPsize};
RV Gausian = tmp*noisePower;
RxSymbols = data IFFT CP RV Gausian;
% step 4: remove CP
% Lo i bo CP tu RxSymbols d chuAn bi cho bu6c FFT
data CPR = RxSymbols(CPsize+l:FFTsize+CPsize};
* Kết quả
Giá trị các biến
Kết quả

d. matrix
* Làm sạch vùng làm việc

* Cài đặt tham số và công thức


% solution 1: belong to matrix W H & W
% Hi n tht ra man hinh dong chu
display('SOLUTIO 1: belong to Generation OF MATRIX');
% ma tr n W H ban d u, va n6 duqc dtnh nghia bgng each c9ng cac ph n tu
% cua n6 theo cong thuc da cho. N6 d i di n cho ph n ma tr n k t hqp cho phep IFFT.
% Ma tr n w H se c6 kich thuoc 4x4.
W H [1 1 1 1;
1 exp(j*2*pi/4) exp(j*4*pi/4) exp(j*6*pi/4);
1 exp(j*4*pi/4) exp(j*B*pi/4) exp(j*12*pi/4);
1 exp(j*6*pi/4) exp(j*12*pi/4) exp(j*2 3*3*pi/4)];
% nhan ma tr n W H voi 1/2.
W H=l/2*W H

0
ma tr n Wr va n6 dm;ic d.tnh nghia b ng each c9ng cac ph&n tu cu.a n6
"o

9-
0 theo cong thuc da cho. 6 d9-i di n cho ph&n ma tr n kh hqp cho phep FFT.
0 Ma tr n w ding se c6 kich thu6c 4x4.
w = (1 1 1 1;
1 exp(-j*2*pi/4) exp(-j*4*pi/4} exp(-j·k6*pi/4);
1 exp(-j*4*pi/4} exp(-j*S*pi/4} exp(-j*12*pi/4);
1 exp(-j*6*pi/4) exp(-1* 2*pi/4) exp(-j*2*3*3*pi/4}];
% nhan ma tr n W v6i 1/2.
W=l/2*W
% tinh tich cua ma tr n W H va ma tr n W, vain k t qua ra man hinh.
% Day la rn9t ki§m tra d§ xem li u vi c k t hqp w H va w c6 t9-o ra rn9t
% ma tr n don vi hay khong.
test = abs {W_ H*W);

% Hi§n thi man hinh chfr


display('t:.ch ma tran w H*W');
% Hi n thi gia tr.t
disp(test);
% Hi n thi man hinh chfr
display(' so l:.eu vao ma tran :FFT ( H)'};
% vecto c9t 4xl du9c dinh nghia tu 1 d n 4.
xll = 1: 4
% Hi§n th.t chfr ra man hinh
displaY.(' dau ra IFFT sau khi nhan ma tran w_H (W_H xll)');
% tinh tich cu.a ma tr n _H va vecto xll, sau d6 in k t qua ra man hinh.
% Day la ph&n th c hi n phep IFFT tren vecto d&u vao xll.
x12 = W H*xll'
% Hi n th.t chfr ra man hinh
display(' dau ra FFT sau khi nhan ma tran ');
% tinh tich cua ma tr n W va vecto x12, sau d6 in k t qua ra man hinh.
% Bay la ph&n thi,zc hi n phep FFT tren vecto d&u ra xl2.
x13 = W*x12
% Hi n thi chu ra man hinh
display(' so sanh I/0 cua IFFT & FE'T o dang ma tran');
% so sanh vecto d&u vao xll va vecto d&u ra xl3.
% K t qua se cho bi t li u phep bi n d6i FF va IFFT da ho9-t d9ng dung hay khong.
test2 xll~=round(x13')
% Hi n thi chu ra man hinh
display('SOLUTIO 2: belong to Generation OF MATRIX');

% clear;
Cc;% lam Si;l.Ch khu vvc lam v::. c
% kich thu6c ma tr nl trong trucmg hqp nay 1a 4.
= 4;
% ma tr n W_H m6i, va n6 duqc ti;l.O ra b&ng each tinh toan cac ph&n tu cua
% n6 di,za tren cong thuc da cho. N6 di;ii di n cho ph&n ma tr n kh hqp cho phep IFFT.
% Ma tr n W_H_2 se c6 kich thu6c 4x4.
W_H_2 = zeros(N);
% Chi;l.Y vong l p d cho ra gia tri bang

t for o:1=H= :i,m)

end
end
exp(j*2*pi/N·k(i-1)*(m-1));

% nhan ma tr n W_H_2 v6i 1/sqrt(N).


w H 2 = 1/sqrt(N)*W H 2
-.
0
la hai ma tr n, va W_H_2 ~= W H so sanh cac ph&n tu cua W H 2 va W H.
% K t qua cua so sanh nay se cho bi t li u W H 2 da duqc t90 ra dung each hay khong.
% Neu k t qua la 1 (true), nghia la W H 2 va W H khac nhau.
W H
W H 2~=W H
% ma tr n W_H m6i, va n6 duqc ti;l.O ra b&ng each tinh toan cac ph&n tu cua
-. n6 di,za tren c6ng thuc da cho. N6 di;l.i di n cho ph&n ma tr n kh hqp cho phep IFFT.
0

% Ma tr n w H 2 se c6 kich thu6c 4x4.


W_2 = zeros(N);
% Chi;l.y vong l p d cho ra gia tri bang
m =1:N
for i= l:N
W_2(m,i) exp(-j*2*pi/N*(m-l)*(i-1));
end
end
* Kết quả mô phỏng
Giá trị các biến

Giá trị trả ra


W H 2 =

0.5000 + 0.0000i 0.5000 + 0.0000i 0.5000 + 0.0000i 0.5000 + 0.0000i


0.5000 + O.0000i 0.0000 + 0.5000i -0.5000 + 0.00O0i -0.0000 - 0.5000i
0.5000 + 0.0000i -0.5000 + 0.0000i 0.5000 - 0.00O0i -0.5000 + 0.0000i
0.5000 + 0.0000i -0.0000 - 0.5000i -0.5000 + 0.0000i 0.0000 + 0.5000i

W H =

0.5000 + 0.0000i 0.5000 + 0.0000i 0.5000 + 0.00O0i 0.5000 + 0.0000i


0.5000 + 0.0000i 0.0000 + 0.5000i -0.5000 + 0.0000i -0.0000 - 0.5000i
0.5000 + 0.0000i -0.5000 + 0.0000i 0.5000 - 0.0000i -0.5000 + 0.0000i
0.5000 + 0.0000i -0.0000 - 0.5000i -0.5000 + 0.0000i 0.0000 + 0.5000i

ans=

4x4 logical array

0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
e. Principle
* Làm sạch vùng làm việc

* Giải thích câu lệnh


% d u vao du9c xac dinh tru6c, d i di n cho kich thu6c cua ma tr?n va
% s6 bit dung d chen/go bo CP.
N 4; %input{'Enter N =');
V = 2; %input('Enter V =');
% m9t vector chua cac gia tri tu 1 d n N,
% n6 du9c t o d lam d u vao cho IFFT va FFT sau nay.
Xl = 1 :N;
% la ma tr?n Fourier nghich dao {Inverse Fast Fourier Transform matrix)
% va du9c tinh b ng each su d ng ham MA_06_IFFT_matrix(N).
[W_H] = MA 06 IFFT_matrix{N);
0 la ma tr?n Fourier {Fast Fourier Transform matrix) va du9c tinh
0 b ng each SU d ng ham MA- 06- FFT_matrix (N) .
% Chu y rangw la ma tr?n nghi.ch dao cuaw - H,
% tuc law *w - H se cho ra ma tr?n don v+ (I).
[W] = MA 06 FFT rnatrix(N); note W=inv(W H) W*W H
0 I
- -
% la ma tr?n chen CP, du9c tinh b ng each SU d\mg ham
0 MA
- 06- CP- insert(N,V).
% la ma tr n chen CP, dugc tinh b ng each su d ng ham
% MA_06_CP_insert(N,V).
[CP_insert] = MA_06_CP_insert(N,V);
% la ma tr n go bo CP, dugc tinh b ng each su d ng ham MA_06_CP_Remove(N,V).
[CP_Remve] MA_06_CP_Remove(N,V);
% la m9t bi n ki m tra. N u Mode b ng 1, khong c6 gi xay ra
% (chua c6 thao tac ti p theo). N u Mode khac 1,
% day s6 Xl se dugc t o ng u nhien va su d ng cho
% cac thao tac IFFT va FFT sau nay.
Mode = 1;

if Mode 1

else
Xl O.S*(sign(rand(l,N)-0.5)+1);
% Xl = 2*Xl-1;

end
%---------------------------------
% - T o m9t ban sao cua day s6 Xl v6i cac ph&n tu dugc dao ngugc theo chi u d9c.
X2 = Xl';
X2 = Xl';
% Thuc hi n phep bi n d6i IFFT b ng each nhan ma tr?n W H v6i day s6 X2.
% K t qua luu trong X3.
X3 W H*X2; % IFFT
% T90 m9t ban sao cua day s6 X3 v6i cac ph&n tu dugc dao ngugc theo chi u dQC.
X4 X3';
% T9o m9t ban sao khac cua day s6 X4 v6i cac ph&n tu dugc dao ngugc theo chi u ngang.
XS = X4';
% Thuc hi n chen CP b ng each nhan ma tr?n chen CP CP insert v6i day s6 XS.
% K t qua luu trong X6.
X6 CP insert*XS;
% T9o m9t ban sao cua day s6 X6 v6i cac ph n tu dugc dao ngugc theo chi u dQC.
X7 X6';
% T90 m9t ban sao khac cua day s6 X7 v6i cac ph n tu dugc dao nguqc theo chi u ngang.
XS = X7';
% Thvc hi n go bo CP b ng each nhan ma tr?n go b6 CP CP Remve v6i day s6 XS.
% K t qua luu trong X9.
X9 CP Remve*XS;
% T90 m9t ban sao cua day s6 X9 v6i cac ph&n tu dugc dao nguqc theo chi u dQC.
XlO = X9';
% T9o m9t ban sao khac cua day s6 XlO v6i cac ph n tu duqc dao nguqc theo chi u ngang.
Xll = XlO';

Xl2 = W*Xll; % FFT


% T<?-o m9t ban sao cua day s6 X12 v6i cac phan tu duqc dao ngugc theo chi u d9c.
X13 = X12'
% == Check for IFFT/FFT; CP insert remove
% X13 T = abs(X13)
% T<;10 m9t ma tr n ki§m tra b ng each nhan ma tr n IFFT W H v6i
% ma tr n FFT W va tinh gia tr.:j_ tuy t d6i cua n6.
% Ml,lc dich la ki§m tra tinh ch&t cua hai ma tr n IFFT
% va FFT va xem n6 c6 gan v6i ma tr n don v.:j_ khong.
Test IFFT FFT matrix = abs(W_H*W);
% T<;10 m9t ma tr n ki&m tra b ng each nhan ma tr n go b6 CP
% CP Remve v6i ma tr n chem CP CP insert.
% M1,1c dich la ki§m tra tinh ch&t cua vi c chem va
% go b6 CP.
Test CP inser remove = CP Rernve*CP insert;
% Test CP inser remove2 = CP insert CP Remve
% ==== Check for System Modeling
% Hi&n th.:j_ day s6 ban aau Xl.
Xl;
% Hi§n th.:j_ day s6 sau khi th c hi n IFFT va FFT X13
X13;
% Test IO= xor(Xl,X13); % Note khong dung Xl~=X13
* Kết quả mô phỏng
Giá trị các biến
* Kết quả trả ra

f. PSD_OFDM
* Làm sạch vùng làm việc

* Giải thích lệnh


% a calculated value based on A, Tb, and the square of A.
Al A'2*Tb;
% a calculated value based on A, T_ofdm, and the square of A.
AA A'2*T_ofdm;
% a vector containing the frequency values of subcarriers from deta f to BW channel+ deta f.
f i deta_f:deta_f:BW_channel+deta_f,
% a vector containing frequency values from -Rb to BW channel+ 4 * deta f.
f -Rb:BW channel+4*deta f;
% f BB -Rb:4•Rb;
% the center frequency value of the channel and is set to three times
% the maximum value in the f vector.
fc 3*max(fl;
% a vector containing frequency values from -f to (fc + BW channel+ 4 * deta_f)
f2 -f:l:(fc+BW_channel+4*deta_f);

% PSD of input of OFFDM Modulation Block


% This line calculates the power spectral density (PSD) of the input OFDM signal.
% It uses the sine function to shape the spectrum and is scaled by Al.
PSD_ofdm_in = Al*(sinc((f*Tb)).'2);
% This line calculates the PSD for the radio frequency (RF)
% single-carrier signal.
% It also uses the sine function to shape the spectrum and is scaled by Al.
% The frequency shift due to fc is taken into account.
PSD RF SC = Al*(sinc({(f2-fc)*Tb)).'2);
% This line calculates the PSD for the radio frequency (RF)
% single-carrier signal.
% It also uses the sine function to shape the spectrum and is scaled by Al.
% The frequency shift due to fc is taken into account.
PSD RF SC = Al*(sinc(((f2-fc)*Tb)).'2);

% PSD of output of OFFDM Modulation Block


% This line initializes a matrix PSD OFDM to store PSD values for each subcarrier.
% It has dimensions num_subcarrier rows and the size of the frequency vector f columns.
PSD OFDM = zeros(num_subcarrier,max(size(f)));
% Similar to the previous line, this initializes a matrix PSD OFDM RF
% to store PSD values for each subcarrier, but it corresponds to the RF
% signal and has dimensions num_subcarrier rows and the size of the frequency vector f2 columns.
PSD OFDM RF = zeros(num_subcarrier,max(size(f2)));
[2]for k = 1:num_subcarrier % iterates through each subcarrier:
I % Calculates the PSD for the k-th subcarrier in the OFDM signal.
% It uses the sine function to shape the spectrum,
% considering the frequency offset f_i(k) and scales it by AA.
PSD_OFDM(k,:) = AA*(sinc((f-f_i(k))*T_ofdm)).'2;
% PSD_OFDM(k,:) = rand(l)*AA*(sinc((f-f_i(k))*T_ofdm))."2;
% Calculates the PSD for the k-th subcarrier in the RF signal.
% Similar to the previous line, it uses the sine function
% but also considers the frequency offset f_i(k) and
% the center frequency fc, scaling it by AA.
PSD_OFDM_RF(k,:) AA·•(sine((f2-f_i(k)-fc) T_ofdm)).'2;
PSD_OFDM(k,:) AA*(sinc((f-f_i(k))*T_ofdm)).'2;
% PSD_OE'DM(k,:) = rand (1) 'AA*(sine((f-f_i(k))•r_ ofdm)).'2;
% Calculates the PSD for the k-th subcarrier in the RF signal.
% Similar to the previous line, it uses the sine function
% but also considers the frequency offset f_i(k) and
% the center frequency fc, scaling it by AA.
PSD_OFDM_RF(k,:) AA*(sinc((f2-f_i(k)-fc)*T_ofdm)).'2;
% PSD_OFDM_RF(k,:) rand(l)*AA*(sine((f2-f_i(k)-fc)*T_ofdm)).'2;
end

figure(ll

%------------------------
subplot(2,2,1); % Create a subplot with 2 rows, 2 columns, and select the first subplot
plot(f, PSD ofdm in, 'r', 'LineWidth', 3); % Plot the PSD ofdm in with a red line and thick linewidtr
xlabel('Frequency {Hz)', 'FontName', '.VnTime', 'color', 'b', 'Fontsize', 12); % Label for x-axis
ylabel('PSD Input OFDM', 'FontName', '.VnTime', 'color', 'b', 'FontSize', 14); % Label for y-axis
title(['Power Spectral Density of Input OFDM Signal with a data rate R_b = ', num2str(Rb), ' b/s'J,..
'FontName', '.VnTime', 'color', 'b', 'FontSize', 9); % Title of the subplot
grid on; % Enable grid lines in the plot

%------------------------

subplot(2,2,2); % Create a subplot with 2 rows, 2 columns, and select the second subplot
plot(f2, PSD_RF_SC, 'm', 'LineWidth', 3); % Plot the PSD_RF_SC with a magenta line and thick linewidth
xlabel('Frequency [Hz]', 'FontNarne•, .VnTime',
1
'color', 'b', 1
Fontsize 1
, 12); % Label for x-axis
ylabel('PSD SCRF', 'FontName', '.VnTime', 'color', 'b', 'FontSize', 14); % Label for y-axis
title(['Power Spectral Density of SCRF Signal with data rate R_b = ', num2str(Rb), ' b/s', ...
'; F_RF = ', num2str(fc), 'Hz'),...
'FontName', '.VnTime', 'color', 'b', 'FontSize', 9); % Title of the subplot
grid on; % Enable grid lines in the plot
subplot (2, 2, 3); % Create a subplot with 2 rows, 2 columns, and select the third subplot
for k = 1: num subcarrier
plot(f, PSD_OFDM(k1 :), 'b', 'LineWidth', 2); % Plot the PSD OFDM for each subcarrier with a blue line and linewidth 2
hold on % Hold the current plot so that multiple subcarrier PSDs can be overlaid
end
xlabel (' Frequency (Hz]', 'FontName', '. VnTi.me', 'color', 'b', 'FontSize', 12); % Label for x-axis
ylabel('PSD OFDM', 'FontNarne', '.VnTime', 'color', 'b', 'FontSize', 14); % Label for y-axis
title (['PSD of OFDM Signal: BW_Channel = ', num2str (BW_channel),
' Hz; Num_Subcarrier = ', num2str(num_subcarrier), .. .
'; Subcarrier_Space = ', num2str (deta_f), ' Hz' l, .. .
'FontName', '.VnTime', 'color', 'b', 'E'ontsize', 9); % Title of the subplot
grid on; % Enable grid lines in the plot

\
subplot{2,2,4); % Create a subplot with 2 rows, 2 columns, and select the fourth subplot

1 for k = 1: num_ subcarrier

end
plot(f2, PSD_OFDM_RF(k, :), 'b', 'LineWidth', 2); % Plot the PSD OFDM RF for each subcarrier with a blue line and linew
hold on % Hold the current plot so that multiple subcarrier PSDs can be overlaid

xlabel('Frequency (Hz]', 'Font.Name', '.VnTime', 'color', 'b', 'FontSize', 12); % Label for x-axis
ylabel('PSD OFDM RF', 'FontName', '.VnTime', 'color', 'b', 'Fontsize', 14); % Label for y-axis
title ( ( 'PSD of OFDM-RF Signal: BW_Channel = ', num2str (BW_channel), ...
' Hz;Num_Subcarrier = ', num2str (num_subcarrier), ...
' ; Subcarrier_Space = ', num2str (deta_f) , ' Hz', ' ; f_RF = ', num2str ( fc) , Hz'), ...
'FontName', '.VnTime', 'color', 'b', FontSize', 9); \ Title of thesubplot
1

grid on; % Enable grid lines in the plot

PSD OFOM sum RF sum(PSO_OFDM_RF, 'double'); \: Sum the PSD values of all subcarriers and store it in PSO_OFDM_sum_RF


figure (2)

%------------------------
subplot(2,1,l); \ Create a subplot with 2 rows and 1 column and select the first subplot
Gfor k = 1: num_ subcarrier
plot(f2, PSD_OFDM_RF(k, :), 'b', 'Linewidth', 2); \ Plot the PSD OFDM RF for each subcarrier with a blue line and linewi
hold on \ Hold the current plot to overlay multiple subcarrier PSDs
end
hll = plot(f2, PSD_RF_SC, 'r', 'LineWidth', 3); %: Plot the PSD of SC-RF with a red line andlinewidth 3
hold on
hl2 - plot(f2, PSD_OFDM_sum_RF, '+r', 'LineWidth', 4); % Plot the summed PSD of OFDM-RF with a red '+' symbol and linewidth

xlabel (' Frequency [Hz)', 'Font.Name', '. vnTime', 'color', 'b', 'Font.Size', 12); \ Label for x-axis
ylabel('PSD OFDM RF & SC RF', 'Font.Name', '.VnTime', 'color', 'b', 'FontSize', 14); % Label for y-axis
title ( ('Comparison of PSD for OFDM-RF, SC-RF: BW_ Channel = ', num2str (BW_ channel) , ...
' H zN ; um_subcarrier = ', num2str(num_subcarrier), ...
'; Subcarrier_Space = ', num2str(deta_f), ' Hz', '; f_RF = ', num2str(fc), ' Hz'),
'Font.Name', '.VnTime', 'color', 'b', 'Font.Size', 12); % Title of the subplot
grid on; \ Enable grid lines in the plot

\ Create a legend to label the different plots


K = legend('PSD of OFDM-RF', 'PSD of SC-RF', 'PSD of OFDM-SUM-RF');
set (K, 'fontname', '. vntime', 1
font.size', 13); \ set legend font properties
* Kết quả
Giá trị các biến:

Kết quả trả ra


f i =

20 40 60 80 100 120 140 160 180 200 220

>>
7°Figwe1 c, X
r e £ci,1 i/le:w " lo,ois W'lll(SOw l-k-lP

tl .. ia□li3

0.5 -•- ---'"'-""-"-'"r'-"'-'°-",'_• --- ---•-- 7m._• •,•_,.._bl_•,·F •-'"-','°-"'-,

::, o.,
0
LL LL
0 50.3
1 (/)
-= 0.2
0
0.2
a.
(/)

=
IL 01 0,1

o1....-----=:..::: ..L - - -A-"=--!


0 50 100 150 200 250 300 200 - - ,oo 600 600 1100 - 1
Frequency (Hz( Frequency (Hz)

PSD ofOFDM-RFSlgN,I: IIWchanntil •200 lk;H1.1M ubc•1Mf• 10: Subc:•,._ p.,,ce•20H.z;


11 1
',l•MOH,_
• - -r-"---- a-- -·mc,·- -

LL
:. a:
:. 3
0
ti;
0'
a. en
a.

01,, . . . .. ............. .._


0L_._
=
.._.,.,Q,1-QJo:Ulllllll..a!IIUlllil Ql.l'- -_J
-200 .,so -100 -.50 0 50
Freque,,cy (Hz(
100 150 200 250 JOO 200 - - 600 600 =
Frequency (Hz)
600 !KlO - ,

l:ll"f
P.llffl,'IUfll"<)' ■ Q Starch

7°F)91A"e2 c, X
fe [cl,t View rt lOOIS Wil'\OOW'Http

tlu .. ia□li3

Comparison of PSD for OFDM-RF, SC-RF: BWchannel • 200 Hz; Num$ubcarrler ::r 10; Subcarrler8pace • 20 Hz; fRF = 840 Hz

J
·
I I I I I I
u.. --PSDofOFDM-RF
t- --PSDofSC-RF
--PSD of OFDM-SUM-RF
en
" u..
a:
3 t- -
:!;

-
t- -
0
u..2
0
5l 1 t- -
a. i&
0
200 400 ,00 600 700 600 IIOO 1000 1100 1200
Frequency (Hz)

PSO Comparison of OFDM-RF, SC-RF: BWchannel • 200 Hz.; Num1ubc:arrier .- 10: Subcarrier1pace,.,20 Hz; fRFz MO Ht.: A €JO®.a_Q

. u..

en
"u.'. 3
--PSD or OFDM-SUM-RF
--PSDofSC-RF

a:
:!;
0
u.. 2
5la 1

-
a.

400 600
=
Frequency (Hz(
!KlO 1000 1100 ,zoo

■ Q Starch ti
Sim MA07
Mô hình hóa và mô phỏng hiệu năng BER cho hệ thống truyền dẫn BPSK-OFDM
dùng mã kênh trong môi trường kênh AWGN

I. Presentation
1. Giải thích code

2. Giá trị các biến và kết quả mô phỏng


2.1. Giá trị của biến
Name Value
EB Codding_Type 1
EB CPsize 20
EB data 7x512 double
EB data2 7x512 double
EB Decis 7x1028 double
EB errCount 0
EB EstSymbols 7x512 double
EBEstSymbols_1 7x1028 double
EB FFTsize 512
EEG [1,1,1;1,0,1)
EEi 1028
EE) I 1x512 double
EBinputSymbols 7x1028 double
EBk 1000
EEk0 1
EBmode_Sim 2
ffin 10
EE noisePower 0.1259
EENumBits 512000
EB numRun 1000
EBnumSymbols 1028
EB numSymbols_2 1028
EB RxSymbols 1x1048 complex ...
EEsER [0.0322;0.0111;0....
EEsNR [0,1,2,3,4,5,6,7,8,9)
EEtmp 7x1048 double
EBrx_ofdm 1x1048 complex ...
EB TxSamples 1x1028 complex ...
EBv 7x1028 complex ...
2.2. Kết quả mô phỏng
3. Nhận xét
II. BPSK_OFDM_AWGN
1. Giải thích code
%
\:====== S i ---
mM A 07 BPSK- OFDM
-
AWGN
-
ChannelCode =-=======
%================================

clc; % X6a man hinh Cormnand Window


clear all; t X6a t.!t ca cac bi n trong Workspace
close all; \ fl6ng d.t ca cac ella s& d6 thi dang m6

SNR = [0: 1: 9] ; % T, lO m¢t vector SNR t.U O dE':n


Ff'Tsize = 512; \- Kich thu6c FFT
CPsize = 20; %: Klch thu6c CP (Cyclic Prefix)
numRun = 10 ...3; % SO l&n ch-?Y mO phOng (luu '})
NumBi ts = FFTsize t num.Run; % T6ng s6 bit mO phOng

%
mode_Sirn :::: 2; % Ch€: dQ mO phOng: l cho khOng ma h6a kenh (Ot'DM kh6ng ma h6a k€:nh); 2 cho mil h6a kenh (Of'DM v6i ma h6a Jc€:nh)
Codding_Type = l; \:Lo.:;ti ma h6a kE':nh

if mode_Sim == 2
if Codding_Type
kO = 1;
G = [1 1 1;1 0 1I;
elseif Codding_ Type == 2
kO = 1;
G = [1 1 1 1 0 0 1;1 0 l l O l OJ;
else
kO = 2;
G = [O O l O l O O l;O O O O O O O l;l O O O O O O 11;
end
end

- for n = 1:length(SNR)
errcount = O;
fork= l:nurn:Run
% T90 dU lieu BPSK ng u nhien
numSymbols = FFTsize;
data= 0.5 • (sign(rand(l, numSymbols) - 0.5) + l);
data2 = 2 * data - l;
%------------------------------------------------------------------
if mode Sim ;::;: 2 \ Ma h6a hing ma g p qmh
inputsymbols E'WC_COV_Encoder(G, kO, data);
inputsymbols 2 • inputsymbols 1;
else
inputSymbols 2 -t data - 1;
end
%
% Bi n d8i nguQc Fourier (OFDM Modulation}
TxSamples = sqrt(length(inputSymbols)) • ifft(inputSymbols, length(inputSymbols)];
numSymbols = length(inputSymbols);
% Chen CP
Tx_ofdm = [TxSamples(numSymbols - CPsize + 1:numSymbols) TxSamplesJ;
% Kenh AWGN
numSymbols_2 = length(inputSymbols);
tmp = randn (1, numSymbols_2 + CPsize);
noisePower = 10'(-SNR(n) / 10);
RxSymbols = Tx_ofdm + sqrt(noisePower} * tmp;
.\ Lo i bO CP
Es-tSymbols 1 = Rx.Symbols (CPsize + 1: numSymbols 2 + CPsize);
% Bi€:n d8i- Fourier (OFDM Demodulation)
Y = fft(EstSymbols 1, length(EstSymbols 1));
2. Giá trị các biến và kết quả mô phỏng
2.1. Giá trị các biến

2.2. Kết quả mô phỏng


3. nhận xét
Sim MA08
Mô hình hóa và mô phỏng hiệu năng SER cho hệ thống truyền dẫn OFDM trong
môi trường kênh AWGN và kênh phadinh đa đường
I. Presentation

1. Giải thích code


set (Y, 'fontname', '. Vntime', 'fontsize', 14, 'color', 'b');
L =legend('OFDM - k•nh AWGN','OcDM - K•nh MFC/pedA & Be Hie MMSE','OcDM - K•nh MFC/vehA & Be lac MMSE', ...
'OFDM - K•nh MFC/pedA & Be lac ZF', 'OFDM - K·nh ME'C/ve"M & Be lac ZF');
set (L, 'fontname', ' . Vntime', 'fontsize', 13);
grid on
T :,:,title(strvcat(strcat(1SER cfia h◊ theng OFDM trong c,c m«', ...
'hxnh k,.nh kh,c nhau'}.' vµ ph--.ng ph,p cCln b»ng kanh MMSE & ZF'));
set(T, 'fontname',' .Vntime', 'foncsize',18, 'color', 'b');

%
%
\ v biiu d6 thU
figure (4)
Xsize 12;
Ysize 1B;
Lsize 12;
LTsiz.e 14;

\- - - - - -
subplot (1, 2, 1)
G = semilogy (SNR, SER_ofdm_AWGN', '-vk' I SNR, SER_ofdm_pedA_ZF' I' -*r', SNR, SER_ofdm vehA_ZE'', '-sb');
set CG, 'Line-Width' ,1.5);
X =xlabel('SNR (dB)');
1 1
set (X, 'fontname', • Vntime , 'fontsize', Xsize, 'color' , 'b') ;
Y =ylabel ('SER');
set (Y, 'fontname', ' . Vntime', 'fontsize', Ysize, 'color' , 'b'} ;
L =legend('OFDM - k•nh AWGN', 'OFDM - k•nh pha ®inh moKi tr-eng ®i be', 'OE'DM - k•nh pha ®inh m«i tr-eng xe ce');
set(L,'fontname', ' . Vntime •, 'fontsize •, Lsize) ;
grid on

T =title(strvcat(strcat('SER cfia hO th€ng OFDM trong c,c m«', ...


' h•nh k"nh kh,c nhau'),'
set (T, 1 fontname' , ' . Vntime', 'fontsize', LTsize 'color', 'b') ;
vµ ph--nq ph,p = b ng k"nh ZF'));
1

%
subplot (1, 2, 2)
1
G = semilogy (SNR, SER_ofdm_AWGN', '-vk', SNR, SER_ofdm_ped.A_MMSE', '-"tr' ,SNR, SER_ofdm_vehA_MMSE', '-sb );

se(tG, 1 LineWidth' 1 1. 5);


X =xlabel('Sl<"R (dB)');
1 1 1 1
set (X, 'fontname', ' . Vntime', fontsize , Xsize, 'color , b');
Y =ylabel('SER');
set (Y, •fontname', ' . vnt.ime', 'font.size', Ysize, 'color',' b');
L =legend('OE'DM - k•nh AWGN',1 0FDM - kanh pha ®inh m«i tr-€mg ®i be1,'0FDM - k•nh pha ®inh m«i tr-eng xe ce1);
set(L, •fontname', ' . Vntime', 'fontsize', Lsize);
grid on
T =title (strvcat (strcat ('SER cfta hO theng OFDM trong c. c m«', ...
' h,c.nh k•nh kh,c nhau'),' vµ ph--.ng ph,p cCln b»ng kanh MMSE'));
set (T, 'fontname' , ' . Vntime' , 'fontsize', LT size, 'color', 'b' ) ;

%------------------------------------------------ =-=-=-=====
%=============================
\================================---===== =========
% v bi u cl<S thu 5
figure (5)
Xsize 12;
Ysize 1B;
Lsize 7;
LTsiz.e 9;
2. Giá trị các biến và kết quả mô phỏng
2.1. Giá trị các biến
2.2. Kết quả mô phỏng
C X
rat Edit View n Tool op Window lwlp

SER ciia hO theng OFDM trong c,c m« hxnh k•nh kh,c nhau
vµ ph-.,ng ph,p c©n b»ng k"nh ZF
,o',----,-------,-----,-----,------, ------- ;::::================::';1
--OFDM - k"nh AWGN
--+-OFDM - k"nh pha ®inh m«i tr-eng ®i be
--OFDM - k•nh pha ®inh m«i tr-l!ng xe ce

a::
W 10-3
(J)

,o• ,,
0 ,o
SNR (dB)

■ P Type here to search

C X
rat Edit View n Tool op Window lwlp

SER ciia hO theng OFDM trong c,c m« hxnh k•nh kh,c nhau
vµ ph-.,ng ph,p c©n b»ng k"nh MMSE
,o',----,-------,-----,-----,------,-----, -------- ;:::============::';1
® be
----oFDM - k•nh pha ®inh m«i tr• xe 00

,o• ,,
0 ,o
SNR (dB)

■ P Type here to search


C X
rat Edit View n Tool op Window lwlp

SER ciia hO theng OFDM trong c,c m« hxnh k•nh kh,c nhau
vµ ph-..,ng ph,p c©n b»ng k"nh MMSE & ZF lll300.El..:!
,o',----,------,------,------,-----, ---------------- ,;:::::=============;1
-.-oFOM. k•nh AWGN
-◊FOM- K'nh MF=C/pedA& se 1ac MMSE
- --- oFDM- K"nh MFC/vehA & Be lac MMSE
--.-OFDM- K'nh MFC/pedA & Be lac ZF
--.-QFDM- K'nh MFC/vehA & Ba lac ZF

0::
LLJ 10-3
"'

,o•
0 ,o ,, 18
SNR (dB)

■ P Type here to search

'Tr111ur11,. 0 X
M Ed,1 V- hsNl. Tools Desktop Wll"ldow Hftp

:.l .. □ []
SER cria h0 thimg OFOM trong c,c m« h•nh k'nh kh.c nhau SER cria h0 thitng OFDM trong c..c m« h•nh k•nh kh.c nhau

1,0-, -• '--',p_h•_"_n g',':p=h::,P=-==b•=nc:=g::::k='=nh=M=M=S::!E ----- ===;i

10·1

10•

Q'. Q'.
LU 10.J L1J ,o-J
(fl (fl

10'

10•

10• 10• 'SNR(dB) ,.


- - -

'
-
SNR(dB)
- -- - -
,.
-
"
0 10 12 1• 16 0 10 12

■ P Type here- lO search


3. Nhận xét
II. QPSK_OFDM_MFC

1. Giải thích code


2. Giá trị các biến và kết quả mô phỏng
2.1 Giá trị các biến

2.2 Kết quả mô phỏng


C X
rat Edit View n Tool op Window lwlp

SER ciia hO theng OFDM trong c,c m« hxnh k•nh kh,c nhau
vµ ph-.,ng ph,p c©n b»ng k"nh ZF
,o',----r-----,-----.-------,-----,------,---------;:::=============;',

0 ::
w
"'

,o-7
0 ,o ,, ,,
SNR (dB)

■ P Type here to search

C X
rat Edit View n Tool op Window lwlp

SER ciia hO theng OFDM trong c,c m« hxnh k•nh kh,c nhau
vµ ph-.,ng ph,p c©n b»ng k"nh MMSE
,o',----r-----,-----.-------,-----,------,--------- ;:::=============;1
® be
----oFDM - k•nh pha ®inh m«i tr• xe 00

0::
LLJ 10-3
"'

,o•
0 ,o ,, ,,
SNR (dB)

■ P Type here to search


3. Nhận xét
Sim MA09
Mô hình hóa và mô phỏng hiệu năng SER cho hệ thống truyền dẫn FC-FDMA trong
môi trường kênh AWGN và kênh phading đa đường
1. Giải thích lệnh và tham số
a. Hàm addCP

- inputSymbols: Đây là chuỗi đầu vào chứa các ký tự (hoặc các phần tử) mà bạn
muốn thêm CP vào. Đây là dữ liệu gốc trước khi thêm CP.
- numSymbols: Biến này đại diện cho tổng số ký tự trong chuỗi inputSymbols.
- CPsize: Đây là kích thước của chu kỳ tiền nạp (CP) mà bạn muốn thêm vào đầu
của chuỗi. CP thường được sử dụng trong hệ thống truyền thông OFDM
(Orthogonal Frequency Division Multiplexing) để giảm tác động của méo hóa
tín hiệu.
- outputSymbols: Đây là kết quả của hàm. Nó là chuỗi mới mà bạn thu được bằng
cách thêm CP kích thước CPsize vào đầu của chuỗi inputSymbols. Chuỗi này
sẽ bao gồm CP và dữ liệu gốc.
- Dòng mã outputSymbols = [inputSymbols(numSymbols-
CPsize+1:numSymbols) inputSymbols]; thực hiện việc thêm CP vào đầu chuỗi
inputSymbols. Nó sử dụng cách ghép mảng trong MATLAB để nối chuỗi CP
(lấy từ numSymbols-CPsize+1 đến numSymbols) vào chuỗi gốc inputSymbols.
Kết quả được lưu trữ trong biến outputSymbols.

Nhận xét :
- Hàm addCP trong đoạn mã MATLAB trên có mục đích thêm một chuỗi phần tử
(không gian thời gian) vào đầu của một chuỗi khác để tạo ra một chuỗi mới có
chu kỳ tiền nạp (Cyclic Prefix - CP).

* Chi tiết

if channelType=='pedA' hàm xác định hàm kênh dựa trên


pedAchannel = [1 10^(-9.7/20) loại kênh được xác định bởi
10^(-22.8/20)]; channelType. Có ba loại kênh
channel = được hỗ trợ: 'pedA', 'vehA', và
pedAchannel/sqrt(sum(pedAchannel.^2)); '0000'. Mỗi loại kênh có hàm kênh
elseif channelType=='vehA' riêng của nó.
- Nếu channelType là
vehAchannel = [1 0 10^(-1/20) 0
'pedA', hàm kênh
10^(-9/20) 10^(-10/20) 0 0 0 10^(-15/20)
pedAchannel được định
0 0 0 10^(-20/20)];
nghĩa và chuẩn hóa sao
channel = cho tổng bình phương
vehAchannel/sqrt(sum(vehAchannel.^2)); của nó bằng 1.
elseif channelType=='0000' - Nếu channelType là
channel = 1; 'vehA', hàm kênh
end vehAchannel được định
nghĩa và cũng được
chuẩn hóa sao cho tổng
bình phương của nó
bằng 1. –
- Nếu channelType là
'0000', hàm kênh là 1
(không có tác động của
kênh).
H_channel = fft(channel,FFTsize); hàm chuyển đổi tần số của kênh
H_channel được tính toán bằng
cách thực hiện biến đổi Fourier
nhanh (FFT) trên hàm kênh đã
chuẩn hóa. Kích thước của FFT
được xác định bởi FFTsize, và
H_channel là biểu đồ tần số của
hàm kênh.
outputSymbols = tín hiệu đầu vào inputSymbols
filter(channel,1,inputSymbols); được truyền qua kênh được định
nghĩa trước đó (channel) bằng
cách sử dụng hàm filter. Kết quả là
tín hiệu đầu ra outputSymbols sau
khi truyền qua kênh. Tín hiệu này
đã bị biến dạng và tác động bởi
kênh.

Nhận xét :
- Hàm này được sử dụng để mô phỏng tác động của kênh truyền thông
lên tín hiệu đầu vào.
- Hàm kênh được chuẩn hóa để đảm bảo tính chuẩn mực của tín hiệu
sau khi truyền qua kênh.
- Đầu ra là tín hiệu sau khi đã trải qua kênh, cùng với hàm chuyển đổi
tần số của kênh cho phân tích tại miền tần số.

b. Hàm MA_09_data_block_gen
- Q-PSK (Quadrature Phase-Shift Keying): Nếu dataType là 'Q-
PSK', hàm sẽ tạo ra một chuỗi dữ liệu bằng cách thực hiện các
bước sau:
+ Tạo một ma trận ngẫu nhiên tmp kích thước 2xnumSymbols với các
giá trị là 0 hoặc 1.
+ Trừ 1/2 để đưa các giá trị về khoảng từ -1 đến 1.
+ Tạo một chuỗi dữ liệu data bằng cách kết hợp phần thực và ảo của
tmp và chia cho căn bậc hai của 2.
- 16QAM (16-Quadrature Amplitude Modulation): Nếu dataType
là '16QAM', hàm sẽ tạo ra một chuỗi dữ liệu bằng cách thực hiện
các bước sau:
+ Xác định một tập dữ liệu dataSet chứa 16 ký tự QAM được chuẩn
hóa.
+ Tạo một chuỗi ngẫu nhiên tmp kích thước 1xnumSymbols với các giá
trị từ 1 đến 16.
+ Sử dụng các giá trị trong tmp để chọn các ký tự tương ứng từ dataSet
và tạo ra chuỗi dữ liệu data.

Nhận xét:
- Hàm này được sử dụng để tạo dữ liệu tương ứng với các loại
modulasi Q-PSK và 16QAM.
- Dữ liệu được tạo ngẫu nhiên và chuẩn hóa để đảm bảo tính chuẩn
mực và phù hợp với loại modulasi.
- Đầu ra của hàm là chuỗi dữ liệu đã được tạo.

c. Hàm MA_09_equalizer

Nhận xét :
- Hàm này cho phép cân bằng tín hiệu đầu vào dựa trên loại cân bằng
được chọn.
- Loại cân bằng 'ZERO' thực hiện cân bằng bằng cách chia cho hàm
chuyển đổi tần số của kênh, trong khi loại cân bằng 'MMSE' sử
dụng hệ số C được tính toán theo MMSE.

- Đầu ra của hàm là tín hiệu sau khi đã được cân bằng.

d. Hàm MA_09_rcPulse

Nhận xét :

- Hàm này được sử dụng để tạo ra xung hình dạng RC dựa trên thông
số đầu vào như thời gian ký tự (Ts), số lượng mẫu trong ký tự
(Nos), và hệ số alpha (alpha).
- Xung RC được tính toán dựa trên các công thức toán học đặcific cho
xung RC.
- Đầu ra của hàm là một mảng chứa xung RC hoàn chỉnh.

e. Hàm MA_09_removeCP
Nhận xét :

- Hàm này được sử dụng để loại bỏ phần CP từ tín hiệu OFDM sau khi
đã nhận được tín hiệu từ kênh truyền.
- Code rất ngắn gọn và hiệu quả để thực hiện công việc cơ bản này.
- Hàm này giúp chuẩn bị tín hiệu để tiếp tục xử lý dữ liệu OFDM.

f. Hàm MA_09_rrcPulse
Nhận xét :

- Hàm này được sử dụng để tạo ra xung hình dạng RRC dựa trên thông
số đầu vào như thời gian ký tự (Ts), số lượng mẫu trong ký tự
(Nos), và hệ số alpha (alpha).
- Xung RRC được tính toán dựa trên các công thức toán học đặcific
cho xung RRC.
- Đầu ra của hàm là một mảng chứa xung RRC hoàn chỉnh.
g. Hàm MA_09_rrcPulse

Vòng lặp for để tính toán


Nhận xét :
- Hàm này tính tỷ lệ lỗi ký hiệu (SER) trong hệ thống SC-FDMA thông
qua mô phỏng.
- Có một loạt vòng lặp để thực hiện mô phỏng cho mỗi giá trị SNR và
số lần thực hiện mô phỏng.
- Mỗi vòng lặp thực hiện một loạt các bước như tạo dữ liệu đầu vào,
biến đổi Fourier, thêm tiền tố vòng, truyền qua kênh, thêm nhiễu,
cân

h. Hàm MA_09_SER_ofdm
function SER= SER_ofdm(SNR,numRun,FFTsize,dataType,...
CPsize,channelType,equalizerType)

0
"o SNR: ty so tin hieu tren tap am

!! ,
a

% channel ype: mo hinh kenh

numSymbols = FFTsize; % so ky hieu


n = 1:length(SNR),
errcount = 0;
fork= 1:numRun
% Tao khoi du lieu ban dau
·nputSymbols = data_block_gen(dataType,numSymbols);
% Dieu che OFDM SU dung IFF
TxSamples = sqrt(FFTsize) ifft(inputSymbols);
% Chen them CP
ofdrnSymbols = addCP(TxSamples,numSymbols,CPsize);
% Qua kenh da duong
[RxSymbols H_channel]= channelFi tering(ofdmSymbols,...
channelType,FFTsize);
% Tao va cong vao AWG
tmp = randn(2,numSymbols CPsize);
complexNoise = (tmp(l,:) + i*tmp(2,:))/sqrt(2);
noisePower = 10"(-SNR(n)/10);
RxSymbols = RxSymbols + sqrt(noisePower)*complexNoise;
% Loai bo ce
EstSymbols = removeCP(RxSyrnbols,numSyrnbols,CPsize);
% Chuyen tin hieu thu duoc sang mien tan so
Y = fft(EstSyrnbols,FFTsize);
% Can bang kenh
if channelType~='0000'
Y= equalizer(Y,H_channel,equalizerType,SNR(n));
end
Nhận xét :
- Hàm này tính tỷ lệ lỗi ký hiệu (SER) trong hệ thống OFDM thông
qua mô phỏng.
- Có một loạt vòng lặp để thực hiện mô phỏng cho mỗi giá trị SNR và
số lần thực hiện mô phỏng.
- Mỗi vòng lặp thực hiện một loạt các bước như tạo dữ liệu đầu vào,
biến đổi Fourier, thêm tiền tố vòng, truyền qua kênh, thêm nhiễu,
cân bằng kênh, và kiểm tra lỗi.

* Chương trình
a. Chương trình MA_09_Presentation
Làm sạch

Cài đặt các biến và tham số


Vẽ biểu đồ và thêm chú thích cho bieur đồ
Kết quả

Nhận xét :
- Đoạn mã này sử dụng MATLAB để vẽ biểu đồ SER (Symbol Error Rate) dưới
dạng log-log.
- Dữ liệu SER được nạp từ tệp Sim_MA_09_SC_FDMA_MFC.mat.
- Biểu đồ hiển thị tỷ lệ lỗi ký hiệu (SER) cho các trường hợp IFDMA và LFDMA
với các mô hình kênh khác nhau.
- Tiêu đề của biểu đồ được đặt dựa trên các thông số như channelType và
equalizerType.
- Các dòng code chú thích (comment) giúp làm rõ chức năng của từng phần của
mã.
b. Chương trình MA_09_SC_FDMA_MFC
Làm sạch

Khởi tạo tham số

Cài đặt và tính toán


Vẽ biểu đồ và chú thích
Kết quả
Nhận xét :
- Đoạn mã này thực hiện mô phỏng và tính SER cho hệ thống SC-
FDMA với nhiều thông số khác nhau, bao gồm kích thước FFT,
kích thước khối dữ liệu đầu vào, CPsize, SNR, số lần chạy mô
phỏng, loại dữ liệu, loại mô hình kênh và loại cân bằng kênh.
- Dữ liệu SER được lưu vào tệp mat
"Sim_MA_09_SC_FDMA_MFC.mat" để sử dụng trong biểu đồ.
- Biểu đồ SER được vẽ dưới dạng log-log, với các đường curve tương
ứng với các trường hợp IFDMA và LFDMA với subband khác
nhau.
- Tiêu đề của biểu đồ được đặt dựa trên các thông số như channelType
và equalizerType.
- Các dòng code chú thích (comment) giúp làm rõ chức năng của từng
phần của mã.

You might also like