Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 62

Mục lục

Chương 1: Mở đầu.............................................................................................3
Chương 2: Kiến thức cơ sở......................................................................5
2.1 Điều chế và lý thuyết modem..........................................................5
2.1.1 Điều chế.......................................................................................5
2.1.2 Điều chế QAM.............................................................................7
2.1.3 Bộ phát QAM số........................................................................11
2.1.4 Bộ thu QAM số..........................................................................13
2.2 FPGA.........................................................................................................15
Chương 3: Bộ điều chế QAM..................................................................21
3.1 Tổng quan........................................................................................21
3.2 Bộ điều chế QAM............................................................................21
3.2.1 Nguyên tắc thực hiện...............................................................21
3.2.2 Mô hình bộ điều chế QAM xây dựng......................................22
3.3 Kết quả......................................................................................................26
Chương 4: Xử lý dấu phẩy động............................................................28
4.1. Chuẩn dấu phẩy động IEEE..........................................................28
4.2 Một số ngoại lệ trong tính toán dấu phẩy động...........................29
4.2.1 Ngoại lệ phép toán sai.............................................................30
4.2.2 Ngoại lệ chia cho 0...................................................................30
4.2.3 Ngoại lệ tính toán không đúng................................................30
4.2.4 Ngoại lệ tràn dưới....................................................................31
4.2.5 Ngoại lệ tràn trên......................................................................31
4.2.6 Ngoại lệ không xác định..........................................................31
4.2.7 Ngoại lệ không..........................................................................31
4.3 Các chế độ làm tròn.......................................................................31
4.3.1 Làm tròn đến giá trị chẵn gần nhất........................................32
4.3.2 Làm tròn về 0............................................................................32
4.3.3 Làm tròn tăng, giảm.................................................................32
4.4. Các phép toán trên dấu phẩy động..............................................33
4.4.1 Phép cộng và trừ......................................................................33
4.4.2 Phép nhân.................................................................................35

1
4.4.3 Phép chia...................................................................................36
4.5. Thiết kế phần cứng...............................................................................38
Chương 5: Khôi phục nhịp ký hiệu........................................................41
5.1 Tổng quan........................................................................................41
5.2 Các kỹ thuật khôi phục nhịp ký hiệu............................................42
5.2.1 Kỹ thuật khôi phục nhịp ký hiệu gấp đôi...............................43
5.2.2 Kỹ thuật khôi phục nhịp ký hiệu biên độ tối đa.....................43
5.2.3 Kỹ thuật khôi phục nhịp ký hiệu sớm-muộn.........................44
5.2.4 Kỹ thuật khôi phục nhịp ký hiệu cắt không...........................45
5.3 Kỹ thuật khôi phục nhịp ký hiệu bằng phương pháp tương quan
................................................................................................................46
5.3.1 Bộ xét tương quan...................................................................47
5.3.2 Quá trình xét tương quan.............................................................49
Chương 6: Khôi phục sóng mang và giải điều chế QAM....................51
6.1 Tổng quan........................................................................................51
6.2 Khôi phục sóng mang....................................................................52
6.3 Các kỹ thuật khôi phục sóng mang..............................................54
6.3.1 Kỹ thuật khôi phục sóng mang có gửi kèm tần số phao tiêu
(pilot tone)..........................................................................................54
6.3.2 Vòng lặp vuông (Squaring Loop)............................................54
6.3.3 Vòng lặp Costas.......................................................................55
6.3.4 Vòng khóa pha phản hồi quyết định......................................56
6.4 Giải điều chế QAM sử dụng phương pháp tương quan..............57
Kết luận...............................................................................................................59
TÀI LIỆU THAM KHẢO.............................................................................60

2
Chương 1

Mở đầu

Xử lý tín hiệu số (DSP) là một trong những công nghệ quan trọng
nhất trong thời đại hiện nay. Nó thay đổi cách thức con người giao tiếp,
phục vụ y tế, thương mại, vui chơi giải trí, du lịch… Với DSP việc thực thi
các phép toán số học nhanh luôn là một yêu cầu bức thiết, do vậy các mô
hình tính toán cũ, tốc độ thấp sẽ liên tục bị thay thế bằng những chip điện
tử có tốc độ xử lý cao để tăng khả năng xử lý. Yêu cầu về các bộ xử lý
tăng nhanh, cùng với sự cân nhắc về tài chính, cũng như thách thức của
việc tích hợp rất nhỏ, tất cả điều đó đều hướng tới việc sử dụng các công
nghệ có thể tái cấu hình trong các hệ thống DSP phức tạp.

Kĩ thuật xử lý tín hiệu số mở rộng khả năng các hệ thống viễn thông
số bằng cách cho phép sử dụng các kỹ thuật điều chế, giải điều chế phức
tạp. Ban đầu, mạch tích hợp cho những ứng dụng đặc biệt (ASIC) được
sử dụng để thực hiện điều này, nhưng ASIC phải chịu một chi phí lớn là
chi phí không thay đổi được thiết bị (NRE) trong thiết kế và sản xuất, hơn
nữa, ASIC không thể thay đổi được. Do đó, nếu cần thay đổi ASIC lại phải
chịu một chi phí NRE lớn. Trong khi đó FPGA (Field Programmable Gate
Array) có thể dễ dàng cấu hình lại mà không phải thay thế hay sản xuất
linh kiện mới. Điều này sẽ cho chi phí NRE của FPGA thấp hơn nhiều so
với ASIC. Do vậy trước khi sản xuất ASIC, FPGA được sử dụng để thử
nghiệm cấu hình thiết kế. Ngoài ra, với các ứng dụng số lượng nhỏ,
FPGA sẽ được sử dụng trực tiếp để điều khiển hệ thống.

Một chip FPGA bao gồm các khối logic khả trình cho phép FPGA kết
nối các linh kiện khác trong mạch, các khối logic được kết nối với nhau bởi
chức năng kết nối khả trình. Bằng việc kết nối các đầu vào, ra của các

3
khối logic, các chân khả trình, FPGA có thể cấu hình để thực thi bất kỳ sự
hoạt động logic số nào.

FPGA được cấu hình sử dụng một ngôn ngữ miêu tả phần cứng
(HDL) như Verilog hoặc VHDL[1] (Very high speed integrated circuit
Hardware Description Language). Verilog và VHDL khác với các ngôn ngữ
lập trình tiêu biểu như C bởi nó trực tiếp hay gián tiếp định nghĩa cách bố
trí mạch điện trong khi C định nghĩa một chuỗi các hoạt động được thực
thi. Điều này tạo ra sự chuyển đổi dễ dàng từ các khối dữ liệu thành các
khối logic trong FPGA. Hơn nữa, các khối chức năng trong một thiết kế có
thể dễ dàng ánh xạ tới các khu vực riêng biệt trong FPGA [2, 3].

FPGA (Field Programme Gates Array) đã đạt đến đỉnh cao của
thành công trong nhiều hệ thống xử lý tín hiệu. Đặc biệt, trong lĩnh vực
viễn thông số. Phối hợp khả năng hoạt động tốc độ cao với các bộ nhớ có
băng thông vào ra khổng lồ, nền tảng xử lý tín hiệu trên FPGA có thể phục
vụ nhiều công việc phức tạp trong các bộ truyền thông phát và thu hiện
đại.

Ngày nay, sự phát triển của mạng dữ liệu không dây băng rộng cần
tăng cường sử dụng các phương pháp điều chế có hiệu quả cao trong đó
QAM (Quandrature Amplitude Modulation) được coi như một công đoạn
không thể thiếu để tăng hiệu quả kênh truyền và giúp cho dữ liệu có được
thông lượng cực đại. Tuy nhiên, điều chế QAM cao cấp rất nhạy cảm với
trạng thái của kênh truyền không dây và thông lượng có thể giảm nghiêm
trọng do tỉ lệ lỗi bit cao (BER) hay do việc truyền lại thông tin. Những hệ
thống này có nhiều mặt hạn chế bởi các modem bên ngoài đòi hỏi hỗ trợ
được nhiều chòm sao khác nhau.

Vượt qua sự trở ngại với các chòm sao QAM bậc cao, các chuẩn
băng thông rộng như IEEE 802.16 [4, 5] sử dụng MQAM (Mutilevel QAM)
hạn chế sự suy giảm thông lượng bằng các bậc điều chế QAM thích hợp
để duy trì một tỉ lệ lỗi gói tin chấp nhận được trong tình trạng kênh truyền

4
thay đổi. Các chuẩn và hệ thống mới hơn này sử dụng các chòm sao QAM
khác nhau cho những công việc khác nhau tùy thuộc các trạng thái kênh
của nó. Ngoài ra, chúng cũng thay đổi các chòm sao thùy thuộc vào trạng
thái kênh truyền theo thời gian.

Trong khóa luận, tôi xây dựng một bộ điều chế và giải điều chế tín
hiệu QAM-16. Bộ phát có thể phát QAM-16 trên các băng tần số có thể
điều chỉnh được trong một dải nhất định. Để có thể thiết kế được bộ điều
chế, chúng tôi đã sử dụng ngôn ngữ thiết kế phần cứng VHDL để lập trình
và sau đó nhúng lên hai chip FPGA APEX II[6] và Cyclone II[7].

Chương 2

Kiến thức cơ sở

2.1 Điều chế và lý thuyết modem

2.1.1 Điều chế

5
Điều chế là quá trình mã hóa thông tin từ tín hiệu nguồn lên sóng
mang trong một dải tần số nhất định [8]. Thông tin có thể được mã hóa
bằng việc thay đổi biên độ, pha hoặc cả hai.

Một tín hiệu thông dải s(t) điều chế có thể được biểu diễn:

s(t) = A(t)cos(2  fct+Φ(t)) (2.1)

Với A(t) là biên độ điều chế, (t) là pha và fc là tần số sóng mang.
Thông tin được truyền đi bằng cách thay đổi biên độ và pha của sóng
mang.

Điều chế có thể là tương tự hoặc số. Trong truyền thông tương tự,
biên độ và pha của tín hiệu biến đổi liên lục trong miền thời gian ứng với
sự thay đổi của thông tin nó mang theo. Trong truyền thông số, L ký hiệu
được ánh xạ thành L dạng sóng liên tục theo thời gian. Sau đó, dạng sóng
này sẽ được sử dụng để điều chế biên độ và pha sóng mang với một tỉ lệ
ký hiệu nhất định Rs.

Với dữ liệu là số nhị phân thì chúng được nhóm lại thành N bit từ rồi
chuyển thành L=2N dạng sóng. Dạng điều chế số đơn giản nhất là Điều
chế biên độ xung rời rạc (PAM). Một nhóm nhất định các dạng sóng được
sử dụng chính là các xung vuông có độ rộng bằng với chu kì của ký hiệu.
Biên độ của các dạng sóng này được cho bởi:

A = 2l - (L-1) (2.2)

Với A là biên độ xung và l = 0,1...L-1. Biên độ của xung có thể được


mô tả trong giản đồ chòm sao (Hình 2.1). Giản đồ này biểu diễn biên độ
của các ký hiệu trong "mặt phẳng điều chế".

6
Hình 2.1: Giản đồ chòm sao của tín hiệu PAM

Đường bao của sóng điều chế có thể dễ dàng nhận thấy trong miền
thời gian (Hình 2.2)

Hình 2.2: Đường bao trong miền thời gian của tín hiệu PAM

Tín hiệu với đường bao như Hình 2.2 có băng thông tín hiệu rất rộng
bởi dạng vuông của xung truyền. Để sử dụng phổ một cách hiệu quả, đầu
ra của bộ phát thường được lọc để giới hạn băng thông của tín hiệu phát.
Trong truyền thông không dây, độ rộng của bộ lọc phát (băng tần) phải
tuân theo các quy định nhất định để có thể dễ dàng điều chỉnh, quản lý
chúng trong giới hạn cho phép của hệ thống. Ngoài ra, tín hiệu thu được
cũng bị lọc ngay tại lối vào để loại bỏ các tạp nhiễu đi theo tín hiệu.

