Anten thông minh, hay còn gọi là anten thích nghi, đã giải quyết được vấn đề về: Tăng dung lượng trong hệ thống thông tin di động Cho phép thực hiện đa truy nhập theo không gian (SDMA: Spatial Division Multiple Access) Có thể kết hợp hiệu quả với nhiều kỹ thuật khác trong mạng… và rất nhiều lợi ích khác.
Trang 1Đặt vấn đề
Trong xã hội hiện nay, cùng với sự phát triển vượt bậc về chất lượngcuộc sống, về khoa học công nghệ, thông tin di động đã trở thành một nhucầu thiết yếu
Xã hội càng phát triển, nhu cầu đó cũng ngày càng mạnh mẽ, đòi hỏi sựnâng cao cả về số lượng và chất lượng Để thực hiện được các yêu cầu cảithiện và nâng cao chất lượng dịch vụ đó, người ta đã sử dụng một côngnghệ mới, gọi là công nghệ anten thông minh (anten thích nghi)
Anten thông minh, hay còn gọi là anten thích nghi, đã giải quyết đượcvấn đề về:
- Tăng dung lượng trong hệ thống thông tin di động
- Cho phép thực hiện đa truy nhập theo không gian (SDMA: SpatialDivision Multiple Access)
- Có thể kết hợp hiệu quả với nhiều kỹ thuật khác trong mạng… và rấtnhiều lợi ích khác
Vậy, anten thông minh là gì?
Thực ra, ý tưởng về anten thông minh đã xuất hiện từ lâu Người ta đãnghĩ đến việc sử dụng anten trạm gốc có giản đồ hướng không cố định nhưcác anten vô hướng hay dẻ quạt vẫn thường được sử dụng
Anten thông minh là anten có giản đồ hướng thay đổi linh hoạt, phùhợp với điều kiện truyền sóng hiện tại nhằm đảm bảo tránh được tối đanguồn nhiễu và tăng khả năng thu thông tin từ nguồn tín hiệu mong muốn
Vì sao lại sử dụng anten thông minh?
Trước đây, khi các trạm gốc sử dụng anten thông minh mà phải bámtheo đồng thời một số lượng lớn người sử dụng mạng, thì số lượng tínhtoán trong hệ thống là rất lớn Đây chính là nguyên nhân chủ yếu cản trởviệc đưa anten thông minh vào mạng thực tế Đến nay, với sự ra đời của
Trang 2các bộ xử lý tín hiệu số (DSP: Digital Signal Processor), các bộ xử lý đamục đích, cũng như các kỹ thuật xử lý tín hiệu bằng phần mềm đã pháttriển hơn rất nhiều, công nghệ anten thông minh trở nên khả thi trong các
hệ thống thông tin di động
Trước những lợi ích khi sử dụng anten thông minh và khả năng triểnkhai trên thực tế của hệ thống, đề tài của chúng tôi đi vào tìm hiểu cấu trúcanten và các phương pháp xử lý tín hiệu ở trạm gốc, từ đó lập chương trình
mô phỏng về anten thông minh, nhằm kiểm tra, khảo sát một số đặc điểmcủa anten
Nội dung nghiên cứu gồm 3 chương :
- Chương I : Tổng quan về anten thông minh
- Chương II: Matlab và Matlab GUI
- Chương III : Giao diện mô phỏng anten thông minh, đặc điểm
và cách khai thác
Trang 3CHƯƠNG I : TỔNG QUAN VỀ ANTEN THÔNG MINH
1.1 Khái niệm anten thông minh (Adaptive Antenna)
Từ ý tưởng về anten thông minh,
ta có thể hiểu đơn giản nguyên tắc
làm việc của anten thông minh qua
hình minh hoạ sau:
1.2 Cấu tạo của anten thông minh
dụ như các anten được
điều khiển bằng cơ học
Ngày nay, với sự phát
triển của khoa học, người
ta đã sử dụng các bộ xử
lý tín hiệu để điều khiển
các tham số của dàn
anten Có thể khái quát
cấu tạo của anten thông minh qua sơ đồ cấu trúc như hình trên
Anten thông minh là hệ thống gồm có 3 thành phần chính sau:
•Dàn anten: Gồm các phần tử là các anten, có thể có các dạng hìnhhọc khác nhau:
Trang 4Như vậy, bộ tạo dạng là một bộ xử lý sử dụng kết hợp với dàn
để thực hiện việc lọc không gian một cách linh hoạt
•Bộ xử lý thích nghi
Bộ xử lý này điều khiển bộ tạo dạng để điều chỉnh một cách tựđộng các trọng số về giá trị tối ưu theo một tiêu chuẩn cụ thể và theo mộtthuật toán phù hợp Đây được coi là trí tuệ của anten thông minh
Bộ xử lý thích nghi điều khiển bộ tạo dạng để tối ưu hoá các trọng sốtheo những tiêu chuẩn nhất định Trong thông tin di động, 4 tiêu chuẩnthường được sử dụng để thu được trọng số tối ưu là:
Trang 5_ Sai số trung bình bình phương cực tiểu (MMSE : MinimumMean Square Error)
_ Tỉ số tín trên tạp nhiễu cực đại (MSINR: Maximum Signal toInterference plus Noise Ratio)
_ Phương sai nhỏ nhất (MV: Minimum Variance)
_ Ưu độ tối đa (ML: Maximum Likelihood)
Đây chính là các cơ sở xây dựng các thuật toán tối ưu sử dụng trong bộ
xử lý thích nghi Từ các tiêu chuẩn này, người ta đã xây dựng các thuậttoán tối ưu, cụ thể:
_ Thuật toán: Trung bình bình phương nhỏ nhất (LMS: LeastMean Square)
_ Thuật toán: Đảo ma trận mẫu (SMI: Sample Matrix Inversion)_ Thuật toán: Bình phương cực tiểu hồi quy (RLS: RecursiveLeast Square)
1.2 Các lợi ích khi sử dụng anten thông minh
Sử dụng anten thông minh đem lại rất nhiều lợi ích cho thông tin diđộng Có thể tóm tắt một số lợi ích cụ thể sau:
a Cải thiện chất lượng tín hiệu
Nhờ sử dụng dàn thích nghi, ta thu được một độ lợi nhất định, tuỳ thuộcvào số lượng phần tử dàn Điều này tương đương với việc cải thiện tỉ sốtín/tạp (SNR)
Trong môi trường truyền dẫn đa đường, nếu sử dụng bộ xử lý tín hiệutrên cả miền không gian và thời gian như trường hợp bộ tạo dạng băngrộng thì ta có thể thu được độ lợi phân tập lớn hơn
Trang 6Lấy ví dụ đơn giản trong trường hợp 2 đường tới Khi 2 đường này làkhông tương quan về không gian, tia tới và tia trễ có góc tới lần lượt là 00
và 300, ta ước lượng được tỉ số tín/tạp nhiễu (SINR) đầu ra như sau:
SINRout [dB] = 10log10 M + 10log10 (2) + SNRin [dB]
Như vậy, trong môi trường đa đường ta đã thu được độ lợi phân tập là3dB Qua biểu thức trên, ta thấy, môi trường càng chịu ảnh hưởng của đađường càng có độ lợi phân tập lớn
b Mở rộng vùng phủ
Với cùng công suất phát ra ở trạm gốc và máy di động, anten thôngminh có thể tăng cự ly phủ sóng nhờ tăng độ lợi của anten trạm gốc do tạo
ra được búp sóng anten hẹp hơn
Tại các trạm gốc, với một công suất yêu cầu tối thiểu nào đó, nếu tatăng độ lợi anten trạm gốc thì tuyến kết nối thông tin chịu được suy haođường truyền lớn hơn (như công thức phần a đã chỉ ra), tức là tuyến cókhoảng cách xa hơn Như vậy, anten thông minh mở rộng được phạm vi
c Giảm công suất phát
Như đã phân tích ở trên, sử dụng anten thông minh cho ta độ lợi phântập Điều này dẫn tới việc giảm công suất phát cần thiết ở trạm gốc Nếu độnhạy yêu cầu là như nhau thì công suất phát yêu cầu của trạm gốc sử dụnganten thông minh M phần tử giảm đi M− 1 lần Giảm công suất phát có lợihơn với sức khoẻ người sử dụng điện thoại và làm cho chi phí lắp đặt giảm
vì các bộ khuếch đại công suất tần số cao thường rất đắt, mà với dàn Mphần tử, đầu ra của bộ khuếch đại trạm gốc có thể giảm tới M− 2
Trang 7CHƯƠNG II : MATLAB VÀ MATLAB GUI
2.1 Môi trường Matlab
Matlab (Matrix Laboratory) là một công cụ phần mềm của MathWorkvới giao diện cực mạnh cùng những lợi thế trong kỹ thuật lập trình, đápứng được những vấn đề hết sức đa dạng Matlab cho phép giải quyết cácloại bài toán khác nhau, đặc biệt là hệ phương trình tuyến tính, phi tuyếnhay các bài toán ma trận với kết quả nhanh chóng và chính xác Được tíchhợp cùng với một số ngôn ngữ lập trình thông dụng khác như: C, C++,Fortran, Java… do đó, những ứng dụng của Matlab có thể được chuyển đổimột cách dễ dàng, mềm dẻo sang những ngôn ngữ đó
Với hàng loạt các ưu điểm đó, Matlab đã được sử dụng rộng rãi trên rấtnhiều lĩnh vực như: điện, điện tử, điều khiển tự động…
Một trong các ứng dụng của Matlab được chúng tôi khai thác và sửdụng là phần xây dựng giao diện người sử dụng (GUI) GUI là một trongnhững công cụ giúp cho Matlab có thể trở nên thân thiện hơn với nhữngngười sử dụng, cho phép người sử dụng nhập tham số, quan sát kết quảmột cách nhanh chóng và trực quan
Trong thư viện của Matlab đã có sẵn một số GUI ở các phương diệnkhác nhau như: xử lý tín hiệu, mô phỏng, khảo sát đặc tính hệ thống, đồhoạ… Bên cạnh đó, Matlab còn cho phép người sử dụng tự thiết lập giaodiện theo ý định và mục đích riêng của mình
2.2 Matlab GUI
a Vì sao chọn công cụ Matlab GUI
Trang 8Matlab cung cấp một bộ các công cụ để tạo GUI GUI (Graphic UserInterface) – là giao diện người sử dụng Đặc điểm chính khi tạo ra các GUInói chung là giúp cho người sử dụng có thể thực hiện được một công việcnào đó một cách nhanh chóng, chính xác và trực quan mà không cần biếtđến thực chất thuật toán hay trình tự lập trình như thế nào
Khi làm việc trong môi trường Matlab, ta có thể gõ lệnh trực tiếp vàocửa sổ lệnh (Command Window) Khi số câu lệnh tăng lên, hoặc trongtrường hợp chỉ cần thay đổi một số giá trị các biến và thực hiện lại toàn bộcác lệnh cũ, Matlab cho phép ta lưu các câu lệnh vào một tệp có phần đuôi
là m (m file) Thực hiện các lệnh trong file m này cũng như thực hiện lầnlượt chúng trong cửa sổ lệnh Nhờ có tệp này, ta có thể thực hiện công việclập trình để thực hiện tính toán các công việc nhất định
Việc tạo GUI thuận tiện hơn rất nhiều so với việc sửa tham số trực tiếptrong m file của Matlab, vì khi sử dụng GUI, người sử dụng GUI có thể chỉ
là những người học không chuyên hay chỉ muốn tìm hiểu một đặc điểmnào đó trên một lĩnh vực nhất định Nếu vậy, kể cả khi có code (m file)trong tay, việc thay đổi tham số để có thể có những kết quả mong muốncũng trở nên rất khó khăn
Bộ công cụ của Matlap cho phép ta tạo ra những giao diện gần gũi hơnkhi đã có trong tay thuật toán và ý nghĩa của từng tham số trong thuật toán
đó
b Giới thiệu về GUI và việc xây dựng một GUI theo mục đích riêngMatlab tạo các GUI như một cửa sổ hình chứa các thành phần có thể lậptrình được Để các thành phần của GUI có thể thực hiện chức năng nào đókhi người sử dụng kích hoạt thành phần (ví dụ như ấn một nút), ta phải lậptrình cho từng thành phần một Như vậy, để tạo ra 1 GUI ta cần thực hiện 2nhiệm vụ cơ bản:
Trang 9- Triển khai các thành phần của GUI
- Lập trình cho các thành phần GUI vừa tạo
Khi tạo, lưu và chạy GUI, Matlab tự động tạo cho ta 2 file:
- Một m-file chứa mã (code) để quản lý sự khởi tạo và vận hành củagiao diện
GUI : Graphical User Interface (giao diện người
sử dụng) là giao diện người dùng được xây dựng
bằng các thành phần đồ hoạ - các thành phần của
GUI - như các nút, các vùng văn bản, các thanh
trượt và các menu Nếu GUI được thiết kế tốt, nó có
thể trở nên trực quan với người sử dụng
Bằng việc cung cấp giao diện giữa người sử dụng và các mã ứng dụng
ẩn, các GUI cho phép người sử dụng vận hành ứng dụng mà không cầnbiết các câu lệnh để đưa ra các kết quả mong muốn Vì thế các ứng dụngcung cấp GUI dễ học và dễ sử dụng hơn so với các dòng câu lệnh
2.4 GUIDE _ môi trường trình bày GUI
GUIDE cung cấp một bộ các công cụ để tạo các GUI Các công cụ nàyđơn giản hoá rất nhiều quy trình trình bày và lập trình một GUI
Khi mở một GUI trong GUIDE, nó được trình bày trong trình soạn thảotrình bày (Layout Editor), là panel điều khiển cho tất cả các công cụ GUI
Trang 10Layout Editor cho phép bạn trình bày một GUI nhanh chóng và dễ dàngbằng cách đưa vào các thành phần : Nút ấn, thực đơn, các trục… Các thànhphần trong GUI được chỉ ra trong hình bên :
Chức năng cụ thể của các thành phần trong hình sẽ được trình bày cụthể trong phần 2.6
Matlab tạo các GUIDE như một cửa sổ hình chứa các uicontrol objects.Chúng ta phải lập trình các thành phần để biểu diễn các thao tác chúng tamuốn nó thực hiện khi người sử dụng kích hoạt vào thành phần trong GUI.GUIDE cơ bản là một bộ các công cụ trình bày Dù vậy GUIDE vẫn tạomột M_file chứa mã quản lý sự khởi tạo vận hành của GUIDE M_file nàycung cấp một khung công việc cho sự thực hiện các callback Các hàm sẽchạy khi người sử dụng kích hoạt các thành phần trong GUI
Khi lưu hoặc chạy GUI, GUIDE sẽ tự động sinh ra 2 file:
- 1 file FIG
- 1 file M
2.5 GUI FIG_file và M_file
Hai file FIG và M được GUIDE tạo ra khi chúng ta lưu hoặc chạy lầnđầu tiên
- Fig - file : là file có phần mở rộng “.fig”, file này chứa một sự mô tảđầy đủ sự trình bày hình ảnh GUI và các thành phần của GUI như : các nút
ấn, các menu, các trục… Khi thay đổi sự trình bày GUI trong LayoutEditor thì những thay đổi đó sẽ được lưu trong FIG_file
- M - file : là file có phần mở rông “.m”, file này bao gồm các lệnhcallback với các thành phần của nó Khi lưu hoặc chạy GUI từ LayoutEditor lần đầu tiên, GUIDE tạo ra GUI M_file với các đuôi trống cho mỗi
Trang 11lệnh callback Sau đó chúng ta có thể sử dụng trình M_file để lập trìnhcallback đó
Có thể thêm mã cho callback để nó biểu diễn chương trình mong muốnhoặc sự vận hành công việc đang thực hiện M_file cần 2 chứ năng đểthêm mã :
+ Chức năng mở (Openning Fcn): Thực hiện các nhiệm vụ trước khiGUI hiển thị tới người sử dụng
+ Chức năng xuất (Output Fcn) : Xuất biến tới dòng lệnh nếu cần
2.6 Tạo GUI
2.6.1 Mở một GUI mới trong Layout Editor
Mở GUI bằng cách gõ “guide” vào dấu nhắc trong cửa sổ CommandWindos hoặc chọn menu File
→ New → GUI Trên màn
không phù hợp với GUI cần
tạo hoặc người sử dụng muốn
bắt đầu với GUI trống
- GUI with Uicontrol, GUI with Axes and Menu, Modal QuestionDialog : là các mẫu GUI với các thành phần có sẵn có thể sử dụng khi mẫu
đó phù hợp với GUI cần tạo
Trang 12Chúng ta có thể chọn để lưu GUI ngay lập tức dưới một tên khác bằngcách chọn menu file → Save as Mặt khác GUI nhắc ta làm như vậy khichạy GUI lần đầu.
- Chọn View → Property Inspector
- Chọn Units sau đó chọn Inches từ Popup menu
- Chọn biểu tượng + ở phần position
Trang 13- Gõ toạ độ x, y của điểm ở góc dưới bên trái và độ rộng, chiều cao.
- Lập lại đặc tính Units về Characters
- Chọn Align Objects… trong menu Tools
- Thực hiện các lưới trong công cụ căn chỉnh :
+ Kích thước 20 pixels giữa các nút theo phương dọc
+ Căn trái theo phương ngang
- Nhấn OK
Trang 142.7 Lập trình GUI
2.7.1 Thiết lập đặc tính cho các thành phần GUI
Để thiết lập đặc tính cho mỗi thành phần GUI, chọn property Inspector
từ menu View (hoặc click
chuột phải vào thành phần
tên của GUI Tên này được
hiển thị ở đỉnh của GUI
- Đặc tính String :
Trang 15Có thể thiết lập nhãn cho một thành phần GUI bằng đặc tính String của
Đặc tính Tag phải phù hợp với đặc tính callback
2.7.2 Các thành phần trong GUI
- Push button :
Các nút ấn tạo một hành động khi được nhấn Khi người sử dụng clickchuột lên nút, nó biểu hiện sự bị nén, khi nhả chuột, nút trông cao lên vàcallback của nó vận hành
- Toggle Button (Nút T) :
Các nút này tạo một thao tác và chỉ thị một trạng thái nhị phân (Ví dụ :Bật hay tắt) Khi click chuột vào nút, nó trông như bị ấn và giữ nguyên nhưthế cho đến khi nhả nút, khi đó callback vận hành Một lần click sau tạonút trở lại trạng thái không bị ấn và lại chạy callback của nó
- Radio Button (Nút R) :
Các nút R tương tự như các nút kiểm tra, nhưng là để có thể loại trừtương hỗ trong một nhóm các nút R liên hệ với nhau (Nghĩa là chỉ có 1 nút
Trang 16ở trạng thái được chọn trong một thời điểm cho trước) Để kích hoạt nút R,click chuột lên thành phần, sự biểu diễn chỉ thị trạng thái của nút.
- Check Box (Các hộp kiểm tra) :
Hoạt động khi được kiểm tra và chỉ thị trạng thái là được kiểm tra haykhông được kiểm tra Hộp kiểm tra hữu ích vì nó cấp cho người sử dụngcác lựa chọn độc lập để thiết lập chế độ (Ví dụ : Biểu diễn 1 thanh công cụhay tạo nguyên mẫu hàm callback với đặc tính Value chỉ trạng thái : Value
= 1 → Hộp được kiểm tra; Value = 0 → hộp không được kiểm tra)
- Edit Text (Văn bản soạn thảo) :
Điều khiển văn bản soạn thảo là lĩnh vực cho phép người sử dụng nhậphay thay đổi các xâu văn bản Sử dụng văn bản soạn thảo khi muốn vănbản soạn thảo là đầu vào Đặc tính String chứa văn bản nhập bởi ngườidùng
- Static Text (Văn bản cố định) :
Được sử dụng để dán nhãn các sự điều khiển, cung cấp, hướng dẫn chongười sử dụng, chỉ thị các giá trị tương đương với 1 thanh trượt và khôngthể thay đổi nó
- Slider (Thanh trượt) :
Nhận dữ liệu vào dạng số trong khoảng rõ rang bằng cách cho phépngười sử dụng dịch chuyển thanh trượt Người sử dụng dịch chuyển thanhbằng cách ấn và kéo thanh trượt Vị trí của thanh chỉ ra giá trị của số
- Frame (Khung) :
Là các hộp bao các vùng cửa sổ hình Khung làm giao diện dễ hiểu hơnnhờ sự nhóm các cụm điều khiển rõ ràng Khung không có thủ tục callbacktương ứng và chỉ có các uicontrol có thể xuất hiện trong khung
- List Boxes (Hộp danh mục) :