You are on page 1of 10

THỰC HÀNH

Bài 1: Mô tả và khảo sát PSD của các kỹ thuật điều chế trên Matlab
Câu 1:
Phân tích biểu thức tín hiệu băng tần cơ sở và tín hiệu thông giải trong miền thời gian
(dạng sóng tín hiệu và hàm tự tương quan) của các sơ đồ điều chế/giải điều chế BPSK,
QPSK, MSK, -MPSK; M-QAM….
Câu 2:
Phân tích biểu thức PSD của tín hiệu điều chế BPSK, QPSK, MSK, -MPSK; M-QAM….
Câu 3:
Thực hiện khảo sát PSD của tín hiệu điều chế BPSK, QPSK, MSK, -MPSK; M-
QAM….trên Matlab:
+ Phân tích các tham số đầu vào chương tŕnh Matlab.
+ Xác định đoạn chương tŕnh Matlab thực hiện hàm PSD.
+ Nhập các giá trị đầu vào phân tích và giải thích kết quả
+ Sử dụng hàm stem() và hàm display() để biểu diễn các kết quả:
Cụ thể như hiển thị kết quả tại: f = fc+1/Tb; f = ±1,5 /Tb; f = ±2 /Tb…. giải thích các kết
quả.

Bài làm
Câu 1:
BPSK
Biểu thức tín hiệu băng tần cơ sở: s(t) = Acos(2πfct + φ), với bit 1 tương ứng với φ = 0 và
bit 0 tương ứng với φ = π
Biểu thức tín hiệu thông giải: s(t) = Acos(2πfct + φ), với φ được thay đổi theo dữ liệu đầu
vào

QPSK
Biểu thức tín hiệu băng tần cơ sở: s(t) = Acos(2πfct + φ), với φ được biểu diễn bằng 2 bit:
00, 01, 10, 11 tương ứng với φ = 0, π/2, π, 3π/2
Biểu thức tín hiệu thông giải: s(t) = Icos(2πfct) - Qsin(2πfct), với I và Q là hai tín hiệu
mang thông tin của hai kênh tương ứng

MSK
Biểu thức tín hiệu băng tần cơ sở: s(t) = Acos[2πfct + π/2sin(2πfct/Tb)], với Tb là chu kỳ
bit
Biểu thức tín hiệu thông giải: s(t) = Acos[2πfct + φ(t)], với φ(t) là pha của tín hiệu mang
thông tin

MPSK
Biểu thức tín hiệu băng tần cơ sở: s(t) = Acos(2πfct + φ), với M số bit được biểu diễn
bằng M giá trị pha khác nhau
Biểu thức tín hiệu thông giải: s(t) = Acos(2πfct + φ(t)), với φ(t) là pha của tín hiệu mang
thông tin
M-QAM (M-binary Quadrature Amplitude Modulation)
Biểu thức tín hiệu băng tần cơ sở: s(t) = ∑[Ii(t)cos(2πfct) - Qi(t)sin(2πfct)]gi(t), với Ii và
Qi là hai tín hiệu mang thông tin của kênh i, gi(t) là hàm điều chế của kênh i..
I = A cos (2πfct) và Q = A sin (2πfct)

Câu 2: Phân tích biểu thức PSD của tín hiệu điều chế BPSK, QPSK, MSK, -MPSK;
M-QAM….

PSD_BPSK = (Eb*log2(2))*((sinc((f-fc)*Tb*log2(2))).^2);
PSD_QPSK = (Eb*log2(4))*((sinc((f-fc)*Tb*log2(4))).^2);
PSD_M_PSK = (Eb*log2(M))*((sinc((f-fc)*Tb*log2(M))).^2);

Num = (cos(2*pi*(f-fc)*Tb));
Dum = (16*(Tb^2)*(f-fc).^2)-1;
PSD_MSK = SF*((Num./Dum).^2);

PSD_M_PSK = (Eb*log2(M))*((sinc((f-fc)*Tb*log2(M))).^2);

PSD_MQAM = (2/Tb)*Eb*(M^2-1)((sin(pif*Tb/M)).^2)/((pif*Tb/M).^2)

• M : số bản tin
• Eb: năng lượng trung bình trên mỗi bit
• log2(2): hằng số = 1
• sinc(x): hàm sinc chuẩn
• f: tần số
• fc: tần số tín hiệu mang
• Tb: thời gian truyền mỗi bit

