TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG BÁO CÁO TIỂU LUẬN Lớp đối tượng trong C++ Viết một chương trình Python ứng dụng trong ngành Công nghệ kỹ thuật Điện tử Viễn thông SVTH ĐÀO MẠNH CƯỜNG Mã[.]
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO TIỂU LUẬN Lớp đối tượng trong C++ Viết một chương trình Python ứng dụng trong ngành Công nghệ
kỹ thuật Điện tử Viễn thông
SVTH : ĐÀO MẠNH CƯỜNG
Mã SV : 20810510090 Lớp : D15DT&KTMT
HÀ NỘI – 2023
Trang 2MỤC LỤC
Trang MỤC LỤC A
MỞ ĐẦU………1
CHƯƠNG I: SOFTWARE DEFINEF RADIO ( SDR) LÀ GÌ ? 2
1 Giới thiệu về Software Defined Radio (SDR) ……… 2
1.1 Lịch sử hình thành ……….……… 2
1.2 Software Defined Radio là gì? 2
1.3 Lợi ích của Software Defined Radio (SDR)……… 4
1.3 Ứng dụng SDR ……… ……… 5
CHƯƠNG II: GIỚI THIỆU VỀ BỘ THU VÔ TUYẾN RTL2831 SDR ……… 6
2.Giới thiệu về Bộ thu vô tuyến RTL2831 SDR……….6
2.1 Đặc điểm và ứng dụng của RTL2831 SDR……….6
2.2 Kiến trúc và nguyên lý hoạt động của RTL2831 SDR ……… 7
CHƯƠNG III: CHUẨN BỊ MÔI TRƯỜNG PHÁT TRIỂN CHO VIỆC SỬ DỤNG RTL2831 SDR……….7
3.1 Cài đặt phần mềm hỗ trợ RTL2831 SDR ……… 7
3.2 Cấu hình môi trường phát triển ……… 8
CHƯƠNG IV: CHƯƠNG TRÌNH C++ ỨNG DỤNG THU SÓNG FM BẰNG RTL2831 SDR 8
4.1 Tạo kết nối với RTL2831 SDR………… ……… 8
4.2 Thiếp lập thông số thu sóng FM ………… ……… 10
4.3 Tiến hành thu sóng FM……… 11
4.4 Xử lý và hiển thị âm thanh thu được ………… ……… 12
CHƯƠNG V: VIẾT MỘT CHƯƠNG TRÌNH C++ ỨNG DỤNG TRONG NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG 14
Trang 3KẾT LUẬN 16 TÀI LIỆU THAM KHẢO 17
MỞ ĐẦU
Kỷ nguyên số đang mang đến những bước tiến vượt bậc trong lĩnh vực Viễn thông, mở ra nhiều cơ hội và thách thức cho công nghệ kỹ thuật Điện tử Trong
số đó, việc thu sóng vô tuyến đã trở thành một phần quan trọng không thể thiếu trong việc truyền tải thông tin từ không gian và tạo ra các ứng dụng tiên tiến trong viễn thông và truyền thông
Trong nền công nghiệp hiện đại, Bộ thu vô tuyến RTL2831 SDR đã nhanh chóng thu hút sự quan tâm của các nhà nghiên cứu và kỹ sư trong lĩnh vực Công nghệ kỹ thuật Điện tử Viễn thông Với giá thành thấp, kích thước nhỏ, khả năng nhận và xử lý tín hiệu từ nhiều dải tần số khác nhau, RTL2831 SDR trở thành một công cụ hữu ích trong việc nghiên cứu, phát triển và triển khai các ứng dụng không dây đa dạng
Trước tầm quan trọng và tiềm năng của Bộ thu vô tuyến RTL2831 SDR, tiểu luận này tập trung vào việc tìm hiểu, nghiên cứu và phát triển chương trình ứng dụng sử dụng RTL2831 SDR trong lĩnh vực Công nghệ kỹ thuật Điện tử Viễn thông Chúng ta sẽ khám phá kiến trúc và nguyên lý hoạt động của RTL2831 SDR, chuẩn bị môi trường phát triển, và xây dựng một chương trình ứng dụng thu sóng FM sử dụng RTL2831 SDR
Trang 4CHƯƠNG I: SOFTWARE DEFINEF RADIO ( SDR) LÀ GÌ ?
1 Giới thiệu về Software Defined Radio (SDR) ?
1.1 Lịch sử hình thành
Từ lần truyền không dây đầu tiên vào khoảng năm 1890 , các kỹ thuật truyền
vô tuyến đã liên tục phát triển, cung cấp cho người dùng khả năng duy trì kết nối với tốc độ truyền ngày càng tăng Kỷ nguyên vô tuyến xuất hiện lần đầu tiên vào giữa năm 1930, vào thời điểm mà độ rộng băng tần hạn chế được sử dụng cho liên lạc thoại analog Sau đó, đến kỷ nguyên vàng của truyền phát sóng vào những năm 50 với các chương trình phát sóng truyền hình tương tự tiêu tốn nhiều băng thông hơn nhưng mang lại trải nghiệm phong phú cho khách hàng Khi các máy tính trở nên nhỏ hơn và mạnh hơn, đến những năm 60, chúng bắt đầu trở nên hữu ích như một phương tiện liên lạc trong khoảng cách xa, sử dụng
cả kết nối có dây qua ARPANET (sau này trở thành Internet) và vệ tinh không dây ALOHANET
Điện thoại di động cũng xuất hiện vào khoảng thời gian này , cho phép người dùng thiết lập liên lạc bằng giọng nói không dây từ bất kỳ nơi công cộng hoặc phương tiện nào, mặc dù điện thoại di động ban đầu khó vận hành và di chuyển
do khối lượng và trọng lượng của chúng Nhiều điện thoại hiện đại giờ đây gần như là máy tính xách tay, cung cấp khả năng truy cập vào cả mạng di động và Internet, đồng thời đạt được kết nối không dây với tốc độ mà thế hệ trước không thể tưởng tượng được
1.2 Software Defined Radio là gì?
Software Defined Radio hoặc được gọi ngắn gọn là software radio đã trở thành mục tiêu phát triển của các ngành công nghiệp sử dụng sóng vô tuyến trong những năm gần đây Để đáp ứng với sự phát triển nhanh chóng theo cấp số nhân
Trang 5về cách thức và phương tiện trong vấn đề giao tiếp – truyền thông dữ liệu Software Defined Radio (SDR) mang đến sự linh hoạt, tiết kiệm chi phí và sức mạnh để thúc đẩy truyền thông về lâu dài với những lợi ích kể trên được các nhà cung cấp dịch vụ và nhà phát triển sản phẩm nhận ra và đưa đến người dùng Nguồn gốc phát triển của SDR ngày nay là kết quả của một thời gian dài cải tiến các công nghệ lạc hậu ban đầu đến việc ứng dụng sức mạnh của các chip xử lý ngày nay
Nói một cách đơn giản Software Defined Radio được đĩnh nghĩa là : “ Radio trong đó một số hoặc tất cả các chức năng của lớp vật lý được điều khiển bởi phần mềm ”
Máy bộ đàm là bất kỳ loại thiết bị nào truyền hoặc nhận tín hiệu không dây ở phần tần số vô tuyến (RF) của phổ điện từ để tạo điều kiện thuận lợi cho việc truyền thông tin Trong thế giới ngày nay, radio tồn tại trong vô số vật dụng như điện thoại di động, máy tính, thiết bị mở cửa ô tô, xe cộ và tivi,
Các thiết bị vô tuyến dựa trên phần cứng truyền thống hạn chế chức năng chéo
và chỉ có thể được sửa đổi thông qua can thiệp vật lý Điều này dẫn đến chi phí sản xuất cao hơn và tính linh hoạt kém trong việc hỗ trợ nhiều tiêu chuẩn dạng sóng Ngược lại, công nghệ Software Defined Radio (SDR) cung cấp một giải pháp hiệu quả và tương đối rẻ tiền cho vấn đề này, cho phép các thiết bị không dây đa chế độ, đa băng tần và đa chức năng có thể được tăng cường bằng cách nâng cấp phần mềm
1.2 Kiến trúc Software Defined Radio (SDR)
SDR định nghĩa một tập hợp các công nghệ phần cứng và phần mềm trong đó một số hoặc tất cả các chức năng vận hành của đài (còn được gọi là xử lý lớp vật lý) được triển khai thông qua phần mềm hoặc phần sụn có thể sửa đổi hoạt động trên các công nghệ xử lý có thể lập trình Các thiết bị này bao gồm mảng cổng lập trình trường (FPGA), bộ xử lý tín hiệu số (DSP), bộ xử lý mục đích chung (GPP), Hệ thống trên Chip (SoC) có thể lập trình hoặc các bộ xử lý có thể lập
Trang 6trình dành riêng cho ứng dụng khác Việc sử dụng các công nghệ này cho phép thêm các tính năng và khả năng không dây mới vào các hệ thống vô tuyến hiện
có mà không yêu cầu phần cứng mới
1.3 Lợi ích của Software Defined Radio (SDR)
SDR có nhiều lợi ích to lớn không chỉ với nhà sản xuất hay cung cấp mà còn
cả người dùng
Đối với các nhà sản xuất thiết bị vô tuyến và nhà tích hợp hệ thống, SDR cho phép:
Một nhóm các “sản phẩm” vô tuyến sẽ được triển khai bằng cách sử dụng kiến trúc nền tảng chung, cho phép các sản phẩm mới được đưa ra thị trường nhanh hơn
Phần mềm được sử dụng lại trên các "sản phẩm" vô tuyến, làm giảm sự phát sinh đáng kể chi phí
Lập trình lại từ xa hoặc cập nhật , cho phép "sửa lỗi" xảy ra trong khi đài đang hoạt động, do đó giảm thời gian và chi phí liên quan đến vận hành và
bảo trì
Đối với các nhà cung cấp dịch vụ vô tuyến, SDR cho phép:
Các tính năng và khả năng mới sẽ được thêm vào cơ sở hạ tầng hiện có mà không yêu cầu chi phí vốn lớn mới, cho phép các nhà cung cấp dịch vụ cập nhật mạng của họ gần như lập tức
Việc sử dụng một nền tảng vô tuyến chung cho nhiều thị trường, giảm đáng kể hỗ trợ khu vực và chi phí vận hành
Tải xuống phần mềm từ xa, thông qua đó có thể tăng dung lượng, có thể kích hoạt nâng cấp khả năng và có thể thêm các tính năng tạo doanh thu mới
Đối với người dùng :
Trang 7 Giảm chi phí trong việc cung cấp cho người dùng cuối khả năng truy cập mạng không dây phổ biến giao tiếp
Cho phép họ giao tiếp với bất kỳ ai họ cần, bất cứ khi nào họ cần và theo bất kỳ cách nào phù hợp
1.4 Ứng dụng SDR
Công nghệ SDR là một kiến trúc phần cứng kết hợp phần mềm để thực hiện xử
lý các tín hiệu vô tuyến thu được trong không gian; chính sự kết hợp này đã cho phép người dùng tùy biến phần cứng thu/phát sóng vô tuyến thành những thiết bị
đa dạng như:
Thu/phát tín hiệu, nghiên cứu, phát triển giao thức truyền tải dữ liệu (4G, 5G, Wifi, ) trên cùng thiết bị phần cứng ban đầu, việc còn lại là người dùng sử dụng khả năng lập trình để xử lý các tín hiệu thu được; trên thực tế người dùng có thể kéo/thả các khối chức năng (function block) trên GNURadio để xử lý dữ liệu hoặc đơn giản là sử dụng phần mềm có sẵn để thực hiện một số nhu cầu nhất định trên cùng một phần cứng (nghe FM, thu tín hiệu vệ tinh, nghe lén đàm thoại
vô tuyến, )
Tăng khả năng di động, linh động trong tác chiến quân sự, đây là một tính năng khá hay trong việc ứng dụng thực tế của SDR, nó còn được biết đến với tên gọi Joint Tactical Radio System (JTRS - tạm dịch: Hệ thống sóng vô tuyến tác chiến hiệp đồng) Trên chiến trường, việc thống nhất các tần số thu/phát là một việc quan trọng và phải bảo đảm tính bí mật, tránh tình trạng nghe lén của đối phương
có thể xảy ra; thông qua việu tùy biến, cấu hình các thông số bằng phần mềm vào thiết bị SDR sẽ giúp cho việc truyền tải thông tin qua sóng vô tuyến được nhanh chóng, bí mật mà không cần phải thay đổi thiết kế phần cứng ban đầu, tăng khả năng hiệp đồng tác chiến trên chiến trường trong tình huống có nhiều liên minh quân sự tham gia Để bảo đảm tính bí mật của dữ liệu truyền, kỹ thuật nhảy tần tốc độ cao hoặc trải phổ được hỗ trợ thông qua sử dụng các chip xử lý ADC tốc độc cao như FPGA
Trang 8Dịch vụ viễn thông thương mại, việc ứng dụng các công nghệ phần cứng SDR vào viễn thông thương mại đã góp phần giảm giá thành nâng cấp phần cứng tại các trạm BTS vốn có giá thành không hề nhỏ; việc phát triển giao thức truyền dẫn sử dụng phần mềm và nạp lại vào phần cứng ban đầu sẽ giúp nâng cấp tính năng của trạm BTS (ví dụ: cập nhật phần mềm vào SDR cho phép chuyển đổi từ
mạng UMTS sang HSPA và thậm chí chuyển thành mạng LTE/4G)
CHƯƠNG II: GIỚI THIỆU VỀ BỘ THU VÔ TUYẾN RTL2831 SDR
2.Giới thiệu về Bộ thu vô tuyến RTL2831 SDR:
Bộ thu vô tuyến RTL2831 SDR (Software Defined Radio) là một thiết bị thu
sóng vô tuyến được phát triển dựa trên chip RTL2831 Đây là một trong những thiết bị SDR phổ biến và có giá thành thấp, thu hút sự quan tâm của cộng đồng nghiên cứu và yêu thích công nghệ truyền thông không dây
2.1 Đặc điểm và ứng dụng của RTL2831 SDR:
RTL2831 SDR có một số đặc điểm nổi bật:
Giá thành thấp: RTL2831 SDR được sản xuất hàng loạt, giúp giảm đáng kể chi phí so với các thiết bị thu sóng truyền thống
Khả năng nhận và xử lý tín hiệu rộng: RTL2831 SDR có khả năng nhận và
xử lý tín hiệu từ dải tần số rộng, bao gồm cả sóng AM, FM, DAB, ADS-B,
và nhiều dải tần số khác
Linh hoạt và dễ dàng cấu hình: Thiết bị này có thể được cấu hình và điều chỉnh phần cứng và phần mềm để phù hợp với các yêu cầu ứng dụng cụ thể
Hỗ trợ từ cộng đồng: RTL2831 SDR được sử dụng rộng rãi trong cộng đồng nghiên cứu và phát triển phần mềm mã nguồn mở, điều này giúp mở rộng khả năng và tính tương thích của thiết bị
Các ứng dụng của RTL2831 SDR bao gồm:
Trang 9 Thu sóng vô tuyến và quan sát tần số: RTL2831 SDR cho phép thu sóng
từ các dải tần số khác nhau và tiến hành phân tích tín hiệu để nghiên cứu
và giám sát môi trường không dây
Phát triển ứng dụng truyền thông không dây: Với khả năng lập trình phần mềm, RTL2831 SDR là một nền tảng phát triển linh hoạt để xây dựng và kiểm tra các ứng dụng truyền thông không dây
Giáo dục và nghiên cứu: RTL2831 SDR được sử dụng trong các khóa học
và hoạt động nghiên cứu để giúp sinh viên và nhà nghiên cứu hiểu và nắm vững các khái niệm và kỹ thuật trong lĩnh vực truyền thông vô tuyến
2.2 Kiến trúc và nguyên lý hoạt động của RTL2831 SDR :
Kiến trúc của RTL2831 SDR dựa trên một chip thu sóng RTL2831 Chip này kết hợp với các thành phần phần cứng khác như bộ tăng tín hiệu, bộ chuyển đổi tần số và bộ lọc để nhận và xử lý tín hiệu thu sóng vô tuyến
Nguyên lý hoạt động của RTL2831 SDR dựa trên công nghệ SDR, trong đó tín hiệu sóng radio được chuyển đổi thành tín hiệu số bằng cách sử dụng bộ chuyển đổi tương tự-số (ADC) Sau đó, tín hiệu số này được xử lý bằng phần mềm trên máy tính, cho phép phân tích và tái tạo tín hiệu thu được
RTL2831 SDR có thể được điều chỉnh và cấu hình bằng phần mềm để đáp ứng yêu cầu ứng dụng cụ thể Việc lập trình phần mềm cho RTL2831 SDR cho phép người dùng tuỳ chỉnh và phát triển các ứng dụng truyền thông không dây theo nhu cầu
Tổng quan về đặc điểm, ứng dụng, kiến trúc và nguyên lý hoạt động của RTL2831 SDR sẽ tạo nền tảng cho việc nghiên cứu và phát triển chương trình ứng dụng sử dụng thiết bị này trong lĩnh vực Công nghệ kỹ thuật Điện tử Viễn thông
CHƯƠNG III:CHUẨN BỊ MÔI TRƯỜNG PHÁT TRIỂN CHO VIỆC SỬ DỤNG RTL2831 SDR
Trang 103.1 Cài đặt phần mềm hỗ trợ RTL2831 SDR:
Để sử dụng RTL2831 SDR, cần cài đặt các phần mềm hỗ trợ sau:
RTL-SDR Driver: Đây là driver cho RTL2831 SDR, cung cấp khả năng giao tiếp với thiết bị từ máy tính Có thể tải driver này từ các nguồn trực tuyến hoặc
từ trang web chính thức của RTL-SDR
GNU Radio: GNU Radio là một framework phần mềm mã nguồn mở cho việc thiết kế và triển khai các hệ thống điện tử vô tuyến Cần cài đặt GNU Radio để xây dựng chương trình ứng dụng sử dụng RTL2831 SDR
SDR# (SDRSharp): SDR# là một phần mềm ứng dụng được sử dụng để điều khiển và trực quan hóa tín hiệu thu sóng SDR Cài đặt SDR# giúp kiểm tra và xác nhận hoạt động của RTL2831 SDR
3.2 Cấu hình môi trường phát triển:
Sau khi cài đặt phần mềm hỗ trợ, cần cấu hình môi trường phát triển để sử dụng RTL2831 SDR Dưới đây là các bước cấu hình cơ bản:
Kết nối RTL2831 SDR với máy tính thông qua cổng USB
Kiểm tra và xác định thiết bị RTL2831 SDR được nhận diện bởi hệ điều hành Điều này có thể thực hiện bằng cách sử dụng các tiện ích hệ thống như "Device Manager" trên Windows hoặc lệnh "lsusb" trên Linux
Thiết lập quyền truy cập cho thiết bị RTL2831 SDR Trên hệ điều hành Linux, có thể cần phải thêm quyền truy cập cho người dùng thông qua việc thêm vào nhóm "plugdev" hoặc sử dụng các quy tắc udev
Kiểm tra lại cài đặt phần mềm hỗ trợ để đảm bảo rằng nó đang hoạt động đúng và nhận diện được RTL2831 SDR
Sau khi chuẩn bị môi trường phát triển, chúng ta đã sẵn sàng để tiếp tục phát triển chương trình ứng dụng sử dụng RTL2831 SDR trong lĩnh vực Công nghệ
kỹ thuật Điện tử Viễn thông
Trang 11CHƯƠNG IV: CHƯƠNG TRÌNH C++ ỨNG DỤNG THU SÓNG FM BẰNG RTL2831 SDR
4.1 Tạo kết nối với RTL2831 SDR
Để tạo kết nối với RTL2831 SDR trong chương trình C++, bạn cần sử dụng thư viện RTL-SDR Dưới đây là ví dụ về cách tạo kết nối với RTL2831 SDR:
#include <iostream>
#include <rtl-sdr.h>
int main() {
int device_index = 0;
int ret;
// Mở thiết bị RTL2831 SDR
rtlsdr_dev_t *dev = nullptr;
ret = rtlsdr_open(&dev, device_index);
if (ret < 0) {
std::cerr << "Khong the mo thiet b RTL2831 SDR." << std::endl; return ret;
}
// Thực hiện các thao tác với RTL2831 SDR
// Đóng kết nối và giải phóng tài nguyên
rtlsdr_close(dev);
return 0;
}
Trong chương trình này, chúng ta sử dụng hàm rtlsdr_open() để mở thiết bị RTL2831 SDR và tạo kết nối Tham số device_index được sử dụng để chỉ định chỉ số của thiết bị trong trường hợp bạn có nhiều thiết bị RTL2831 SDR được kết nối với máy tính Trong trường hợp này, chúng ta sử dụng giá trị mặc định là
0 để chỉ định thiết bị đầu tiên