Hiệu năng phổ là thước đo để kiểm tra xem một phương pháp điều
chế có thể truyền bao nhiêu dữ liệu trong một băng thông cho trước [26].
Hiệu năng của phổ s được cho bởi công thức:

7
s = R b
(2.3)
B

Với Rb là tốc độ bit được xác định bằng số bit trong một giây còn B là
băng thông có đơn vị là Hertz. Do đó, từ băng thông tín hiệu và hiệu năng
phổ, ta có thể xác định được tốc độ dữ liệu tối đa của một hệ thống cho
trước.

2.1.2 Điều chế QAM

Để có được hiệu năng phổ cao hơn (tạo thông lượng cao hơn cho
dữ liệu) điều chế QAM được sử dụng để thay đổi biên độ và pha của tín
hiệu thông dải. Điều chế QAM là một kỹ thuật điều chế chuyển tải dữ liệu
bằng cách tính tổng sự thay đổi biên độ của hai sóng mang. Sóng mang
được sử dụng thường có dạng hình sin, lệch pha nhau 90 độ, sóng có
cùng pha với tín hiệu được gọi là sóng đồng pha, và sóng lệch pha với tín
hiệu được gọi là sóng vuông pha.

Xét tín hiệu thông dải trong phương trình 2.1:

s(t) = A(t)cos(2  fct+Φ(t)) (2.1)

Tổng của hai tín hiệu vuông pha có thể được biểu diễn bằng
Phương trình toán học của biên độ và pha tín hiệu điều chế như trong
Phương trình 2.1. Đầu tiên, Phương trình 2.1 được viết lại thành Phương
trình 2.2 bằng lượng giác:

s(t) = A(t)[cos(Φ(t))cos(2  fct) - sin(Φ(t))sin(2  fct)] (2.4)

Sau đó, Phương trình 2.2 được bến đổi thành Phương trình 2.3:

s(t) = AI(t)cos(2  fct) - AQ(t)sin(2  fct) (2.5)

Với tín hiệu điều chế: AI(t)=A(t)cos(Φ(t)) và AQ(t)=A(t)sin(Φ(t))


(2.6)

8
Khi N - số lượng bit trong một từ - là chẵn thì cả tín hiệu đồng pha
và vuông pha được điều chế với một trong số L=2N/2 bậc biên độ. Ở đây, L
bằng với căn bậc hai của tất cả các số của ký hiệu trong chòm sao, M [8].
Các bậc biên độ của tín hiệu I, Q được biểu diễn trong giản đồ chòm sao ở
Hình 1. Trong trường hợp này, Giản đồ sao biểu diễn biên độ và pha của
sóng mang đã được ánh xạ trong mặt phẳng phức.

Hình 2.3: Chòm sao của một tín hiệu QAM-16

Ta nhận thấy, chòm sao được phân bố dựa trên mã Gray (các điểm
sao lân cận nhau đều có ít nhất một bit khác nhau). Phân bố mã Gray này
có ý nghĩa rất lớn vì hầu hết các loại lỗi thông thường xảy ra do ký hiệu
được tìm ra giống với ký hiệu gần đó. Trong trường hợp này, số mã Gray
chỉ dẫn đến một bit lỗi trong khi số mã nhị phân có thể gây ra nhiều bit lỗi.

Không phải mọi chòm sao QAM đều vuông. Nếu N lẻ thì một chòm
sao hình chữ nhật được tạo ra, khi đó (N+1)/2 bit được sử dụng để điều
chế một tín hiệu và (N-1)/2 bit còn lại được dùng để điều chế tín hiệu
vuông pha với tín hiệu đó. Đó chính là một chòm sao QAM không vuông
khi các kênh I, Q không được điều chế độc lập.

9
(a) (b)
Hình 2.4a: Giản đồ chòm sao QAM-8 hình chữ nhật
Hình 2.4b: Giản đồ chòm sao QAM-8 hình tròn

Trong các loại giản đồ chòm sao thì giản đồ chòm sao hình tròn có
công suất trung bình thấp nhất. Tuy nhiên giản đồ vuông lại được sử dụng
rộng rãi nhất vì tuy nó có công suất trung bình lớn hơn nhưng lại có thể
thực hiện dễ dàng hơn.

Xét bốn chòm sao QAM-4, QAM-16, QAM-64, QAM-256 được biểu
diễn tương ứng ở các Hình 2.5a,b,c,d

Hình 2.5: Các chòm sao QAM

Độ nhạy của chòm sao với các nhiễu được biểu diễn bởi khoảng
cách giữa các điểm sao. Nhìn vào Hình 2.5 ta nhận thấy, điểm xa nhất ở
các chòm sao đều có cùng biên độ, khoảng cách giữa các điểm chòm sao

10
lân cận giảm khi kích thước chòm sao tăng. Điều này làm chòm sao có
kích thước lớn như QAM-256 dễ bị nhiễu hơn nhiều so với các chòm sao
có kích thước nhỏ như QAM-4.

Hình 2.6 chỉ ra kết quả lý thuyết BER cho điều chế QAM [9, 10, 11].
Đồ thị biểu diễn BER tương đối cho mỗi chòm sao QAM như một hàm của
SNR mỗi bit và là SNR bị chia bởi số bit trong mỗi ký hiệu. Bảng này đã
chứng minh những nhận xét về Hình 2.6 là chính xác và chỉ rõ ra rằng tỉ lệ
SNR sẽ thay đổi khi chòm sao thay đổi.

Hình 2.6: BER cho QAM

Sơ đồ khối của bộ điều chế QAM:

I I(t)

Bộ Tạo
Dữ liệu Sóng Sin Tín hiệu QAM
Tách I,Q

Dịch pha 90
độ

Q Q(t)

11
Hình 2.7: Bộ điều chế QAM
Dữ liệu số đưa vào sẽ được tách ra I, Q theo giản đồ chòm sao và
các kênh I,Q sẽ được nhân với các sóng mang lệch pha nhau 90 độ để tạo
ra các tín hiệu I(t), Q(t) tương ứng với các tín hiệu A I(t) và AQ(t) như mô tả
các phương trình toán học ở trên. Hai tín hiệu này sẽ được đưa vào bộ
tính tổng để tạo ra tín hiệu QAM phát ra.

2.1.3 Bộ phát QAM số

Cấu trúc của một bộ phát QAM số tiêu biểu được xây dựng bằng
các phần tử logic số được biểu diễn ở Hình 2.15. Bộ phát bao gồm hai
nhánh: một nhánh là kênh đồng pha (I), một là kênh vuông pha (Q). Ta sẽ
xem xét sự biến đổi dữ liệu tại từng khối để hiểu được các chức năng của
từng thành phần bộ phát.

Hình 2.8: Bộ phát QAM số

Khối chuyển đổi từ nối tiếp ra song song phân dữ liệu nối tiếp thành
các nhóm N/2 bit một ký hiệu. Ở đây, tốc độ ký hiệu Rs bằng 1/N lần tốc
độ bit Rb. Sau đó, nhóm N/2 bit đó được chuyển vào khối giải mã Gray
sang nhị phân với tốc độ bằng tốc độ ký hiệu.
.

12
Các nhóm N/2 bit được đưa vào các kênh I và kênh Q tới các khối
giải mã Gray sang nhị phân rồi sử dụng mã Gray tìm vị trí các kênh I và Q
cho mỗi điểm chòm sao. Hình 2.9 chỉ ra số lượng mã Gray hai bit được sử
dụng để biểu diễn các vị trí kênh I, Q của điểm trong chòm sao QAM-16.
Tuy mã Gray rất hiệu quả trong việc hạn chế lỗi bit nhưng hầu hết các hệ
thống số hoạt động bằng mã nhị phân nên khối giải mã Gray sang nhị
phân được sử dụng để chuyển số mã Gray sang số mã nhị phân.

Hình 2.9: Mã Gray

Các khối ánh xạ biểu tượng chuyển đổi kết quả mã nhị phân từ các
khối giải mã Gray sang nhị phân sang các cấp phát mã nhị phân bằng
Phương trình 2.7.

m0 = 2mi – (2N/2 - 1) (2.7)

Với m0 là giá trị ánh xạ, mi là đầu vào của các bộ ánh xạ
Nếu bậc tạo ra từ các bộ ánh xạ biểu tượng được sử dụng để tạo ra
xung vuông, công suất của tín hiệu sẽ trải rộng dọc theo một vùng băng
thông rộng lớn. Do đó, các giá trị ánh xạ được lọc bởi bộ lọc RRC để giới
hạn băng thông của tín hiệu phát. Tín hiệu đã được lọc dùng để điều chế
với các sóng mang vuông pha trong khối điều chế cầu phương. Sự hoạt

13
động của khối điều chế cầu phương được biểu diễn toán học trong
phương trình 2.5. Tín hiệu điều chế sau đó được chuyển từ các từ số sang
tín hiệu tương tự để phát đi.

2.1.4 Bộ thu QAM số

Cấu trúc của bộ thu QAM số tiêu biểu được thực hiện bằng các
phần tử logic số như ở hình 2.10. Ta sẽ xem xét sự biến đổi dữ liệu tại
từng khối để hiểu được các chức năng của từng thành phần bộ thu.

Hình 2.10: Bộ thu QAM số

Khối AGC (Automatic Gain Control) cân bằng tín hiệu thu được để
bộ thu có thể hoạt động với các tín hiệu có biên độ không đổi. Điều này
đặc biệt quan trọng đối với các kênh radio vì trong môi trường không dây,
sự suy giảm của kênh truyền thay đổi liên tục theo thời gian.

Khối chuyển đổi tương tự sang số (A/D) sẽ lấy mẫu tín hiệu thu
được khi được tác động bởi khối khôi phục xung nhịp. Khối khôi phục
xung nhịp điều khiển bộ chuyển đổi A/D để lấy một lượng mẫu nhất định
mỗi ký hiệu. Số lượng mẫu mỗi ký hiệu được xác định bởi cấu trúc của bộ
lọc RRC. Hơn nữa, các mẫu đều giữ khoảng cách cân bằng với một mẫu

14
chuẩn ở tâm chu kỳ ký hiệu. Chương 5 sẽ miêu tả chi tiết của sự cần thiết
của việc khôi phục nhịp ký hiệu và lý thuyết khôi phục nhịp ký hiệu.

Khối giải điều chế cầu phương tiến hành giải điều chế tín hiệu nhận
được s(t) tạo ra AI´ (t) và AQ´ (t) xấp xỉ bằng AI(t) và AQ(t). Quá trình giải
điều chế gồm hai bước. Bước 1 là nhân tín hiệu nhận được với các sóng
sin và cos có pha phù hợp với tín hiệu nhận được. Bước tiếp theo là tiến
hành bộ lọc thông thấp lọc kết quả như phương trình 2.8 tới 2.17, với LPF
{.} biểu diễn bộ lọc thông thấp.

AI’(t)=LPF{s(t)*2cos(2  fct)}
(2.8)
AI’(t)=LPF{[AI(t)cos(2  fct) - AQ(t)sin(2  fct)]*2cos(2  fct)} (2.9)
AI’(t)=LPF{AI(t)[1+cos(4  fct)] - AQ(t)[sin(4  fct)]} (2.10)
AI’(t)=LPF{ AI(t) + AI(t)cos(4  fct) - AQ(t)sin(4  fct)} (2.11)
AI’(t) = AI(t) (2.12)
AQ’(t)=LPF{s(t)*[-2sin(2  fct)]} (2.13)
AQ’(t)=LPF{[AI(t)cos(2  fct) - AQ(t)sin(2  fct)]*[-2sin(2  fct)]} (2.14)
AQ’(t)=LPF{-AI(t)[sin(4  fct)] + AQ(t)[1-cos(4  fct)]} (2.15)
AQ’(t)=LPF{-AI(t)sin(4  fct) + AQ(t) - AQ(t)cos(4  fct)} (2.16)
AQ’(t) = AQ(t) (2.17)