Câu 3:
+ Phân tích các tham số đầu vào chương tŕnh Matlab.
• f là một vector chứa các giá trị tần số (tính bằng Hz) được chia thành 1500 điểm
trong khoảng từ -2000 Hz đến 2000 Hz. Vector này sẽ được sử dụng để tính toán
PSD của tín hiệu.
• Tb là thời gian của một bit (tính bằng giây).
• Rb là tốc độ truyền bit (tính bằng bit/giây).
• P là công suất truyền tín hiệu (tính bằng Watt).
• A là biên độ của sóng điều chế (tính bằng Volt).
• AA là biến lưu giá trị của A^2*Tb, được sử dụng trong công thức tính toán PSD.
• fc là tần số của sóng mang (tính bằng Hz).
• Eb là năng lượng của một bit (tính bằng Joule).
+ Xác định đoạn chương tŕnh Matlab thực hiện hàm PSD.
• PSD_BPSK = (Eb*log2(2))*((sinc((f-fc)*Tb*log2(2))).^2);
• PSD_QPSK = (Eb*log2(4))*((sinc((f-fc)*Tb*log2(4))).^2);
• PSD_8_PSK = (Eb*log2(8))*((sinc((f-fc)*Tb*log2(8))).^2); // ở đây trong
matlab t tính PSD của 8-PSK
• PSD_M_PSK = (Eb*log2(M))*((sinc((f-fc)*Tb*log2(M))).^2

+ Nhập các giá trị đầu vào phân tích và giải thích kết quả

+ Sử dụng hàm stem() và hàm display() để biểu diễn các kết quả:
Cụ thể như hiển thị kết quả tại: f = fc+1/Tb; f = ±1,5 /Tb; f = ±2 /Tb…. giải thích các
kết quả.
Bài 2: Mô phỏng BER hệ thống BPSK trong môi trường kênh AWGN

Câu 1:
Phân tích mô h́ nh mô phỏng.
Câu 2:
Phân tích các tham số đầu vào của chương tŕnh mô phỏng và ảnh hưởng của chúng lên
kết
quả mô phỏng.
Câu 3:
✓ Xác định các đoạn chương tŕnh Matlab thực hiện các khối chức năng cho mô h́ nh mô
phỏng: Ví dụ như xác định đoạn chương tŕnh thực hiện tạo chuỗi nhị phân và quá tŕnh tạo
chuỗi nhị phân; Xác định đoạn chương tŕnh thực hiện quyết định; Đoạn chương tŕnh thực
hiện so sánh đếm lỗi; Đoạn chương tŕnh thực hiện tạo biến ngẫu nhiên phân bố
Gausian…..
✓ Ghi và phân tích các tín hiệu vào ra của mô h́ nh mô phỏng theo chương tŕnh Matlab: ví
dụ
như xác định đầu vào ra kênh AWGN.
✓ Biễu diễn kết tính toán BER bởi hàm Q()tại SNR = 0 dB; 2 dB….. bằng đồ thị và hàm
display: Giải thích, phân tích kết quả tính toán.

Câu 1: Phân tích mô hình mô phỏng


-Gồm 2 bộ thu phát:
+ Phát: chuỗi bit b(t) đầu vào đơn cực được chuyển đổi vào dạng lương cực với 1 và 0
tương ứng với -√E và +√E bằng cách đưa chuỗi này qua biến đổi mức hay gọi là MAP.
Dạng tín hiệu nhị phân này cùng với song mang hàm sin đưa đến từ bộ dao động nội phát
được đưa đến bộ điều chế nhân
+ Thu: Để lấy ra chuỗi bit ban đầu bao gồm 1 và 0 , ta đưa song BPSK bị tạp âm ở y(t)
đến một bộ tương quan, đồng thời đến bộ này cũng được đưa tín hiêu nhất quán phi1(t)
được lấy ra từ khối khôi phục sóng mang. Thời điểm đầu tích phân cho một bit được
đồng bộ bởi mạch khôi phục xung định thời. Tín hiệu y(1) là ước tính của một chuỗi bit
lưỡng cực d(t) phía phát được lấy mẫu theo chu kì bit và so sánh với ngưỡng điện áp 0V ,
nếu y1>0 thì máy thu quyết định thiên về 0 và ngược lại. Quá trình này gọi là DEMSP :
chuyển đổi luồng lưỡng cực và đơn cực.
Câu 2:

• SNRindB: tập hợp các giá trị SNR (tỷ lệ tín hiệu/nhiễu) được tính toán trong đơn
vị dB.
• SNR: tập hợp các giá trị SNR được tính toán dựa trên SNRindB với công thức
SNR = 10.^(SNRindB/10). Đây là giá trị SNR chuyển đổi từ đơn vị dB sang đơn
vị tuyến tính.
• Eb: năng lượng trung bình trên mỗi bit.
• sgma: độ lệch chuẩn của nhiễu được tính dựa trên SNR với công thức sgma =
Eb./sqrt(2*SNR). Đây là độ lệch chuẩn của phân phối Gauss (nhiễu) được thêm
vào tín hiệu.
• NumBits: số bit truyền trong quá trình tính toán PSD (phổ mật độ công suất)
.
Lệnh Giải thích
SNRindB = 0:1:2; Tạo và gán khoảng giá trị
cho tỷ lệ tín hiệu trên nhiễu
SNRindB
SNR = 10.^(SNRindB/10) Tạo và gán giá trị cho SNR
(tỉ số tín hiệu trên tạp âm)
theo công thức
10.^(SNRindB/10);

Eb = 1; Tạo và gán giá trị cho


Eb(năng lượng / bit)
sgma = Eb./sqrt(2*SNR) Tạo và gán giá trị cho
sgma(độ lệch chuẩn của
nhiễu) theo công thức
Eb./sqrt(2*SNR);
NumBits = 10^7; Tạo và gán giá trị cho
NumBits(số lượng bit)
theo_Orthogonal_err_prb = 0.5 *erfc(sqrt(SNR/2)); Tạo và gán giá trị cho
theo_Orthogonal_err_prb =
0.5 *erfc(sqrt(SNR/2));
theo_Antipodal_err_prb = 0.5 *erfc(sqrt(SNR)); Tạo và gán giá trị cho
theo_Antipodal_err_prb = 0.5
*erfc(sqrt(SNR));
h = waitbar(0,'Please wait...'); Hiển thị thanh chờ, hình
thanh chờ hiển thị cho đến
khi mã điều khiển nó đóng
hoặc khi user click vào close
Window. Xử lý (hình) trả về
trong h
tic Bắt đầu hẹn giờ đồng hồ bấm
giờ để đo hiệu suất. Hàm ghi
lại thời gian nội bộ khi thực
hiện lệnh tic. Hiển thị thời
gian đã trôi qua với
chức năng tic.
SimTime = max(tElapsed) Gán giá trị cho SimTime là
giá trị lớn nhất của tElapsed

Set(G, ‘LineWidth’, [1.5]); Chỉ định nhiều giá trị thuộc


tính

LT = legend(‘Mo phong’, ‘Tinh toan’); Chú thích

Grid on Hiển thị các đường lưới chính


cho các trục hiện tại
Câu 3: Giải thích các đoạn code:
-Phần đầu tiên của mã tính toán BER lý thuyết cho hai loại tín hiệu, Trực giao và Đối
cực, sử dụng hàm Q và hàm lỗi bổ sung (erfc).

Phần thứ hai của mã mô phỏng hệ thống BPSK và tính toán BER cho các giá trị khác
nhau của SNR bằng phương pháp Monte Carlo. Trong mỗi lần lặp lại, mã tạo dữ liệu nhị
phân ngẫu nhiên và điều chỉnh nó bằng cách sử dụng BPSK. Sau đó, AWGN được thêm
vào tín hiệu đã điều chế. Một bộ dò theo dõi kênh và dựa trên tín hiệu nhận được, quyết
định bit được truyền. Mã đếm số lỗi bit và ước tính BER cho mỗi SNR.
Phần cuối cùng của mã vẽ đồ thị đường cong BER mô phỏng và so sánh nó với các
đường cong lý thuyết cho các tín hiệu Trực giao và Đối cực. Các kết quả mô phỏng được
hiển thị bằng các vòng tròn màu đỏ và các đường cong lý thuyết được hiển thị bằng
đường màu xanh lam có hình tròn và đường màu xanh lam có hình vuông. Biểu đồ con
đầu tiên hiển thị đường cong BER cho tín hiệu Đối cực và biểu đồ con thứ hai hiển thị
đường cong BER cho cả tín hiệu Trực giao và Tín hiệu đối cực. Cốt truyện cũng bao gồm
chú thích và nhãn cho trục x và y.
Biễu diễn kết quả mô phỏng tại SNR = 0 dB; 2 dB….. bằng đồ thị và hàm display:

d. Nhận xét
- Trong mô phỏng hệ thống BPSK trong kênh AWGN thì tỉ lệ tín hiệu trên nhiễu càng
tăng (tín hiệu thu càng tốt) thì xác xuất lỗi bit BER càng giảm. đồ thị thể hiện cho việc
tính toán và mô phỏng khác giống nhau.
- Trong đồ thị so sánh xác suất lỗi bít hệ thống BPSK trực giao và đối cực trong kênh
AWGN cho thấy thành phần trực giao có tỉ lệ lỗi bit cao hơn so với thành phần đối cực
của phương pháp điều chế BPSK.

Bài 3: MÔ PHỎNG BER HỆ THỐNG BPSK SỬ DỤNG MÃ XOẮN TRONG


MÔI TRƯỜNG KÊNH AWGN

Câu 1: Trình bày tóm tắt quá trình mã hóa xoán trên cơ sở biểu đồ lưới.
-Mã hóa xoán trên cơ sở biểu đồ lưới là một phương pháp mã hóa dữ liệu trong đó các ký
tự được mã hóa thành các vị trí trên một lưới đều có kích thước cố định. Quá trình mã
hóa bắt đầu bằng việc tạo ra một lưới có kích thước cố định và sau đó tìm vị trí của từng
ký tự trên lưới. Ký tự đầu tiên được đặt ở một vị trí bất kỳ trên lưới, sau đó vị trí của các
ký tự tiếp theo được xác định bằng cách xoáy quanh ký tự trước đó trên lưới theo một
quy tắc nào đó. Các quy tắc xoáy thường được xác định bởi một từ khóa (key), và cùng
một từ khóa sẽ cho ra một lưới mã hóa khác nhau. Quá trình giải mã cũng được thực hiện
theo cùng một quy tắc xoáy và từ khóa để xác định vị trí của từng ký tự trên lưới.

Câu 2: Trình bày tóm tắt quá trình mã xoắn trên cơ sở giải thuật giải mã ML và
Viterbi quyết định cứng (phân tích công thức giải mã ML và giải thuật giải mã
Viterbi).
-Quá trình mã xoắn (convolutional coding) là một phương pháp mã hóa kênh thông tin để
tăng cường độ tin cậy của truyền thông. Phương pháp này sử dụng một bộ mã hóa để biến
đổi các bit dữ liệu đầu vào thành các chuỗi bit mã, được gọi là mã xoắn. Quá trình giải
mã xoắn (convolutional decoding) là quá trình giải mã các chuỗi mã xoắn này trở lại
thành các bit dữ liệu ban đầu.
-Giải thuật giải mã ML (Maximum Likelihood) là một giải thuật để giải mã mã xoắn dựa
trên nguyên tắc tìm kiếm đường đi có xác suất xuất hiện cao nhất trong không gian trạng
thái. Quá trình giải mã ML bao gồm việc tính toán xác suất xuất hiện của các trạng thái
để đưa ra quyết định cứng (hard decision) về các bit dữ liệu ban đầu.
-Giải thuật giải mã Viterbi là một giải thuật tối ưu hóa để giải mã mã xoắn. Giải thuật này
sử dụng thuật toán Viterbi để tìm kiếm đường đi có xác suất cao nhất trong không gian
trạng thái. Tương tự như giải thuật giải mã ML, quá trình giải mã Viterbi cũng bao gồm
việc tính toán xác suất xuất hiện của các trạng thái. Tuy nhiên, giải thuật giải mã Viterbi
sử dụng một cơ chế tìm kiếm đường đi tối ưu để giải mã các chuỗi mã xoắn, giúp cải
thiện độ chính xác của quá trình giải mã.
-Trong cả hai giải thuật giải mã ML và Viterbi, việc giải mã các chuỗi mã xoắn dựa trên
việc tính toán xác suất xuất hiện của các trạng thái. Tuy nhiên, giải thuật giải mã Viterbi
còn sử dụng thuật toán tìm kiếm đường đi tối ưu để tăng độ chính xác và độ tin cậy của
quá trình giải mã.

You might also like