Professional Documents
Culture Documents
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
* 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
* 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
% 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;
* 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
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
* 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
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
.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
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
% % 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)
% 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
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
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);
% 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
end
end
exp(j*2*pi/N·k(i-1)*(m-1));
W H =
ans=
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
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';
f. PSD_OFDM
* Làm sạch vùng làm việc
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
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
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
>>
7°Figwe1 c, X
r e £ci,1 i/le:w " lo,ois W'lll(SOw l-k-lP
tl .. ia□li3
::, o.,
0
LL LL
0 50.3
1 (/)
-= 0.2
0
0.2
a.
(/)
=
IL 01 0,1
LL
:. a:
:. 3
0
ti;
0'
a. en
a.
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
%
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
%
%
\ 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
%
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 );
%------------------------------------------------ =-=-=-=====
%=============================
\================================---===== =========
% 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)
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)
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)
'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
10·1
10•
Q'. Q'.
LU 10.J L1J ,o-J
(fl (fl
10'
10•
'
-
SNR(dB)
- -- - -
,.
-
"
0 10 12 1• 16 0 10 12
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)
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)
- 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
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
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
* Chương trình
a. Chương trình MA_09_Presentation
Làm sạch
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