Mối liên hệ giữa sóng sin và cos được sử dụng cho bộ giải điều chế
vuông pha được tạo ra nhờ khối khôi phục sóng. Chương 6 sẽ miêu tả chi
tiết về bộ giải điều chế và lý thuyết khôi phục sóng mang.

Khối RRC (Raise Root Cosin) lọc đầu ra của bộ giải điều chế vuông
pha để khử nhiễu, giao thoa và ISI. Sau đó, các khối giải ánh xạ ký hiệu,
giải mã Gray và chuyển đổi song song sang nối tiếp làm ngược lại các
khối ánh xạ biểu tượng, mã hóa Gray và nối tiếp sang song song ở bộ
phát để khôi phục lại dữ liệu ban đầu.

2.2 FPGA

15
FPGA là một loại thiết bị logic khả trình. Với một chip FPGA chúng ta
có thể tiến hành lập trình các kết nối cho các ứng dụng cụ thể (như card
âm thanh, video, bộ vi xử lý 8 bit, 16 bit, hay là bất cứ một chip khả trình
nào như 8051 chẳng hạn) mà không phải tốn hàng ngàn đô cho chi phí
sản xuất. FPGA là chip dành cho nguời dùng phát triển các hệ thông bằng
phần mềm sau khi IC đã chế tạo.

FPGA là viết tắt của Field Programmable Gate Array, vậy Field
Programmable ở đây chúng ta có thể hiểu như thế nào. Điều này có thể
hiểu là chức năng của FPGA được quyết định nhiều bởi người lập trình
hơn là bởi nhà sản xuất. Các mạch tích hợp thông thường thì chức năng
của nó đã được xác định bởi người sản xuất. Ngược lại, chức năng của
FPGA lại được xác định bởi người dùng bằng chính chương trình mà họ
viết ra.

Trước khi có sự phát triển của logic khả trình, thì các mạch logic
thông thường được xây dựng trên mức bo mạch với các linh kiện thông
thường, hoặc với mức cổng cho các ứng dụng mở rộng, FPGA là một
mạch tích hợp chứa rất nhiều tế bào logic (logic cell), có thể xem như là
các linh kiện chuẩn. Các logic cell độc lập với nhau trong các thiết kế
mang tính cá nhân. Các cell tách biệt với nhau được kết nối trong với nhau
bởi ma trận dây và chuyển mạch. Khi thiết kế các hàm logic đơn giản cho
mỗi cell, người dùng thực hiện bằng cách điều khiển các chuyển mạch
trong ma trận kết nối trong. Một mảng các cell và các kết nối tạo nên
những khối kết nối cơ bản cho mạch. Một thiết kế phức tạp là sự kết nối
của các khối trên, tạo nên mạch mong muốn.

Như đã nêu qua ở trên, có thể hình dung được cấu trúc của FPGA
một cách cở bản nhất phải chứa đủ ba thành phần:

- Logic cells
- Interconnection

16
- I/O blocks

Hình 2.11: Cấu trúc cơ bản của FPGA

 Logic cell: là nơi thức hiện các tính toán, lưu trữ thông tin, nó là
thành phần quan trọng nhất trong FPGA. Số logic cell thay đổi theo
từng họ linh kiện. Tổ hợp logic của cell theo quy luật tự nhiên có thể
thực hiên được như một bảng khóa bộ nhớ nhỏ LUT hoặc như là
một thiết lập của nhiều cổng AND. Mô hình LUT dẫn tới bit có thể
linh động hơn và cung cấp nhiều lối vào hơn so với mô hình kết hợp
nhiều cổng AND trong cùng điều kiện về độ trễ.

 I/O blocks: Cung cấp các giao tiếp với bên ngoài.

 Interconnection: Là ma trận hàng và cột thực hiện kết nối bên


trong giữa các cell với nhau, và giữa khối I/O và Cell.

Trên thị trường hiện nay có rất nhiều nhà cung cấp linh kiện FPGA
nhưng Altera và Xilinx là hai nhà cung cấp phổ biến nhất đối với thị trường

17
trong nước. Chúng ta có thể đặt mua trực tiếp qua mạng hoặc qua công ty
đại diện tại Việt Nam, ngoài ra cũng có thể mua được một số linh kiện tại
một số cửa hàng trên địa bàn Hà Nội. Các linh kiện của các hãng khác
nhau có những cấu trúc khác nhau, trong một hãng các họ khác nhau
cũng được thiết kế với các cấu trúc khác nhau. Mỗi họ đều có nhưng đặc
tính riêng của nó. Trong đề tài này tôi lựa chọn chíp APEX
EP20K200EQC208 (thuộc họ APEX20K) của Altera bởi tính phù hợp của
nó đối với yêu cầu của đề tài và sự ổn định cao trong linh kiện của hãng
Altera.

Tính năng Số Số LE ESB Số bit Số I/O


cổng cổng (Logic (Embedde RAM macrocel Num
tối đa tiêu Element d System tối đa l tối đa Max
chuẩn ) Block)
EP20K30E 113000 30000 1200 12 24576 192 128
EP20K60E 162000 60000 2560 16 32768 256 196
EP20K100 263000 100000 4160 26 53248 416 252
EP20K100E 263000 100000 4160 26 53248 416 246
EP20K160E 404000 160000 6400 40 81920 640 316
EP20K200 526000 200000 8320 52 10649 832 382
6
EP20K200E 526000 200000 8320 52 10649 832 376
6
EP20K300E 728000 300000 11520 72 14745 1152 408
6
EP20K400 105200 400000 16640 104 21299 1664 502
0 2
EP20K400E 105200 400000 16640 104 21299 1664 488
0 2
EP20K600E 153700 600000 24320 152 31129 2432 588
0 6
EP20K1000E 177200 100000 38400 160 32768 2560 708
0 0 0
EP20K1500E 239200 150000 51840 216 44236 3456 808
0 0 8

18
Hình 2.12: Một số thông số cơ bản của APEX EP20K

APEX20K chứa các khối chính sau: LUT-based logic, Product-Term-


based logic, và bộ nhớ. Các tín hiệu được trao đổi bên trong nhờ kết nối
trong FastTrack (một ma trận dây liên tục gồm hàng và cột chạy dọc theo
chiều ngang và dọc của thiết bị).

Mỗi chân lối vào được chỉ dẫn bởi một IOE (I/O Element) đặt ở đầu
cuối của mỗi hàng và cột của kết nối trong FastTrack. Mỗi IOE chứa một
bộ đệm hai hướng vào ra, một thanh ghi được sử dụng như là thanh ghi
lối vào, lối ra hoặc hai hướng của tín hiệu. Khi sử dụng các chân clock
chuyên dụng thì thanh ghi này cung cấp cho các thực thi đặc biệt.

Hình 2.13: Sơ đồ khối thiết bị APEX 20K

Các chíp trong họ EP20K được thiết kế với một chuỗi kiến trúc
MegaLAB. Một MegaLAB bao gồm 16 LAB, một ESB và một kết nối trong
MegaLAB. Các đời cao hơn trong EP20K có thể có nhiều LAB hơn trong
một MegaLAB, tín hiệu liên kết giữa MegaLAB và các chân vào ra đuợc
thực hiện bởi kết nối nội FastTrack.

19
Hình 2.14: Cấu trúc của MegaLAB

Như ở trên chúng ta thấy một LAB gồm 10 LE, các bộ kết nối trong
cục bộ của MegaLAB, và các tín hiệu điều khiển LAB.

LE là đơn vị logic nhỏ nhất trong kiến trúc của EP20K, mỗi LE chứa
4 lối vào LUT có chức năng thực hiện nhanh chóng bất cứ vai trò nào của
4 biến, LE có thể dùng để điều khiên các kết nối cục bộ, kết nối MegaLAB
hoặc kết nối FastTrack.

20
Chương 3:

Bộ điều chế QAM

3.1 Tổng quan

Từ những kiến thức cơ bản có được, trong chương này, tôi tiến
hành xây dựng một bộ điều chế QAM-16 trên FPGA bằng ngôn ngữ thiết
kế phần cứng VHDL. Dữ liệu lối vào được lấy song song từ Kit phát dữ
liệu một cách đồng bộ còn tần số ký hiệu có thể thay đổi trong một phạm vi
nhất định.

Toàn bộ quá trình được thực hiện với tín hiệu dạng số. Sau khi quá
trình xử lý số được tiến hành, dữ liệu QAM số sẽ được đưa ra DAC để có
thể quan sát được trên dao động ký.

3.2 Bộ điều chế QAM

3.2.1 Nguyên tắc thực hiện:

Phát lặp Khối điều chế QAM


dữ liệu
Mã hóa QAM
Tín hiệu QAM

Phát sin DAC


Thay đổi tần
số ký hiệu

Hình 3.1: Sơ đồ khối hệ thống

Bộ điều chế được xây dựng với sơ đồ khối như trên gồm:
- Khối lặp phát dữ liệu để tạo dữ liệu số đưa vào bộ điều chế

21
- Khối thay đổi tần số ký hiệu gồm các phím tăng giảm tần số để
thay đổi tần số trong một dải nhất định từ fc đến 10fc.
- Khối điều chế QAM: gồm các khối nhỏ như khối phát sóng mang
để tạo tín hiệu sin, cos số đưa vào điều chế, khối mã hóa QAM để tính
toán biểu thức QAM với dữ liệu nhận được và khối biến đổi DAC để
chuyển đổi số-tương tự nhằm tạo ra tín hiệu QAM có thế quan sát trên
dao động kí.

3.2.2 Mô hình bộ điều chế QAM xây dựng:

Quá trình thực hiện được tiến hành trên 2 Kit với 2 chip FPGA là APEX
II và Cyclone II[3] của Altera với sơ đồ khối như sau:

APEX II
Clock 50M

Cyclone II
Bộ tạo
I Q sóng mang ∑ DAC
Phát lặp dữ liệu SPI

Quay 90 độ
Thay đổi
tần số
Phát giả dữ liệu Clock 11M

Hình 3.2: Mô hình QAM-16 được thiết lập

3.2.2.1 Khối phát lặp dữ liệu:

Sử dụng Kit DE2 của phòng thí nghiệm, phát 16 tín hiệu chọn bit có
thể thay đổi được bằng 16 công tắc gạt bên ngoài, trạng thái các bit của
công tắc đều được hiển thị trên led.

22
16 bit trạng thái của công tắc được phân thành 4 nhóm: A,B,C,D
như Hình 9. Mỗi nhóm chứa 4 bit sẽ tạo thành một điểm chòm sao. Điểm
chòm sao này sẽ được tách ra, rồi đưa vào các kênh I,Q, mỗi kênh 2 bit
(Hình 10). Các kênh I,Q này sẽ được đưa sang chip APEX II để ánh xạ
vào trường dữ liệu bằng phương pháp truyền thông SPI.

B15 B14 B13 B12 B11 B10 B9 B8

Nhóm D Nhóm C

B7 B6 B5 B4 B3 B2 B1 B0

Nhóm B Nhóm A

Hình 3.3: Các nhóm bit trạng thái của công tắc

B3 B2 B1 B0

Q I

Hình 3.4: Tách bit I,Q

3.2.2.2 Truyền thông nối tiếp SPI:

Truyền thông giữa hai chip sử dụng kỹ thuật truyền thông SPI có bắt
tay. Trong phương pháp này, Cyclone II sẽ kiểm tra chân vào Sync của
mình, tới khi chân này nhận được một sườn xung (âm hoặc dương) từ
APEX II thông báo sẵn sàng nhận (RR) thì Cyclone II sẽ truyền các bit I,Q
lần lượt của các nhóm A,B,C,D sang cho APEX II rồi đợi tín hiệu RR tiếp
theo.

23
Truyền thông SPI vừa tạo ra sự đồng bộ giữa hai loại chip FPGA
hoạt động trong chu kỳ xung nhịp khác nhau vừa tạo ra sự độc lập tương
đối giữa hai khối chọn dữ liệu và điều chế. Nhờ có truyền thông SPI, tần
số sóng mang có thể dễ dàng thay đổi mà vẫn giữ được sự đồng bộ với
khối ánh xạ ký hiệu. Ngược lại, ta có thể tạo ra các chòm sao cấp cao
hơn, có số bit lớn hơn đưa sang điều chế mà ko gây ra nhiều thay đổi cho
khối điều chế.

RR Ready
Sync

I
Dữ liệu
Q

Hình 3.5: Truyền thông nối tiếp SPI

3.2.2.3 Bộ tạo sóng mang:

Nhằm mục đích tạo tín hiệu sin chuẩn để đưa vào điều chế. Do dữ
liệu sin số được xuất ra từ phần mềm PASCAL, mà phần mềm này lấy
mẫu tín hiệu sin đều nên nếu lấy mẫu cả một chu kì sin xử lý đưa ra DAC
thì tín hiệu quan sát được sẽ có dạng hình tam giác, không có độ cong
của tín hiệu sin. Để khắc phục nhược điểm này, chúng tôi tiến hành xuất ra
630 mẫu của một phần tư chu kì sin rồi lập trình hiệu chỉnh lại trên FPGA
để tạo ra đủ một chu kì sin với 2520 mẫu. Nguyên tắc hiệu chỉnh được mô
tả ở Hình 11:

24
Hình 3.6: Hiệu chỉnh sin

Do sóng các mẫu lấy từ tín hiệu sin trong PASCAL đều có giá trị nhỏ
hơn 1 nên phải tiến hành nhân các tín hiệu đó với một hệ số thích hợp để
tăng biên độ sóng mang.

3.2.2.4 Bộ thay đổi tần số sóng mang:

Nhân tín hiệu từ hai nút điều khiển tăng giảm tần số có thể thay đổi
tần số trong dải từ fc đến 10fc. Bộ thay đổi tần số này tác động trực tiếp
vào bộ phát sóng mang để thay đổi tần số các sóng sin, cos được tạo ra.
Nguyên tắc làm việc của bộ thay đổi tần số là tăng/giảm số mẫu trong một
chu kì sóng mang để thay đổi tần số (Hình 12). Nguyên tắc của bộ thay đổi
tần số sóng mang này giống với các bộ lấy mẫu tăng, giảm.
Giảm
Tăng

Hình 3.7: Bộ thay đổi tần số sóng mang

Dễ thấy trong QAM, khi tần số sóng mang thay đổi sẽ làm thay đổi
tần số ký hiệu, sẽ ảnh hưởng đến khối phát lặp ký hiệu để ánh xạ lên
trường dữ liệu. Tuy nhiên, trong bộ phát QAM chúng tôi xây dựng, nhờ
tính ưu việt của truyền thông nối tiếp SPI có bắt tay như đã nói ở trên, tần
số sóng mang cũng như ký hiệu có thể thay đổi dễ dàng mà không ảnh
hưởng gì khối phát lặp dữ liệu để tạo ký hiệu.

3.2.2.5 Bộ quay 90 độ:

Sóng mang số hình sin đưa vào đây sẽ được làm trễ đi 630 mẫu
(1/4 chu kì) để tạo ra sóng mang hình cos (lệch pha 90 độ với sóng mang
hình sin). Sơ đồ của bộ quay:

25
Trễ ¼ chu kì

Hình 3.8: Bộ quay pha 90 độ

3.2.2.6 Bộ nhân số:

Bộ nhân số nhân sóng mang với dữ liệu của kênh I hoặc Q mà ký


hiệu ánh xạ đến để tạo ra tín hiệu A Q(n) và AI(n) như phương trình 1.4. Bộ
nhân số có dạng như sau:

I AI(n) Q AQ(n)

(a) (b)
Hình 3.9: Bộ nhân số
Bộ nhân số thực hiện phép nhân dữ liệu số của kênh I với 2520
mẫu của sóng mang hình sin và dữ liệu kênh Q với 2520 mẫu của sóng
mang hình cos rồi đưa kết quả ra bộ cộng.

3.2.2.7 Bộ cộng số:

Bộ cộng số thực hiện phép cộng số học các dữ liệu vừa được tính
toán ở bộ nhân để kết hợp các tín hiệu các kênh I,Q để tạo ra tín hiệu
QAM. Ngoài ra, khi sau khi cộng các tín hiệu I,Q do sóng mang có dạng
hình sin nên chứa cả thành phần âm, dương trong khi bộ biến đổi DAC
bên ngoài chỉ nhận đúng các số dương nên phải nâng thành phần một
chiều của tín hiệu QAM số lên bằng cách cộng vào nó một hằng số không
đổi. Tín hiệu QAM số sau đó sẽ được đưa vào bộ chuyển đổi DAC để tạo
ra tín hiệu QAM quan sát được trên dao động ký.
AI(n)

26
Hằng số QAM
`

AQ(n)

Hình 3.10: Bộ cộng số

3.3 Kết quả

- Tôi đã thực hiện phát thành công tín hiệu QAM trên chip FPGA
APEX II với các bit thông tin có thể thay đổi được bằng công tắc.

- Tần số sóng mang cũng như ký hiệu có thể thay đổi trong một dải
nhất định
- Kết quả đầu ra có thể quan sát dễ dàng trên dao động ký.

27
Chương 4:

Xử lý dấu phẩy động

4.1. Chuẩn dấu phẩy động IEEE:

Để thuận lợi cho việc tính toán các số nhị phân lớn, cộng đồng các
kỹ sư điện-điện tử(IEEE) đã nghiên cứu và đưa ra chuẩn IEEE 754 để xử
lý dấu phấy động nhị phân. Theo chuẩn này thì khung diễn tả một dấu
phảy động phải có kích thước chuẩn là 32 bit (độ chính xác đơn) và 64 bit
(độ chính xác kép). Trong đề tài này, chúng tôi xây dựng hệ thống để xử lý
dấu phẩy động theo chuẩn 32 bit. Như trong hình vẽ, khung 32 bit được
chia thành ba nhóm riêng biệt: các bit thấp từ bit0 đến bit22 dùng để xác
định phần định trị(mantissa), các bit từ 23 đến 30 để xác định số mũ, còn
bit 31 là bit dấu.

Bit
dấu Phần mũ Phần định trị

Hình 4.1: Chuẩn phẩy động 32 bit của IEEE

Gọi số thập phân được hình thành từ chuẩn dấu phẩy động này là
V, ta có biểu thức:
V = (-1)S * M * 2E – 127

28
Với (-1)S biểu thị bit dấu (bit31: bit có trọng số lớn nhất trong khung).
Ta dễ dàng nhận thấy biểu thức này sẽ biểu diễn số dương nếu S=0 và
ngược lại, sẽ biểu diễn số âm khi S=1. Nhìn vào hình vẽ ta thấy, 8 bit từ bit
23 đến bit 30 biểu diễn số mũ E, như vậy, E có thể thay đổi từ 0 đến 255.
Sau khi trừ số mũ cho 127 theo đúng chuẩn thì sẽ cho phép số mũ chạy từ
2-127 đến 2128. Các bit còn lại biểu thị phần định trị M, phần định trị được
hình thành từ 23 bit biểu diễn một phân số dưới dạng nhị phân. Ví dụ: với
số nhị phân 1,0101; có thể khai triển thành 1 + 0/2 + ¼ + 0/8 + 1/16. Dấu
phẩy động khi biểu diễn các phân số cũng được chuẩn hóa như vậy. Chỉ
có duy nhất một kí tự khác không bên trái dấu phẩy động, số đó trong hệ 2
hiển nhiên là 1. Do vậy, bit đứng đầu phần định trị được mặc định là 1, và
bit đó được lưu trữ trong khung. Giả sử m 22, m21, …. m0 biểu thị 23 bit
trong khung chuẩn của IEEE thì số định trị M được hiểu là:
M = 1.m22.m21……m0.
Biểu diễn thập phân của M là:
M = 1 + m22 * 2-1 + m21 * 2-2 + m20 * 2-3 + ……
Đối với các khung nhị phân biểu diễn dấu phẩy động, 0 là một số
đặc biệt, số 0 có toàn bộ phần định trị và số mũ bằng 0 và bit dấu có thể là
1 hoặc 0. Bảng dưới đây sẽ cho chúng ta hiểu hơn về cách tính dấu phẩy
động và các giới hạn của nó.

29
Hình 4.2: Một số giá trị phẩy động

4.2 Một số ngoại lệ trong tính toán dấu phẩy động

Chuẩn IEEE định nghĩa năm ngoại lệ mà mỗi khi chúng khởi tạo sẽ
được báo hiệu bằng một cờ trạng thái.

4.2.1 Ngoại lệ phép toán sai

Một vài phép toán số học không đúng như chia cho 0 hay căn bậc
hai của một số âm. Kết quả của một phép toán sai được gọi là NaN. Có
hai loại NaN: NaN tĩnh (QNaN) và NaN báo hiệu (SNaN) có dạng như sau
(s là bit dấu):
QNaN = s 11111111 10000000000000000000000
SNaN = s 11111111 00000000000000000000001.

30
Kết quả của mọi phép toán sai sẽ là một chuỗi QNaN với ngoại lệ là
QNaN hoặc SNaN. Còn SNaN sẽ chỉ báo hiệu mỗi khi một toán hạng đầu
vào là một chuỗi SNaN. Các phép toán số học sau đây là phép toán sai
nên sẽ cho kết quả là một chuỗi QNaN và báo hiệu một ngoại lệ QNaN.
- Bất kì phép toán nào với một NaN
- Cộng hoặc trừ:   ()
- Phép nhân:  0  ( )
- Phép chia:  0 /  0 hoặc   /  
- Căn bậc hai: Với các toán hạng nhỏ hơn 0.

4.2.2 Ngoại lệ chia cho 0:

Phép chia của bất kì số nào cho 0 đều cho một kết quả không xác
định hay thậm chí ngay trong việc cộng hoặc nhân của hai số cũng có thể
tạo ra kết quả không thể xác định. Để có thể phân biệt được hai trường
hợp đó, một ngoại lệ chia cho 0 phải được thực hiện.

4.2.3 Ngoại lệ tính toán không đúng

Ngoại lệ này sẽ báo hiệu khi kết quả của phép toán không thật sự
chính xác cho giới hạn của số mũ và (hay) vùng chính xác.

4.2.4 Ngoại lệ tràn dưới

Ngoại lệ tràn dưới sẽ được báo khi phép tính có độ nhỏ hoặc không
chính xác. Độ nhỏ đó sẽ được phát hiện trước hoặc sau khi làm tròn khi
kết quả nằm giữa  2 Emin . Sự mất chính xác được phát hiện khi kết quả
không chính xác hay khi một mất mát giải chuẩn hóa xảy ra. Nhân FPU sẽ
báo hiệu một ngoại lệ tràn dưới mỗi khi độ nhỏ được phát hiện sau khi làm
tròn, khi đó, kết quả đưa ra sẽ không chính xác.

4.2.5 Ngoại lệ tràn trên

31
Ngoại lệ tràn trên sẽ được báo mỗi khi kết quả vượt quá giá trị tối đa
nó có thể đạt đến do giới hạn của số mũ. Tuy nhiên nó sẽ không báo khi
một toán tử không xác định do số không xác định vẫn đúng. Ngoài ra
ngoại lệ này cũng sẽ không báo khi chia cho 0.

4.2.6 Ngoại lệ không xác định

Ngoại lệ này sẽ được báo mỗi khi kết quả đầu ra không xác định mà
không cần quan tâm phép toán như thế nào. Ngoại lệ này không được
đưa thành chuẩn nhưng được dùng thêm để phát hiện nhanh hơn các kết
quả không xác định.

4.2.7 Ngoại lệ không

Ngoại lệ này sẽ báo mỗi khi kết quả đầu ra là 0 mà không cần quan
tâm đến phép toán diễn ra như thế nào. Ngoại lệ này cũng không được
đưa thành chuẩn nhưng được dùng thêm để phát hiện kết quả 0 nhanh
hơn.

4.3 Các chế độ làm tròn

Do khó có thể xác định được kết quả chính xác, nên ta nhiều lúc
phải tiến hành làm tròn. Trong khối xử lý này, chế độ “làm tròn gần nhất”
sẽ cho kết quả gần đúng nhất. Ba bit tạm thời được thêm vào trong phân
số thực là bit bảo đảm, bit làm tròn và bit mềm. Các bit bảo đảm và làm
tròn được sử dụng làm chuẩn để lưu trữ còn bit mềm là ‘1’ khi ‘1’ được
dịch ra ngoài vùng.
Ví dụ như ta có 5 bit nhị phân: 1.1001. Nếu ta dịch trái 4 bit ta sẽ
được số 0.0001, số này không thể làm tròn được nên kết quả sẽ không
chính xác. Còn nếu ta tiến hành đệm thêm 3 bit thì số đó sẽ là 0.0001 101
(bit cuối phải là 1 do 1 đã được dịch ra ngoài). Nếu lúc này chúng ta làm
tròn về lại 5 bit đầu thì sẽ được: 0.0010, nên kết quả sẽ có độ chính xác
cao hơn.

32
4.3.1 Làm tròn đến giá trị chẵn gần nhất

Đây cũng là giá trị làm tròn mặc định chuẩn. Giá trị sẽ được làm tròn
lên hoặc xuống đến kết quả đúng gần nhất. Nếu số cần làm tròn ở chính
giữa hai giá trị nguyên, thì số đó sẽ được làm lên đến giá trị nguyên gần
nhất.

Ví dụ:
Số chưa làm tròn Số đã làm tròn
3.4 3
5.6 6
3.5 4
2.5 3

4.3.2 Làm tròn về 0

Các số trong chế độ này về cơ bản không được làm tròn, số bit vượt
quá ngưỡng cho phép sẽ bị cắt đi. Ví dụ như 3.47 sẽ bị cắt thành 3.4.

4.3.3 Làm tròn tăng, giảm

Các số được đặt ở chế độ làm tròn tăng sẽ được làm tròn hướng tới
  . Ví dụ như 3.2 sẽ được làm tròn lên 4 còn -3.2 sẽ được làm tròn
thành -3.

Ngược lại, ở chế độ làm tròn giảm, các số sẽ được làm tròn hướng
về   . Ví dụ như 3.2 sẽ được làm tròn về 3 còn -3.2 sẽ được làm tròn
thành -4.

4.4. Các phép toán trên dấu phẩy động


Trong phần này, tôi sẽ đề cập đến các giải thuật cơ sở để thực hiện
các phép toán dấu phẩy động trong khối xử lý dấu phẩy động (FPU).

33
4.4.1 Phép cộng và trừ

Các phép toán cộng và trừ trên các số phẩy động khó hơn nhiều so
với các số nguyên. Giải thuật để cộng và trừ các số phẩy động được biểu
diễn trong giản đồ sau:

Ví dụ sau đây sẽ miêu tả từng bước một sự hoạt động của khối
cộng/ trừ hai số phẩy động.
Giả sử ta muốn cộng hai số phẩy động nhị phân 5 bit:
Toán hạng2A4=dấu & eA & fracA
1.1001
A
Toánhạng2B2=dấu & eB & fracB
1.0010
B

-------------------------------
Đúng Sai
e >
Bước 1: Lấy số mũ của số lớnA hơn trừ đi số mũ của số nhỏ hơn.
e ?
eL = 24, eS = 22 nên diffB= 4 - 2 = 2
eL = eA e = eB
Bước 2: Dịch phần thập phân của số có số mũL nhỏ hơn sang bên
eS = eB eS = eA
phải diff bit. Lúc
fracnày, ta phải tách phần mũ ra mới cófrac
=frac thể=frac
dịch được.
L A L B
1.1001 000
fracS=frac frac =frac
B S A
+ 0.0100 100
------------------------ diff = eL*eS
Bước 3: Sau khi dịch và đệm thêm bit, ta tiến hành cộng hai phần
thập phân vào nhau.
dịch phải fracS diff
1.1001 000 bit
+ 0.0100 100
------------------------
frac0 = fracS +/- fracL
1.1101 100 e0 = eL

Làm tròn frac0

Có Báo hiệu ngoại


Kiểm
tra lệ
ngoại
lệ Không
Chuẩn hóa
34

Ra = dấu0 & e0 &


Hình 4.3 Lưu đồ giải thuật phép cộng/trừ số phấy động

Bước 4: Sau khi cộng xong phần thập phân, ta tiến hành làm tròn
đến số chẵn gần nhất. Ví dụ như số vừa được tính là 1.1101 100 sẽ được
làm tròn thành 1.1110
Bước 5: Sau khi tính toán xong xuôi, ta ghép phần dấu và mũ vào
phần thập phân vừa tính được rồi đẩy kết quả ra đầu ra. Như trong ví dụ
này, kết quả sẽ là 2 4  1.1110

4.4.2 Phép nhân

35
Bộ nhân trong khối xử lý phẩy động này sử dụng khả năng xử lý
song song của FPGA để tiết kiệm xung nhịp đồng hồ. Nếu được sử dụng
phương pháp xử lý nối tiếp để làm bộ nhân thì sẽ mất 32 xung nhịp trong
khi thực hiện xử lý song song chỉ cần 5 nhịp. Tuy nhiên, bộ nhân xử lý
song song sẽ tốn tài nguyên FPGA gấp 3 lần khối xử lý nối tiếp. Sau đây
sẽ là lưu đồ giải thuật của bộ nhân dấu phấy động thực hiện trên FPGA.

Toán hạngA = dấuA & eA & fracA


Toán hạngB = dấuB & eB & fracB

frac0 = fracA fracB e0 = eA + eB - bias(127)


sign0 = signA xor signB

Làm tròn frac0

Có Báo hiệu ngoại


Kiểm
tra lệ
ngoại
lệ Không
Chuẩn hóa

Ra = dấu0 & e0 &


frac0
Hình 4.4 Lưu đồ giải thuật phép nhân số phẩy động

Để có thể hiểu rõ hơn lưu đồ giải thuật trên, ta sẽ làm theo lưu đồ
trên với một phép nhân hai số phẩy động nhị phân 5 bit:
2100  1.1001
 2110  1.0010

-------------------------------

36
Bước1: Ở bước này, ta tiến hành tách riêng phần thập phân, số mũ,
dấu của toán hạng đưa vào rồi nhân phần thập phân của hai số với nhau.
1.1001
 1.0100
------------------------
1.11000010

Vậy ta có frac0 = 1.11000010. Cùng việc nhân phần thập phân vào
nhau, ta cũng tiến hành tính số mũ: e0 = 2100+110-bias = 283

Bước 2: Sau khi đã tính được các kết quả trên, ta sẽ làm tròn phần
thạp phân về số nguyên gần nhất: frac0 = 1.1100

Bước 3: Sau khi đã tính được đủ các thông số, ta ghép lại phần mũ
và dấu sẽ được kết quả là: 283  1.1100

4.4.3 Phép chia

Phép chia trong khối xử lý phấy động này được thực hiện nối tiếp
với giải thuật căn bản là phép trừ liên tục các số. Do phép chia không
được dùng thường xuyên như phép nhân, nên nó được lập trình xử lý nối
tiếp để tiết kiệm tài nguyên FPGA.

Để có thể hiểu rõ hơn các khối trong phép chia phẩy động ở lưu đồ
trên, ta thử tiến hành phép chia từng bước một với hai số phẩy động nhị
phân 5 bit:
2110  1.0000
 2100  0.0011

Bước 1: Đếm các số 0 ở phía trước phần thập phân của hai số cần
tính. Ở trong ví dụ này ta dễ thấy zA = 0, zB = 3.

Bước 2: Sau khi đã tìm được zA và zB, ta tiến hành dịch trái phần
thập phân của các số đó theo zA, zB sẽ được:

37
fracA = 10000 00000
fracB = 00000 11000
Trong khi dịch các phần thập phân theo zA, zB ta cũng tiến hành tính
số mũ của kết quả: e0 = 2110-100+bias-0+3 = 2140
Toán hạngA = dấuA & eA & fracA
Toán hạngB = dấuB & eB & fracB

Đếm các bit 0 ở đầu các


phần thập phân: zA, zB

Dịch trái fracA zA bit


Dịch trái fracB zB bit
e0 = eA - eB + bias(127) – zA + zB

frac0 = fracA / fracB


sign0 = signA xor signB

Làm tròn frac0

Có Báo hiệu ngoại


Kiểm
tra lệ
ngoại
lệ Không
Chuẩn hóa

Ra = dấu0 & e0 &


frac0
Hình 4.5: Lưu đồ giải thuật phép chia số phẩy động
Bước 3: Sau khi đã có được các thông số fracA, fracB đã được
dịch, ta tiến hành phép chia:
100000,0000
 000001,1000

-----------------------

38
1,0101
Bước 4: Sau khi các bước tính toán trên đã thực hiện xong xuôi, ta
sẽ ghép các bit dấu, bit mũ và bit thập phân lại rồi đẩy kết quả ra đầu ra.
Trong ví dụ này, kết quả sẽ là: 1,0101  2140

4.5. Thiết kế phần cứng

Kiến trúc căn bản của khối xử lý phẩy động được miêu tả trong hình
sau:

Hình 4.6: Kiến trúc khối xử lý dấu phẩy động

39
Hình 4.7: Đường ống bộ cộng/trừ phẩy động

Hình 4.8: Đường ống bộ nhân/chia phẩy động

Khối xử lý phẩy động (FPU) được xây dựng để tính toán bốn phép
toán:
1. Phép cộng
2. Phép trừ
3. Phép nhân
4. Phép chia
Do các khối phép tính độc lập với nhau, khi một khối tính toán hoạt
động, có thể tắt các khối tính khác để tiết kiệm các phần tử logic trên
FPGA. Nhìn vào kiến trúc trên, ta có thể nhận thấy, khối mọi khối tính toán
đều gồm ba phần:

1. Bộ tiền chuẩn hóa: Toán hạng được chuyển thành các khuôn
chuẩn để các phần sau có thể xử lý dễ dàng, hiệu hơn.

2. Bộ xử lý tính toán: Tiến hành thực hiện các phép toán cộng, trừ,
nhân chia từ các khuôn nhận được từ bộ tiền chuẩn hóa rồi đưa kết quả ra
bộ chuẩn hóa cuối

40
3. Bộ chuẩn hóa cuối: Nhận được kết quả xử lý từ bộ xử lý tính
toán theo đúng khuôn dạng dữ liệu được từ bộ tiền xử lý, bộ chuẩn hóa
cuối sẽ chuẩn hóa lại một lần nữa (nếu bit đầu trước dấu phẩy là 1). Rồi
sau đó, bộ chuẩn hóa cuối sẽ ghép lại các khuôn dạng thu được để đưa ra
đầu ra dữ liệu phẩy động nhị phần theo đúng chuẩn IEEE-754.

Chương 5

Khôi phục nhịp ký hiệu

5.1 Tổng quan

Trong một hệ thống truyền thông số, tín hiệu thu phải được lấy mẫu
ở tốc độ mẫu và pha thích hợp nhất. Để làm được điều này, bộ thu phải
tạo ra nhịp lấy mẫu thay đổi được để tiến hành lấy mẫu. Tuy nhiên, do bộ
phát và bộ thu sử dụng tần số dao động khác nhau, nên nhịp ký hiệu bị
dịch đi là khó tránh khỏi. Quá trình đồng bộ nhịp lấy mẫu trong bộ nhận với
tín hiệu thu được, gọi là khôi phục nhịp ký hiệu.

Hình 5.1 biểu diễn một giản đồ mắt với ba nhịp ký hiệu khác nhau
mô tả tầm quan trọng của việc khôi phục nhịp ký hiệu cho tín hiệu QAM-
256. Giản đồ mắt là đồ thị của biên độ tín hiệu theo thời gian trong các chu
kì ký hiệu nhất định. Sau một số chu kì ký hiệu nhất định, đường đi của
biên độ tín hiệu theo thời gian lại bắt đầu từ bên trái đồ thị để tạo ra một
lượng lớn các đường cong chồng lên nhau.

41
Trên giản đồ mắt, các đường chấm dọc biểu diễn các điểm lấy mẫu
tối ưu. Ta nhận thấy, tại tâm các điểm lấy mẫu tối ưu có một số vùng
không có đường cong đi qua, các vùng này có hình dạng giống con mắt
nên giản đồ mới có tên là giản đồ mắt. Kích thước của mắt biểu diễn mép
nhiễu và mép nhịp của tín hiệu nhận được. Độ cao của mắt biểu diễn mép
nhiễu hoặc lượng nhiễu thêm vào để gây ra lỗi. Độ rộng của mắt biểu diễn
mép nhịp hay độ dịch của nhịp đủ để tạo ra lỗi.

Ngoài giản đồ mắt, hình 5.1 còn mô tả ba xung nhịp để diễn tả tầm
quan trọng của việc đồng bộ nhịp ký hiệu. Nhịp A trong hình vẽ mô tả nhịp
lấy mẫu được đồng bộ với tín hiệu trong giản đồ mắt. Nhịp B mô tả nhịp
lấy mẫu đã có sự lệch pha so với nhịp lấy mẫu tối ưu. Nhịp C mô tả nhịp
lấy mẫu có tần số không phù hợp với tần số của dạng sóng trong giản đồ
mắt. Nhịp lấy mẫu được sẽ được đồng bộ với nhịp ký hiệu tại điểm có độ
dịch bằng không nhưng do độ lệch pha giữa dạng sóng trong giản đồ mắt
và nhịp lấy mẫu tăng theo thời gian xử lý, nên các ký hiệu chính xác khó
có thể tìm ra từ các mẫu lấy được.

Hình 5.1: Lấy mẫu

42
5.2 Các kỹ thuật khôi phục nhịp ký hiệu

Đồng bộ ký hiệu có thể được thực hiện bằng nhiều cách. Một trong
số đó là bộ phát và bộ thu được đồng bộ với một xung nhịp chủ, để dựa
vào đó, bộ thu có thể tính toán độ trễ từ bộ phát đến nó. Một phương pháp
khác là tryền nhịp ký hiệu hay bội số của nó theo tín hiệu thông tin. Sự
khác biệt của việc phát nhịp ký hiệu đi cùng thông tin là gửi đi các “chuỗi
âm thanh” tuần hoàn, bộ thu sẽ tìm kiếm các “chuỗi âm thanh” đó để thiết
lập nhịp mẫu và sẽ sử dụng chúng cho tới khi “chuỗi âm thanh” khác được
nhận. Các kĩ thuật này khá đơn giản nhưng nếu thực hiện, bộ phát sẽ phải
phân phối một phần công suất và băng thông để truyền thông tin về nhịp
ký hiệu nên chúng không được sử dụng rộng rãi. Ngoài các phương pháp
trên, phương pháp được sử dụng rộng rãi nhất hiện nay là khôi phục xung
nhịp ngay trên dữ liệu nhận được, phương pháp này được gọi là phương
pháp tự đồng bộ.

Các kỹ thuật tự đồng bộ bao gồm kỹ thuật gấp đôi, kỹ thuật biên độ
tối đa, kỹ thuật sớm-muộn và kỹ thuật cắt không. Các kỹ thuật này đều
hoạt động hiệu quả với dữ liệu ngẫu nhiên và sẽ được giới thiệu lần lượt
sau đây.

5.2.1 Kỹ thuật khôi phục nhịp ký hiệu gấp đôi

Kỹ thuật khôi phục gấp đôi nhịp ký hiệu dựa trên đặc điểm: tín hiệu
dữ liệu gồm các chuỗi lặp lại các ký hiệu có biên độ dương, âm luân phiên
nhau. Các chuỗi này sẽ chứa một tần số bằng nửa tốc độ lấy mẫu. Nếu tín
hiệu là vuông, thành phần tần số bằng nửa tốc độ ký hiệu sẽ được gấp đôi
trong miền tần số. Một bộ lọc thông dải hẹp có thể được sử dụng để lấy ra
xung nhịp mẫu từ tín hiệu vuông.

Kỹ thuật này tỏ ra khá hiệu quả với QAM-4 do phương pháp điều
chế này có xác suất lặp lại các ký hiệu có biên độ dương, âm luân phiên
nhau tương đối cao. Tuy nhiên, khi tăng khi bậc điều chế, sẽ tạo ra nhiều

43
điểm chòm sao trên giản đồ hơn làm kỹ thuật này trở nên kém hiệu quả do
xác suất các ký hiệu liên tiếp lặp lại nhỏ hơn nhiều.

5.2.2 Kỹ thuật khôi phục nhịp ký hiệu biên độ tối đa

Kỹ thuật đồng bộ biên độ tối đa xuất phát từ kỹ thuật ước lượng xấp
xỉ cực đại. Kỹ thuật dựa trên nguyên tắc: khi lấy trung bình một vài ký hiệu,
giá trị tuyệt đối biên độ của một tín hiệu sẽ là cao nhất ở điểm lấy mẫu tối
ưu được biểu diễn ở Hình 5.2.

Hình 5.2: Biên độ ký hiệu trung bình là hàm của thời gian

Kỹ thuật đồng bộ biên độ cực đại được thực hiện bằng cách lấy
mẫu tín hiệu thu được với J mẫu một ký hiệu. Do đó, các mẫu J có pha
cách đều nhau. Từ các mẫu này, các giá trị trung bình của J được tính
toán cho mỗi trường hợp pha. Từ các kết quả đó, trường hợp pha có giá
trị trung bình lớn nhất được sử dụng là điểm mẫu để việc bắt đầu khôi
phục nhịp dữ liệu từ tín hiệu thu được.

5.2.3 Kỹ thuật khôi phục nhịp ký hiệu sớm-muộn

Kỹ thuật khôi phục nhịp ký hiệu sớm-muộn cũng dựa trên nguyên
tắc: khi trung bình hóa một vài ký hiệu, giá trị tuyệt đối biên độ của một tín
hiệu là cao nhất ở điểm mẫu tối ưu. Tuy nhiên, không giống như kỹ thuật
đồng bộ biên độ tối đa, lấy mẫu từ tín hiệu thu được J lần mỗi ký hiệu, kỹ

44
thuật đồng bộ sớm-muộn lấy mẫu ba lần một ký hiệu: một mẫu được coi là
mẫu có độ dịch pha tối ưu, một δ ký hiệu trước độ dịch pha tối ưu và một δ
ký hiệu sau độ dịch pha tối ưu. Nếu bộ nhận thật sự lấy mẫu ở độ dịch pha
tối ưu như trong hình 5.3. Giá trị trung bình tuyệt đối của các mẫu sớm sẽ
bằng với giá trị trung bình tuyệt đối của các mẫu muộn. Nếu bộ thu lấy
mẫu ở các điểm không có độ dịch pha tối ưu, các giá trị trung bình sớm và
muộn sẽ không bằng nhau. Khi đó, dựa trên sự khác biệt giữa các mẫu
trung bình sớm và các mẫu trung bình muộn sẽ tiến hành để nâng lên hay
làm trễ một nhịp lấy mẫu.

Hình 5.3: Lẫy mẫu sớm-muộn

5.2.4 Kỹ thuật khôi phục nhịp ký hiệu cắt không

Kỹ thuật đồng bộ cắt không dựa trên nguyên tắc: về mặt trung bình,
cắt không xảy ra ở giữa ký hiệu trước điểm lấy mẫu tối ưu. Hình 5.4 biểu
diễn giản đồ mắt được tạo ra từ một chuỗi QAM-4 ngẫu nhiên xác định vị
trí tương đối của điểm cắt không và lấy mẫu tối ưu. Nếu việc lấy mẫu diễn
ra quá sớm, giá trị cắt không trung bình sẽ diễn ra lớn hơn một nửa ký
hiệu sau thời gian lấy mẫu. Do đó, độ trễ giữa khoảng thời gian lấy mẫu và
cắt không phải được xem xét để nâng lên hay làm trễ một nhịp lấy mẫu.

45
Hinhg 5.4: Giản đồ 4 mắt của QAM

Cũng như kỹ thuật trước, kỹ thuật khôi phục nhịp cắt không cũng
không được ứng dụng rộng rãi cho các modem được thiết kế bằng các
phần tử logic số hoặc modem hoạt động trong các chòm sao phức tạp.
Trở ngại chính khi đưa kỹ thuật này vào các phần tử logic số là rất khó để
có thể tìm ra vị trí của các điểm cắt không từ các mẫu dữ liệu số. Ngoài ra,
một khó khăn khác của kỹ thuật khôi phục nhịp ký hiệu cắt không trong
các chòm sao lớn là sự xuất hiện của nhiều jitter lớn tại các điểm cắt
không và nhiều sự dịch chuyển ký hiệu mà không cắt không. Tuy nhiên,
Daniel Aspel và Klymyshyn đã chỉ ra rằng, kỹ thuật cắt không có thể mở ra
để hoạt động trên các chòm sao phức và đưa ra kỹ thuật dự đoán biên để
tìm ra sự chuyển biên của các ký hiệu thay thế cho kỹ thuật cắt không.

Kỹ thuật dự đoán biên đã vượt qua cả các jitter cắt không do dịch
chuyển ký hiệu mà cắt bậc biên độ không và cho phép sử dụng của sự
dịch chuyển ký hiệu mà không cắt không. Do việc dự đoán biên được
quyết định trực tiếp nên kỹ thuật này không bị ảnh hưởng bởi sự cắt
không ngẫu nhiên của chuỗi dữ liệu. Vì vậy, kỹ thuật dự đoán biên tạo ra
sự giám sát đường cong khi BER thấp. Hơn nữa, những sự dịch chuyển
mà không cắt không vẫn sẽ phải cắt ngưỡng biên độ đã dự đoán. Vì thế,
kỹ thuật dự đoán biên là sự lựa chọn thích hợp cho các hệ thống M-QAM

46
vì khi BERs thấp thì sẽ có rất nhiều sự dịch chuyển ký hiệu mà không cắt
không.

Kỹ thuật dự đoán biên đã và đang được phát triển để đồng bộ cho


các hệ thống M-QAM phức tạp. Tuy nhiên, phương pháp xây dựng của
Daniel Aspel và Klymyshyn khá phức tạp, đòi hỏi nhiều khâu tính toán,
đồng bộ. Trong khóa luận này, tôi tiến hành xây dựng hệ thống khôi phục
nhịp dữ liệu dựa trên phương pháp tương quan cho hệ thống QAM-16.

5.3 Kỹ thuật khôi phục nhịp ký hiệu bằng phương pháp tương quan

Bộ khôi phục nhịp ký hiệu được biểu diễn trong hình vẽ sau:

Tạo
sóng

Tín hiệu Xét tương Tín hiệu


vào quan ra

Hình 5.5: Bộ khôi phục nhịp ký hiệu

Về mặt tổng quan, bộ tạo xung nhịp bao gồm hai khối lớn: khối tạo
lại sóng mang và khối xét tương quan sóng mang với tín hiệu vào. Khối
tạo sóng mang sẽ tạo lại sóng sin số để đưa vào một đầu của bộ xét
tương quan, đầu còn lại của bộ xét tương quan sẽ là tín hiệu QAM thu
được. Bộ xét tương quan sẽ tiến hành chuẩn hóa các tín hiệu và đưa ra
đầu ra ký hiệu gần đúng nhất với ký hiệu thu được.

5.3.1 Bộ xét tương quan

Các khối con của bộ xét tương quan được miêu tả trong hình 5.6

47
Sóng mang

Tín hiệu Chuẩn hóa Xoay pha


vào biên độ

Xét tương Tín hiệu


quan ra

Hình 5.6: Bộ xét tương quan

Để tăng tính chính xác của việc xét tương quan, bộ tạo sóng mang
sẽ phát ra các mẫu sin số của hai chu kì sóng mang. Các mẫu của hai chu
kì sóng mang ngay sau đó sẽ được chuẩn hóa biên độ.

Khối chuẩn hóa biên độ: Khối chuẩn hóa biên độ sẽ nhân các mẫu
của hai chu kỳ sóng mang mang đưa vào với một hệ số thích hợp để biên
độ sóng mang bằng với biên độ của ký hiệu đưa vào. Hệ số nhân chính
bằng mẫu lớn nhất (biên độ) của ký hiệu thu được. Do bản chất của QAM
là một sóng sin được điều chế pha-biên độ nên khối này sẽ hỗ trợ tìm lại
biên độ của sóng QAM.

Khối xoay pha: Sau khi biên độ được chuẩn hóa, các mẫu sóng
mang đã được chuẩn hóa đó sẽ được đưa vào khối xoay pha. Từ các mẫu
của hai chu kì sóng mang có được, khối xoay pha sẽ tiến hành lấy mẫu lại
các mẫu đó cũng với tần số như vậy nhưng dịch pha 10 mức khác nhau.
Việc lấy mẫu lại sẽ tạo ra 10 sóng mang khác pha nhau mà mỗi sóng có
số mẫu nhỏ hơn 10 lần sóng mang ban đầu.

Khối xét tương quan: Đây là khối quan trọng nhất của bộ xét
tương quan. Như đã nói ở trên, khối xoay pha sẽ đưa ra 10 sóng mang số
với 10 mức pha khác nhau đẩy vào bộ xét tương quan. Bộ xét tương quan
sẽ so sánh các mẫu của ký hiệu thu được với các mẫu sóng mang phát ra
từ khối xoay pha. Về mặt chi tiết, khối xét tương quan sẽ trượt ký hiệu thu
được trên từng sóng mang một, sóng mang nào cho sai số tích lũy nhỏ
nhất sẽ được coi là ký hiệu QAM chính xác và được đưa về xử lý ở các
phần tiếp theo. Mô tả chi tiết quá trình xét tương quan sẽ được nêu ở
phần tiếp theo của khóa luận.

48
Hình 5.7: Tương quan của một sóng QAM

5.3.2 Quá trình xét tương quan

5.3.2.1 Quá trình đồng bộ ký hiệu đầu tiên

Khi bộ thu được bật lên và bắt đầu thu được sóng QAM, nhiệm vụ
đầu tiên là phải đồng bộ được ký hiệu đầu tiên rồi lấy đó làm nền để tạo ra
nhịp đồng bộ ký hiệu. Do vậy, quá trình đồng bộ đầu tiên là vô cùng quan
trọng, vì nó liên quan đến nhịp đồng bộ của cả hệ thống. Tuy nhiên, không
phải bắt chuẩn được ký hiệu đầu là xung nhịp lúc nào cũng đúng nên các
ký hiệu sau cũng phải có chế độ tự đồng bộ theo sóng QAM, quá trình tự
đồng bộ sẽ được mô tả ở phần tiếp theo còn trong phần này, tôi sẽ giới
thiệu sâu về cách thức tìm ký hiệu đầu tiên thật chuẩn.

Về mặt tổng quan, ngay khi bộ thu được bật lên, bộ xét tương quan
sẽ liên tục quét tín hiệu đầu vào đến khi tìm được ký hiệu có sai số tích lũy
đủ nhỏ để có thể chấp nhận đó là một ký hiệu. Giả sử lấy 24 mẫu một ký
hiệu, thì sau khi khởi động, bộ xét tương quan sẽ liên tục lấy 24 mẫu đầu
vào bất kể đó là nhiễu, ký hiệu khác hay tín hiệu DC tới khi bắt được một
ký hiệu thật sự. Ta sẽ dễ dàng nhận ra một ký hiệu đúng do khi đó, các

49
mẫu của nó sẽ cho sai số tích lũy nhỏ hơn hẳn so với các mẫu không phải
của một ký hiệu QAM chuẩn. Tuy nhiên, có một số trường hợp đặc biệt
làm quá trình lấy mẫu bị sai cũng như đưa ra một nhịp ký hiệu không
chuẩn.

Các ký hiệu đầu tiên là một chuỗi liên tiếp giống nhau:

Hình 5.8 sẽ mô tả các ký hiệu đầu tiên giống nhau dịch chuyển, giả
sử 0 là thời điểm bộ thu bắt đầu được khởi tạo, bộ xét tương quan trong
bộ thu sẽ liên tục quét đầu vào để tìm chuỗi có sai số tích lũy đủ nhỏ. Hình
5.8a mô tả bộ thu được khởi động trước bộ phát, khi đó, cho đến khi bắt
được ký hiệu đầu tiên, các mẫu trước đó sẽ chỉ là 0 hoặc nhiễu. Hình 5.8b
mô tả bộ thu được bật và thu được một tín hiệu ở giữa chừng, khi đó, các
mẫu trước ký hiệu đầu tiên thực sự tương quan được sẽ là mẫu của một
ký hiệu trước đó.

Trở ngại lớn nhất khi xử lý các ký hiệu liên tục này là nếu ta lấy 24
mẫu cho một ký hiệu QAM, thì bất kì 24 mẫu nào trong vùng các ký tự liên
tiếp (từ mẫu 15 đến mẫu 62 trong hình 5.8) đều sẽ cho sai số tích lũy nhỏ
hơn ngưỡng xét (thậm chí bằng ký hiệu thật sự). Do vậy, sẽ tạo ra xung
nhịp đồng bộ lệch do tác động của chuỗi liên tục này.

Để khắc phục hiện tượng lệch xung nhịp này, ta buộc phải tiến hành
loại bỏ các ký hiệu liên tục cho đến khi bắt được ký hiệu mới. Giả sử ta xét
tín hiệu QAM được lấy 24 mẫu một ký hiệu, nếu ta thấy các mẫu trong
khoảng từ i đến i+23 có sai số tích lũy nằm trong ngưỡng, ta xét tiếp các
mẫu trong khoảng từ i+1 đến i+24 tức là vùng tiếp theo, nếu các mẫu này
có sai số tích lũy lớn hơn ngưỡng tức là đã có một sự nhảy biên độ tại vị
trí này, khi đó, các mẫu trong khoảng từ i đến i+23 sẽ được nhận là một ký
hiệu và nhịp đồng bộ ký hiệu sẽ được phát ra dựa vào ký hiệu đầu tiên
này.

50
a)

b)
Hình 5.8: Các ký tự đầu tiên là chuỗi liên tiếp giống nhau

5.3.2.2 Quá trình tự đồng bộ các ký hiệu sau ký hiệu đầu tiên.

51
Sau khi bắt đúng được ký hiệu đầu tiên, nhịp ký hiệu sẽ được phát
ra dựa vào ký hiệu đó và nhịp này có tần số đúng bằng tần số của tín hiệu
QAM đến. Về mặt lý thuyết thì từ thời điểm này, nhịp ký hiệu tái tạo đã
hoàn toàn đồng bộ với dữ liệu QAM. Tuy nhiên, do có những độ lệch nhất
định do nhiễu khi truyền, quá trình truyền có thể đột ngột bị mất đồng bộ.
Do đó, trong quá trình thu, nhịp đồng bộ cũng phải tự đồng bộ với dữ liệu
thu được để nếu có lỗi thì lỗi đó sẽ không gây ảnh hưởng lớn đến dữ liệu
thu được.

Quá trình tự đồng bộ cũng bao gồm hai phần. Một phần là đồng bộ
các dữ liệu lệch pha nhau, với các dữ liệu này, có thể dễ dàng đồng bộ
chuẩn với nhịp khôi phục. Phần còn lại là dữ liệu liên tiếp không có sự lệch
pha.

Ta lại xét tín hiệu QAM được lấy 24 mẫu một ký hiệu. Nếu sai số tích
lũy của các mẫu trong vùng từ i đến i+23 thỏa mãn nhỏ hơn ngưỡng mà
sai số tích lũy của i+1 đến i+24 lớn hơn ngưỡng tức là tại mẫu i+24 đã có
sự thay đổi pha làm nên không thể bắt được đúng ký hiệu, tại đây, các
mẫu trong vùng từ i đến i+23 được coi là một ký hiệu đúng. Ngược lại, nếu
sai số tích lũy của i+1 và i+24 nhỏ hơn ngưỡng, điều đó chứng tỏ ký hiệu
đó đã lặp lại, ta tạm coi các mẫu trong vùng i đến i+23 là một ký hiệu, rồi
xét tiếp các mẫu trong các vùng i+24 đến i+37 và i+25 đến i+38 như trên
đến khi nhận được sự lệch pha như trên sẽ nắn chỉnh lại.

Chương 6

Khôi phục sóng mang và giải điều chế QAM

6.1 Tổng quan

52
Hiện nay, có hai phương pháp giải điều chế phổ biến là giải điều chế
kết hợp và không kết hợp. Trong hai phương pháp này, giải điều chế
không kết hợp không yêu cầu khôi phục sóng mang trong khi điều này là
rất cần thiết khi tiến hành giải điều chế kết hợp. Một số phương pháp điều
chế như điều chế biên độ hay điều chế dịch pha sóng mang có thể tiến
hành giải điều chế bằng các kỹ thuật giải điều chế không kết hợp. Tuy
nhiên, đối với các phương pháp điều chế khác như QAM đòi hỏi nhiều
kiến thức để xác định sóng mang, nên chỉ có thể sử dụng phương pháp
giải điều chế kết hợp.

Có hai phương pháp tiến hành giải điều chế kết hợp trong QAM:
Phương pháp thứ nhất sử dụng một bộ tạo dao động nội có tần số điều
chỉnh được để có thể thay đổi nhịp giải điều chế. Còn phương pháp thứ
hai sử dụng bộ tạo dao động nội có tần số cố định rồi dùng một bộ giải
quay số để khắc phục sự dịch của tần số và pha sóng mang. Mỗi phương
pháp đều có những ưu, nhược điểm riêng nên sử dụng phương pháp nào
phải quyết định dựa trên các điều kiện cụ thể.

6.2 Khôi phục sóng mang

Nếu bộ dao động nội trong bộ thu không đồng bộ với tín hiệu QAM
thu được, dữ liệu nhận được sẽ không thể khôi phục chuẩn xác. Hình 6.1
biểu diễn sự dịch pha và tần số trong bộ dao động nội. Hình 6.1a biểu diễn
một chòm sao QAM-64 mà được giải điều chế bằng bộ dao động nội có độ
dịch pha và tần số bằng không. Hình 6.1b cũng biếu diễn chòm sao QAM
như vậy nhưng lần này bộ dao động nội dịch pha 10 độ so với sóng QAM.
Trong trường hợp này, chòm sao bị quay đi 10 độ gây ra lỗi bit do các
điểm chòm sao đã dịch chuyển cắt đường giới hạn. Hình 6.1c cũng biểu
diễn chòm sao như hình 6.1a và b nhưng độ dịch pha của bộ dao động nội
lần này không chỉ dừng tại một vị trí mà thay đổi liên tục. Nhìn vào hình vẽ
ta có thể nhận thấy, khi độ dịch pha thay đổi liên tục theo thời gian thì các
điểm chòm sao có quỹ tích là các vòng tròn lồng nhau.

53
Hình 6.1: Kết quả của độ dịch pha sóng mang và tần số

Ta có thể biểu diễn một tín hiệu QAM sai pha như phương trình 6.1:

s (t )  AI (t ) cos( 2f c t   )  AQ (t ) sin( 2f c t   ) (6.1)

Với AI(t) là biên độ của kênh I(đồng pha) như một hàm biến đổi theo
thời gian, còn AQ(t) là biên độ của kênh Q(vuông pha) cũng như một hàm
của thời gian, fc là tần số sóng mang và φ là pha của sóng mang được
điều chế. Nếu tín hiệu QAM được giải điều chế bởi các phương trình cI(t)
và cQ(t) tương ứng với các kênh I,Q như ở Phương trình 6.2 và 6.3.
c I (t )  cos(2f c t   d )

(6.2)
cQ (t )   sin( 2f c t   d )

(6.3)

Với Φd là pha của các tín hiệu được sử dụng để giải điều chế s(t).
Qua đó, sẽ khôi phục được các thành phần đồng pha AI´(t) như phương
trình 6.4 và các thành phần vuông pha AQ´(t) như phương trình 6.5.
1 1
AI' (t )  AI (t ) cos(   d )  AQ (t ) sin(   d ) (6.4)
2 2
1 1
AQ' (t )  AQ (t ) cos(   d )  AI (t ) sin(   d ) (6.5)
2 2

Từ phương trình 6.4 và 6.5, ta thấy rằng các biên độ AI´(t) và AQ´(t)
giảm cos(Φ-Φd) lần so với biên độ thật sự của chúng khi không có sự dịch

54
pha. Do công suất tỉ lệ với bình phương biên độ nên công suất của AI´(t)
và AQ´(t) giảm cos2(Φ-Φd) lần so với công suất thật sự chúng (không có
dịch pha). Ngoài ra, phương trình 6.4 và 6.5 cũng chỉ ra rằng nhiễu xuyên
âm được sinh ra giữa các thành phần đồng pha và vuông pha.

6.3 Các kỹ thuật khôi phục sóng mang

Có hai loại kỹ thuật đồng bộ sóng mang là: gửi kèm (assisted) và
mù (blind). Cơ sở của kỹ thuật cộng tác là phân chia tín hiệu thu được
thành hai tín hiệu: tín hiệu phao tiêu (pilot) và dữ liệu. Còn kỹ thuật đồng
bộ mù lại tiến hành ước lượng pha sóng mang trực tiếp từ tín hiệu điều
chế. Phương pháp này thường được sử dụng trong thực tiễn nhiều hơn vì
khi đó, toàn bộ công suất của bộ phát có thể sử dụng cho thành phần tín
hiệu chứa thông tin.

6.3.1 Kỹ thuật khôi phục sóng mang có gửi kèm tần số phao tiêu
(pilot tone)

Hệ thống sử dụng kỹ thuật khôi phục sóng mang có gửi kèm tần số
phao tiêu phân phân chia tín hiệu thu được thành hai phần: một phần là tín
hiệu có tần số không được điều chế (tone) còn phần còn lại là tín hiệu
thông tin. Tần số gửi kèm thường được cộng vào chính tần số sóng mang
(Hình 6.2) hoặc là tích của tần số sóng mang. Dựa vào đó, bộ nhận sẽ sử
dụng vòng khóa pha để thu lại thành phần sóng mang. Vòng khóa pha sử
dụng phải có băng thông đủ nhỏ để tín hiệu thông tin không ảnh hưởng
nhiều tới sự việc ước lượng sóng mang.

55
Hình 6.2: Tín hiệu phao tiêu được truyền cùng tín hiệu thông tin.

6.3.2 Vòng lặp vuông (Squaring Loop)

Các thiết bị sử dụng vòng lặp vuông được sử dụng rộng rãi để ước
lượng pha của sóng mang đối với các tín hiệu có sóng mang được nén
bên trong PAM. PAM không có năng lượng kết hợp tại tần số sóng mang
nên nếu ta đặt một bộ lọc thông dải để lọc tín hiệu thu được tại tần số
sóng mang thì vẫn sẽ không thể khôi phục sóng mang. Tuy nhiên, có thể
vuông hóa tín hiệu thu được để tạo ra một thành phần tần số gấp đôi tần
số sóng mang. Thành phần tần số này có thể sử dụng để điều khiển một
bộ PLL để tạo ra tín hiệu đồng bộ với sóng mang. Kỹ thuật này được miêu
tả ở Hình 6.3.

Tiếc thay, phương pháp này không thể sử dụng với QAM. Tín hiệu
QAM có công suất bằng nhau trên cả hai nhánh, do đó, nếu vuông hóa
QAM, tín hiệu trên các nhánh sẽ có xu hướng cắt bỏ các tín hiệu tần số
thấp trong khi phải sử dụng chúng mới có thể khôi phục sóng mang.
Nhược này có thể khắc phục bằng các vòng lặp tiếp theo.

Hình 6.3: Tạo quy luật sóng vuông dựa trên PLL cho
việc khôi phục sóng mang

6.3.3 Vòng lặp Costas

56
Vòng lặp Costas được phát triển vào năm 1956 không những khôi
phục sóng mang từ các tín hiệu có sóng mang nén bên trong giống với
thành vòng lặp vuông mà còn có thể khôi phục pha sóng mang của tín
hiệu QAM. Sơ đồ khối của vòng lặp Costas được mô tả trong Hình 6.4.

Tín hiệu thu được chia làm hai nhánh. Nhánh thứ nhất được nhân
với sóng mang đã được khôi phục còn nhánh thứ hai cũng nhân với sóng
mang đó nhưng bị dịch pha 90 độ. Đầu ra các nhánh này được đưa vào
bộ lọc thông thấp. Kết quả của chúng được nhân với nhau để tạo ra tín
hiệu lỗi, tín hiệu này được sử dụng để điều khiển bộ dao động điều khiển
điện thế (VCO).

Hình 6.4: Vòng lặp Costas

6.3.4 Vòng khóa pha phản hồi quyết định

Cả vòng lặp vuông và vòng lặp Costas đều xem các tín hiệu thông
tin là một chuỗi ngẫu nhiên và sử dụng giá trị trung bình thống kê của nó
để khôi phục thông tin sóng mang bên trong nó.

57
Hình 6.5: PLL phản hồi quyết định cho QAM

Thông thường, PLL phản hồi quyết định tạo ra ít nhịp jitter hơn các
bộ không quyết định, các hệ thống khôi phục sóng mang trực tiếp có BER
nhỏ hơn 10-2 do các lỗi bit gây ra tác động không đáng kể lên sự ước
lượng pha sóng mang được tạo ra bởi bộ lọc lặp.

6.4 Giải điều chế QAM sử dụng phương pháp tương quan

Để thuận lợi cho việc tính toán, tôi phát triển hệ thống được biểu
diễn bởi hình 6.6, hệ thống này được thiết kế để phù hợp với việc tính
toán, xét tương quan ký hiệu.

58
Bộ tích I
phân

Chuyển đổi Tạo lại


nhị phân Xét tương sóng mang
A/D quan
sang phẩy Quay 90
động độ

Bộ tích Q
Xung nhịp phân
lấy mẫu
Khôi phục
xung nhịp

Hình 6.6: Hệ thống giải điều chế QAM sử dụng phương pháp tương quan

Bộ A/D: Dữ liệu thu được sẽ được lấy mẫu bằng bộ A/D với xung
nhịp có thể thay đổi được. Do có thể điều chỉnh được nhịp lấy mẫu AD nên
ta có thể thay đổi số lượng mẫu mỗi ký hiệu để tạo thuận lợi cho bộ tính
tương quan.

Khối chuyển đổi nhị phân sang phẩy động: Khối này đã được
miêu tả chi tiết ở chương 4. Do dữ liệu đẩy ra từ khối A/D là dữ liệu nhị
phân số, trong khi quá trình xử lý trên FPGA của hệ thống đòi hỏi tính toán
các số rất lớn, các số nhị phân, số nguyên thông thường không thể đáp
ứng được nên khối nhị phân sang phẩy động sẽ chuyển đổi các số nhị
phân sang khuôn dạng dấu phẩy động để toàn bộ các phép toán của các
khối bên trong sẽ hoàn toàn được tính toán thông qua khối xử lý dấu phẩy
động FPU.

Khối xét tương quan: Khối này đã được mô tả chi tiết ở chương 5,
nhiệm vụ của khối này là tìm đúng điểm bắt đầu và kết thúc của ký hiệu để
có thể tạo ra xung nhịp ký hiệu chuẩn bằng khối khôi phục xung nhịp.
Dữ liệu chuẩn từ khối khôi phục xung nhịp sẽ là dữ liệu đồng bộ mà cả hệ
thống dựa vào để đồng bộ các khối vào nhau và giải điều chế.

59
Khối tạo lại sóng mang, khối quay 90 độ: Hai khối này có nhiệm
vụ tạo lại sóng mang sin và sóng mang cos dựa trên cơ sở nhịp đồng bộ
của khối khôi phục xung nhịp. Sau đó, các sóng mang sẽ được nhân tín
hiệu vào để tạo ra tín hiệu các kênh I,Q. Bộ tích phân có vai trò như một
bộ lọc thông thấp, sẽ khử đi các thành phân xoay chiều, giữ lại thành phần
một chiều chính là vị trí của điểm chòm sao trên các kênh I, Q đó.

Kết luận

Trong khóa luận này, tôi tiến hành thiết kế một bộ điều chế và giải
điều chế QAM-16 trên FPGA. Trước khi xây dựng trên FPGA, tôi đã tiến
hành thiết kế, mô phỏng hệ thống của mình trước trên Matlab. Sau khi
xem xét, lựa chọn giữa nhiều kỹ thuật khác nhau, tôi nhận thấy, kỹ thuật
khôi phục nhịp ký hiệu lấy nền tảng là kỹ thuật tương quan là phù hợp
nhất, có thể thực hiện được nền tôi đã tiến hành thiết kế, xây dựng hệ
thống của mình trên cơ sở của kỹ thuật tương quan.

Sau khi đã thiết kế, mô phỏng hệ thống thành công trên Matlab, tôi
đã tiến hành xây dựng trên FPGA. Bộ điều chế đã được xây dựng thành
công trên FPGA, tín hiệu QAM đã được phát ra trên nhiều băng tần số
khác nhau và có thể quan sát được trên dao động ký. Đối với bộ giải điều
chế, khối tính toán dấu phẩy động để thực hiện các phép tính cơ bản đã
được xây dựng thành công. Nhờ có khả năng tính toán nhanh và mạnh
của khối này, bộ giải điều chế sẽ sớm được hoàn thiện.

Hướng phát triển tiếp theo của đề tài:

- Tiếp tục hoàn thiện khối giải điều chế QAM

60
- Nghiên cứu, triền khai QAM 1024 với tần số ký hiệu cao

- Kết hợp FFT/IFFT để phát đa sóng mang.


TÀI LIỆU THAM KHẢO

[1] Circuit design with VHDL, Volnei A. Pedron, M.I.T press, Massachusetts
Institute of Technology

[2] L. Mintzer, “Soft Radios and Modems on FPGS,” Communications


System Design, pp.52-57, Feb. 2000.

[3] “Quartus II Development Software”, Altera Corporation,


http://www.altera.com/literature/lit-qts.jsp , February 2004.

[4] “802.16TM IEEE Standard for Local and metropolitan area networks,
Part 16: Air Interface for Fixed Broadband Wireless Access Systems,” The
Institute of Electrical and Electronics Engineers, Inc., New York, NY, 2002.

[5] V. Eklund et al., “IEEE Standard 802.16: A Technical Overview of the


Wireless MAN™ Air Interface for Broadband Wireless Access,” IEEE
Communications Magazine, pp. 98-107, June 2002.

[6] APEX 20K Programmable Logic Family, Altera Coporation, website:


http://www.altera.com/literature/ds/apex.pdf

[7] Cyclone II Device Family Data Sheet, website:


http://www.altera.com/literature/hb/cyc2/cyc2_cii5v1_01.pdf

[8] L. Couch, Digital and Analog Communication Systems, Prentice Hall,


Upper Saddle River, NJ, 1997.

[9] L. Yang and L. Hanzo, “Recursive Algorithm for the Error Probability
Evaluation of M-QAM,” IEEE Communications Letters, vol. 4, no. 10, pp.
304-306, October 2000.

[10] W. Reuter, “Source and Synthesizer Phase Noise Requirements for


QAM Radio Applications,” http://www.cti-inc.com/pdfs/QAM_Article.pdf.

61
[11] K. Cho and D. Yoon, “On the General Expression of One- and Two-
Dimensional Amplitude Modulations,” IEEE Transactions on
Communications, vol. 50, no. 7, pp. 1074-1080, 2002.

62

You might also like