MỤC LỤC
CHưƠNG I .11
TỔNG QUAN VỀ THÔNG TIN VỆ TINH .11
1.1. Giới thiệu 11
1.1.1. Lịch sử phát triển của thông tin vệ tinh .11
1.1.2. Cấu trúc tổng thể của một đường thông tin vệ tinh .13
1.1.3. Các đặc điểm của thông tin vệ tinh 13
1.2. Các dạng quỹ đạo của vệ tinh .15
1.2.1. Các dạng quỹ đạo của vệ tinh 15
1.2.2. Các thông số chính của vệ tinh địa tĩnh .17
1.3. Những vấn đề chung của thông tin vệ tinh .19
1.3.1. Các phương pháp đa truy nhập vệ tinh 19
1.3.2. Các băng tần cho thông tin vệ tinh 25
1.4. Các loại dịch vụ trong thông tin vệ tinh .31
1.5. Định vị và duy trì vệ tinh trên quỹ đạo .32
a. Phóng vệ tinh lên quỹ đạo địa tĩnh .32
b. Đưa vệ tinh vào quỹ đạo đĩa tĩnh .33
c. Duy trì vệ tinh trên quỹ đạo .34
CHưƠNG II 35
TỔNG QUAN VỀ VỆ TINH VIỄN THÔNG VINASAT 35
2.1. Các thông số chính của vệ tinh Vinasat .36
2.1.1. Các thông số kỹ thuật chính của vệ tinh Vinasat .36
2.1.2. Các giới hạn khai thác của vệ tinh Vinasat 37
2.2. Phần không gian .39
2.2.1. Bộ phát đáp 39
2.2.2. Máy thu băng rộng .40
2.2.3. Bộ phân kênh vào 42
2.2.4. Bộ khuếch đại công suất 44
2.2.5. Phân hệ anten .44
2.2.6. Phân hệ thông tin .46
2.2.7. Phân hệ đo bám và điều khiển từ xa 47
2.3. Phần mặt đất .49
2.3.1. Hệ thống TVRO .49
2.3.2. Trạm mặt đất thu, phát .49
2.4. Các sơ đồ phân kênh của vệ tinh Vinasat .51
2.5. Vùng phủ sóng vệ tinh Vinasat 54
CHưƠNG III 55
SUY HAO TRONG THÔNG TIN VỆ TINH .55
3.1. Suy hao trong thông tin vệ tinh 55
3.1.1. Suy hao trong không gian tự do .55
3.1.2. Suy hao do tầng đối lưu .56
3.1.3. Suy hao do tầng điện ly .57
3.1.4. Suy hao do thời tiết 57
3.1.5. Suy hao do đặt anten chưa đúng 58
3.1.6. Suy hao trong thiết bị thu .58
3.1.7. Suy hao do phân cực không đối xứng .58
3.1.8. Nhiễu từ vệ tinh khác .58
3.1.9. Trễ truyền dẫn 59
3.2. Lý thuyết tính toán 59
3.2.1. Một số thuật ngữ và lý thuyết tính toán .59
3.2.2. Khảo sát thông số EIRP và G/T ở nước ta .62
CHưƠNG IV 64
TÍNH NHIỄU ẢNH HưỞNG GIỮA VỆ TINH VINASAT VỚI VỆ TINH LÂN CẬN .64
4.1. Giá trị ngưỡng của ∆T/T 65
4.2. Chồng lấn tần số giữa hai vệ tinh .67
4.2.1. Chồng lấn tần số chỉ downlink (wanted) .67
4.2.2. Chồng lấn tần số chỉ uplink (wanted) .67
4.2.3. Chồng lấn tần số chỉ uplink (interfering) .68
4.2.4. Chồng lấn tần số chỉ downlink (interfering) truyền đến ES 68
4.2.5. Chồng lấn tần số cả uplink và downlink 69
4.2.6. Chồng lấn tần số với interfering chỉ downlink tác động đến SAT 69
4.2.7. Chồng lấn tần số với interfering chỉ downlink tác động đến SAT (SAT
chỉ uplink) 70
4.3. Cung Phối Hợp Quỹ Đạo .70
4.4. Tính C/I 71
4.5. Tính toán thực tế .74
CHưƠNG V 79
XÂY DỰNG PHẦN MỀM TÍNH CAN NHIỄU GIỮA VỆ TINH VINASAT VỚI
VỆ TINH LÂN CẬN 79
TỔNG KẾT .85
TÀI LIỆU THAM KHẢO .86
PHỤ LỤC 87
106 trang |
Chia sẻ: banmai | Lượt xem: 2269 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Tính toán can nhiễu giữa các vệ tinh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ồm:
+ Tính giá trị ngƣỡng ∆T/T
+ Các trƣờng hợp chồng lấn tần số
+ Cung phối hợp tần số
+ Tính C/I
+ Hai bài toán thực nghiệm
4.1. Giá trị ngƣỡng của ∆T/T
Hình 4.1. Giá trị C/N
Với D/C (Down Converter ) là bộ đổi tần xuống từ cao tần (RF) thành trung tần (IF)
- Ntot = N + I
Với Ntot là tổng các nguồn nhiễu
N là công suất tạp âm nhiệt
I là tạp âm nhiễu ngoài
- Nếu I << N thì I/N < giới hạn ngƣỡng
khi đó, không có ảnh hƣởng bất lợi đến hiệu suất hệ thống
phải giữ cho I/N < giới hạn ngƣỡng
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 65
- Nhiễu nhiệt hệ thống: N = KTB
Với K là hằng số Bolzman = -228,6 (dBw/Hz 0K)
T là nhiệt độ tạp âm bộ thu (0K)
B là băng thông (Hz)
- Nếu N0 là mật độ phổ công suất tạp âm nhiễu (W/Hz) ta có:
N = N0B với N0 = KT
- Nếu Im là giá trị max của mật độ phổ của tạp âm nhiễu bên ngoài vào hệ
thống là I thì:
I ≤ ImB I/N ≤ Im/N0
- Nếu ∆T là nhiệt độ tạp âm hệ thống tăng lên gây ra bởi Im thì:
Im = K∆T Im/N0 = ∆T/T
- Việc tính toán thông qua nhiệt độ nhiệt tạp âm rất thuận lợi vì không phải
tính mật độ công xuất nhiễu ngoài qua việc tính tích phân trong toàn bộ băng
tần bộ thu. Nhƣ vậy tính toán nhiễu từ bên ngoài thông qua tỷ số T/T sẽ
đơn giản hơn nhiều
Hình 4.2. Sơ đồ tuyến thông tin vệ tinh
Với: Prs là công suất ở đầu ra của anten SAT
Pre là công suất ở đầu ra của anten ES
γ là độ lợi ( độ khuếch đại) = Pre/ Prs
Ts là nhiệt độ tạp âm của máy thu SES
Te là nhiệt độ tạp âm của máy thu ES
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 66
T là nhiệt độ tạp âm tƣơng đƣơng của trạm mặt đất:
T = Te + γTs
Hình 4.3. Vệ tinh gây nhiễu
- Im là mật độ công suất nhiễu ở đầu ra anten thu
- Im = (p’G’tGr)/L
Với: Im = K∆T
Suy ra: ∆T = Im/K
T/T = Im /KT
T/T = (p’ Gt’ Gr )/KLT
Im/N0 = T /T ≤ 6% (Theo ITU – R)
giá trị ngƣỡng của T /T
Trƣờng hợp xấu nhất xảy ra với nhiễu can thiệp khi tính T/T :
- Với vệ tinh SAT : độ nhạy của máy thu bị ảnh hƣởng bởi nhiễu
- Với vệ tinh gây nhiễu: có thể gây ra tối đa nhiễu tới mạng vệ tinh SAT
- Giá trị cao nhất của độ khuếch đại anten SAT và anten vệ tinh gây nhiễu:
+ vệ tinh gây nhiễu truyền đến trạm mặt đất theo đúng hƣớng và vệ tinh
VINASAT có anten thu độ khuếch đại cao nhất
+ vệ tinh VINASAT thu tín hiệu trạm mặt đất đúng hƣớng và vệ tinh gây
nhiễu truyền với độ khuếch đại cao nhất
- Bức xạ nhiễu gây ra bởi mật độ công suất nhiễu lớn nhất
- T quá nhỏ
- γ nhận giá trị lớn
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 67
4.2. Chồng lấn tần số giữa hai vệ tinh
4.2.1. Chồng lấn tần số chỉ downlink (wanted)
Hình 4.4. Chồng lấn tần số chỉ downlink (wanted)
vệ tinh Vinasat chỉ downlink và không uplink:
Mật độ công suất nhiễu p’s đƣợc bổ sung thêm nhiễu nhiệt của vệ tinh VINASAT
∆TE ở anten thu trạm mặt đất
TE / TE = p’s G’3 G4(w) / LD KTE
4.2.2. Chồng lấn tần số chỉ uplink (wanted)
Hình 4.5. Chồng lấn tần số chỉ uplink (wanted)
Vệ tinh VINASAT chỉ uplink và không downlink
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 68
Mật độ công suất nhiễu p’e đƣợc bổ sung thêm nhiễu nhiệt ∆Ts ở anten thu tại vệ
tinh VINASAT
TS / TS = p’e G’1(i) G2 / LU KTS
4.2.3. Chồng lấn tần số chỉ uplink (interfering)
Hình 4.6. Chồng lấn tần số chỉ uplink (interfering)
Mật độ công suất nhiễu p’e đƣợc bổ sung thêm nhiễu nhiệt TS ở anten thu của vệ
tinh VINASAT
TS / T = p’e G’1(i) G2 / LU K T
4.2.4. Chồng lấn tần số chỉ downlink (interfering) truyền đến ES
Hình 4.7. Chồng lấn tần số chỉ downlink (interfering) truyền đến ES
Mật độ công suất nhiễu p’S đƣợc bổ sung thêm nhiễu nhiệt TE ở anten thu của
trạm mặt đất
TE / T= p’s G’3G4 (W) / LD K T
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 69
4.2.5. Chồng lấn tần số cả uplink và downlink
Hình 4.8. Chồng lấn tần số cả uplink và downlink
Mật độ công suất nhiễu p’e và p’S đƣợc bổ sung thêm nhiễu nhiệt TS và TE
(TE + TS )/ T = 1/K T[{p’s G’3G4 (W) / LD}+ {p’e G`1(i) G2 / LU}]
4.2.6. Chồng lấn tần số với interfering chỉ downlink tác động đến SAT
Hình 4.9. Chồng lấn tần số với interfering chỉ downlink tác động đến SAT
Tƣơng tự nhƣ trên ta có:
TS / T = p’S G’3 (S) G2 (S) / LS K T
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 70
4.2.7. Chồng lấn tần số với interfering chỉ downlink tác động đến SAT (SAT
chỉ uplink)
Hình 4.10. Chồng lấn tần số với interfering chỉ downlink tác động đến SAT (SAT
chỉ uplink)
Ta có:
TS / TS = p’S G’3 (S) G2 (S) / LS K TS
4.3. Cung Phối Hợp Quỹ Đạo
Là khoảng cách giữa hai vệ tinh (tính theo độ) theo quy định của ITU cho
các băng tần mà nếu hai vệ tinh nằm trong cung quỹ đạo phối hợp (<=aa giá
trị đƣợc liệt kê dƣới đây) của nhau thì có thể khởi động tiến trình phối hợp
Phƣơng pháp này đƣợc thực hiện khi không dùng tính ∆T/T cho các mạng vệ
tinh:
- Cả 2 đều sử dụng dịch vụ vệ tinh cố định (FSS: FIXED SATELLITE
SERVICE), phát thanh vệ tinh (BSS: BROADCASTING SATELLITE) và
các hoạt động dịch vụ ở trên vũ trụ
- Có sự định hƣớng vệ tinh
- Sử dụng băng tần số bên dƣới
- Đƣợc định vị với tọa độ thích hợp
- Đã thiết lập các băng tần
- Thuộc về những mạng vệ tinh mà đƣợc định vị bên trong cung phối hợp
Băng Tần Cung Phối Hợp Thích Hợp (aa)
3400 – 10950 MHz ± 10° của vị trí quỹ đạo danh nghĩa
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 71
10.95 – 17.7 GHz ± 9° của vị trí quỹ đạo danh nghĩa
trên 17.7 GHz ± 8° của vị trí quỹ đạo danh nghĩa
Khi mạng vệ tinh trong những băng tần đã nêu, phƣơng pháp cung phối hợp
đƣợc áp dụng, nếu định vị bên ngoài cung phối hợp thì phối hợp sẽ không
đƣợc nhƣng có thể áp dụng đƣợc nếu T/T > 6%
Khi mạng vệ tinh ở trong băng tần đã nêu, phƣơng pháp cung phối hợp đƣợc
áp dụng, nếu định vị bên trong cung phối hợp và T/T < 6% thì phƣơng
pháp cung phối hợp có thể áp dụng
Tóm tắt những điều kiện phối hợp giữa những vệ tinh địa tĩnh trong mạng:
- Hai mạng đó nằm trong cung quỹ đạo phối hợp của nhau
- Phối hợp đƣợc áp dụng bởi T/T > 6% hoặc tỷ số C/N dƣới mức yêu cầu
- Phối hợp đƣợc kích hoạt bởi ngƣời quản lý khi vệ tinh ở trong băng tần
4.4. Tính C/I
Sự cần thiết phải tính C/I:
- Nhu cầu phối hợp đƣợc thiết lập bởi cung phối hợp vệ tinh T/T > 6%
- T/T > 6% không tất yếu chỉ ra đƣợc sự can thiếp của nhiễu vì việc tính
toán T/T không nằm trong các công thức:
+ Phạm vi hình thành của nhiễu chỉ có giá trị I/N là đƣợc xem xét
+ Phạm vi chồng chéo tần số giữa tín hiệu mong muốn và tín hiệu gây nhiễu
+ Mức độ tín hiệu mong muốn
+ Hiệu quả lọc tín hiệu của máy thu
Tần suất của nhiễu có hại do đó đƣợc tính bởi C/I
Phƣơng pháp luận tính C/I
Để kiểm tra xác suất của nhiễu có hại giữa vệ tinh mong muốn và vệ tinh gây
nhiễu:
- Bƣớc 1: tính toán cơ bản C/I và điều chỉnh nó theo sự chênh lệch băng thông
giữa vệ tinh mong muốn và vệ tinh gây nhiễu
- Bƣớc 2: tính toán giá trị yêu cầu C/I từ:
+ theo tiêu chuẩn của ngƣời quản lý hoặc
+ xuất phát từ tiêu chí của ITU:
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 72
(C/I)yêu cầu = C/N + K
ở đây K = 14 hoặc 12,2 (dB) (theo ITU)
- Bƣớc 3: tính toán dung sai M = (C/I)điều chỉnh - (C/I)yêu cầu
Phƣơng pháp phân tích tính tƣơng thích 1:
- Bƣớc 1: thuật tính toán C/I
Tính toán:
+ (C/I )b : giá trị cơ bản của C/I (sử dụng phƣơng pháp hình học ITU)
+ (C/I )a = {(C/I )b + Ia} điều chỉnh giá trị của C/I
Ia can thiệp ( yếu tố điều chỉnh băng thông)
+ C/I cho uplink và downlink sử dụng giá trị của Ia cho mội trƣờng hợp nhƣ
sau:
(C/I )u trƣờng hợp xấu nhất uplink, điều chỉnh giá trị của C/I tại điểm bất
kỳ
(C/I )d trƣờng hợp downlink, điều chỉnh giá trị của C/I tại 1 điểm đặc biệt
(C/I )T toàn bộ giá trị C/I tại 1 điểm đặc biệt
1. Trƣờng hợp 1: (C/I )T = (C/I )u khi không có downlink của vệ tinh mong
muốn hay vệ tinh gây nhiễu vào hệ thống hoặc cả 2 hoặc hệ thống không
trùng nhau trong downlink của hệ thống vệ tinh mong muốn hay vệ tinh gây
nhiễu
2. Trƣờng hợp 2: (C/I )T = (C/I )d khi không có uplink của vệ tinh mong
muốn hay vệ tinh gây nhiễu vào hệ thống hoặc cả 2 hoặc hệ thống không
trùng nhau trong uplink của hệ thống vệ tinh mong muốn hay vệ tinh gây
nhiễu
3. Trƣờng hợp 3: khi cả uplink và downlink đều có trong vệ tinh mong muốn
và vệ tinh gây nhiễu và chồng lấn tần số trong cả 2 hƣớng
(C/I)T = -10lg ( 10
-0,1(C/I)
u + 10
-0,1(C/I)
d )
Ƣu điểm của việc điều chỉnh nhiễu hoặc băng thông:
- Đối với tình huống khi băng thông có sóng mang nhiễu vƣợt quá giá trị
mong muốn nó sẽ ảnh hƣởng đến hiệu suất của hệ thống
- Khi sóng mang nhiễu nằm hoàn toàn trong giá trị mong muốn:
+ Không có giảm công suất sóng mang nhiễu
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 73
+ Không có lợi thế về băng thông, điều chỉnh đến mức của nhiễu
- Khi sóng mang nhiễu có 1 băng thông lớn hơn băng thông của sóng mang
mong muốn: công suất của sóng mang nhiễu giảm tƣơng ứng với chồng lấn
tần số
Phƣơng pháp phân tích tính tƣơng thích 2:
- Bƣớc 2: thuật tính toán C/N và yêu cầu tối thiếu của C/I
+ tính nhiễu hệ thống ở máy thu (cho uplink và downlink) sử dụng các công
thức sau:
N = - 228.6 + 10[ log10(TR) + 6 + log10(BW)] (dBW)
Với TR: nhiễu nhiệt hệ thống tại máy thu (
0
K)
BW: băng thông máy thu (MHZ)
+ tính C/N ở điểm thử: (C/N)dBW = CdBW - NdBW
+ tính (C/N )T là toàn bộ giá trị của C/N (dB) tại điểm thử đặc biệt:
1. trƣờng hợp 1: (C/N )T = (C/N )u trƣờng hợp xấu nhất C/N (dB) ở 1 vài
điểm thử uplink, khi không tồn tại chồng chéo tần số ở downlink của tín hiệu
vệ tinh mong muốn và vệ tinh gây nhiễu
2. trƣờng hợp 2: (C/N )T = (C/N )d downlink C/N (dB) ở vài điểm thử đặc
biệt khi không tồn tại chồng lấn tần số ở downlink của tín hiệu vệ tinh mong
muốn và vệ tinh gây nhiễu
3. trƣờng hợp 3:Khi tồn tại cả uplink và downlink của tín hiệu vệ tinh mong
muốn và vệ tinh gây nhiễu, không tồn tại chồng lấn tần số cả 2 hƣớng
(C/N)T = -10lg ( 10
-0,1(C/N)
u + 10
-0,1(C/N)
d )
Yêu cầu tối thiểu của C/I: C/Itối thiểu = (C/N )T + K
Hệ số K phụ thuộc vào loại sóng mang (TV-FM, Digital, SCPC-FM) và nhận
những giá trị 14 hoặc 12,2 (dB) (theo ITU)
Phƣơng pháp phân tích tƣơng thích 3:
- Bƣớc 3: thuật tính độ dự trữ M
+ M = (C/I )a - (C/I)m (dB)
với (C/I )a: giá trị điều chỉnh của C/I,có tính đến yếu tố điều chỉnh hệ số
nhiễu (dB)
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 74
(C/I)m: giá trị tối thiểu của C/I, tính tại mỗi điểm thử (do đó M sẽ có giá trị
khác nhau tại mỗi điểm thử) (dB)
(C/I)m = (C/N)T + K (K là hệ số) (dB)
Do đó: M = (C/I )a - (C/N)T - K (dB)
4.5. Tính toán thực tế
Nghiên cứu tình huống 1: tính T/T , C/I, C/N và M
Hình 4.11. Nghiên cứu tình huống 1
- Góc ở tâm (g ) = {(132 - 0.05) – (130.5 + 0.05)} = 1.4 (1)
- Khoảng cách vệ tinh với ES: d = 42644(1- 0.2954Cos)1/2 (2)
với: Cos = Cos(vĩ độ ES).Cos(hiệu kinh độ đông của VT với kinh độ đông
của ES)
- Suy hao không gian tự do: L = 20{ log10 f+ log10 d } + 32.45 (dB)
(f:MHz) (3)
- w = cos
–1
[{d2
2
+ d4
2
– (84332sin(g/2))
2
}/2 d2 d4] (4)
- i = cos
–1
[{d3
2
+ d5
2
– (84332sin(g/2))
2
}/2 d3 d5] (5)
Áp dụng (1),(2),(3),(4),(5) ta tính ra các kết quả nhƣ hình
- T/T : TE = pS’ + G3’ – L4 + G4(w)
= - 48.6 + 20 - 196.263+ 27.461 = -197.4 dB
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 75
te = 10
-19.74
TS = pe’ + G’1(i) – L3 + G2 = -20 + 27.461 - 199.977+21= -171.5
dB
ts = 10
-17.15
= 9,6 dB = 100.96 = 9.12
T = 15573K
t = te+ ts = 10
-19.74
+ 9,12 x 10
-17.15
= 6,458.10
-17
(t/t)x100 = (6,458.10-17x 100)/(15573 x 1,38.10-23) = 30050%
- C/I :
Cuplink = Pe + G1m-L1+ G2m = 25,6 + 53 – 200,08 + 21 = -100,48 dB
Cdownlink= Ps+G3 – L2 + G4m= 12,9 + 21 – 194,7 + 49,1 = -111,7 dB
Iuplink = Pe’+G’1(I )- L3 +G2 = 16 + 27,461 – 199,977 + 21 = -135,516 dB
Idownlink= Ps’+G3’–L4+G4(w) = -12,6 + 20 – 196,22 + 27,461 = -161,359 dB
(C/I)uplink = -100,48 + 135,516 = 35.036 dB
(C/I)downlink = -111,7 + 161,359 = 49,659 dB
C/Itotal = -10 lg ( 10
-3,5
+ 10
-4,9659
) =34,85 dB
- C/N:
Nu là nhiễu nhiệt của vệ tinh mong muốn
Nd là nhiễu nhiệt của trạm mặt đất
Nu = -228.6 + 10(log10(1778) + log10(36x10
6
)] = -120,537 dB
Nd= -228.6 + 10(log10(184) + log10(36x10
6
)] = -130,389 dB
(C/N)u = -100,48 + 120,537 = 20,057 dB
(C/N)d = -111,7 + 130,389 = 18,689 dB
(C/N)total = -10 lg ( 10
-2
+ 10
-1,8689
) =16,28 dB
- Dự trữ M:
(C/I)yêu cầu tối thiểu = (C/N)total + 12.2 dB = 16,28 +12,2 = 28,48 dB
M = (C/I)Total - (C/I)yêu cầu tối thiểu = 34,85 – 28,48 = 6,37 dB
Nghiên cứu tình huống 2: tính T/T , C/I, C/N & M
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 76
Hình 4.12. Nghiên cứu tình huống 2
- Góc ở tâm (g ) = {(132 - 0.05) – (130.5 + 0.05)} = 1.4 (1)
- Khoảng cách vệ tinh với ES: d = 42644(1- 0.2954Cos)1/2 (2)
với: Cos = Cos(vĩ độ ES).Cos(hiệu kinh độ đông của VT với kinh độ đông
của ES)
- Suy hao không gian tự do: L = 20{ log10 f+ log10 d } + 32.45 (dB)
(f:MHz) (3)
- w = cos
–1
[{d2
2
+ d4
2
– (84332sin(g/2))
2
}/2 d2 d4] (4)
- i = cos
–1
[{d3
2
+ d5
2
– (84332sin(g/2))
2
}/2 d3 d5] (5)
Áp dụng (1),(2),(3),(4),(5) ta tính ra các kết quả nhƣ hình
- T/T : TE = pS’ + G3’ – L4 + G4(w)
= - 60,4 + 20 - 196.263+ 27.461 = -209,2 dB
te = 10
-20,9
TS = pe’ + G’1(i) – L3 + G2 = -39,9 + 27.461 - 199.977+26= -
186,3 dB
ts = 10
-18,63
= -6 dB = 10-0,6 = 0,2511
T = 2309K
t = te+ ts = 10
-20,9
+ 0,2511 x 10
-18,63
= 6,012.10
-20
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 77
(t/t)x100 = (6,012.10-20 x 100)/(2309 x 1,38.10-23) = 188,7%
- C/I :
Cuplink = Pe + G1m-L1+ G2m = 22,7 + 53 – 200,08 + 21 = -104,1 dB
Cdownlink= Ps+G3 – L2 + G4m= 12,9 + 21 – 194,7 + 49,1 = -111,7 dB
Iuplink = Pe’+G’1(I )- L3 +G2 = 19 + 27,461 – 199,977 + 26 = -127,516 dB
Idownlink= Ps’+G3’–L4+G4(w) = -1,6 + 20 – 196,22 + 27,461 = -150,359 dB
(C/I)uplink = -104,1 + 127,516 = 23,416 dB
(C/I)downlink = -111,7 + 150,359 = 38,659 dB
C/Itotal = -10 lg ( 10
-2,3416
+ 10
-3,8659
) =23,288 dB
- C/N:
Nu là nhiễu nhiệt của vệ tinh mong muốn
Nd là nhiễu nhiệt của trạm mặt đất
Nu = -228.6 + 10(log10(1000) + log10(36x10
6
)] = -123,037 dB
Nd= -228.6 + 10(log10(161) + log10(36x10
6
)] = -130,969 dB
(C/N)u = -104,1 + 123,037 = 18,937 dB
(C/N)d = -111,7 + 130,969 = 19,269 dB
(C/N)total = -10 lg ( 10
-1,8937
+ 10
-1,9269
) =16,09 dB
- Dự trữ M:
(C/I)yêu cầu tối thiểu = (C/N)total + 12.2 dB = 16,09 +12,2 = 28,29 dB
M = (C/I)Total - (C/I)yêu cầu tối thiểu = 23,288 – 28,29 = -5,002 dB
* Kết luận:
T /T và C/I: những nghiên cứu trên đã cho ta thấy rằng:
- Những tín hiệu kết hợp của vệ tinh mong muốn và vệ tinh gây nhiễu:
+ Chỉ ra sự cần thiết phải phối hợp (T /T = 30050%)
+ Cho thấy các thông số tƣơng thích khác (M = 6,37; C/I = 34.85dB và
(C/I)tối thiểu = 28,48 dB)
- Sự kết hợp khác của những tín hiệu trong trƣờng hợp 2:
+ Cho T /T = 188,7%
+ Cho thấy sự không phù hợp của M (M = -5.002 dB)
- Vì thế có thể suy ra rằng:
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 78
+ Khi T /T vƣợt quá 6%, thì khi tính C/I không cần thiết phải chỉ ra nhiễu
+ Trong trƣờng hợp xấu nhất của ∆T/T không cần để ý tới trƣờng hợp xấu
nhất của C/I, đó là bản chất của ∆T/T đại diện cho C/N, dung sai có thể lớn
trong kết hợp này và có thể nhỏ trong kết hợp khác
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 79
CHƢƠNG V
XÂY DỰNG PHẦN MỀM TÍNH CAN NHIỄU GIỮA VỆ
TINH VINASAT VỚI VỆ TINH LÂN CẬN
Mục đích: việc tính toán can nhiễu vệ tinh có rất nhiều thông số và công
thức, với việc tạo ra phần mềm này giúp ngƣời dùng có thể tiết kiệm thời
gian, giảm nhầm lẫn và tiện lợi khi biết các nhiễu ảnh hƣởng đến vệ tinh, đƣa
ra biện pháp giúp giảm ảnh hƣởng đến thông tin vệ tinh
Ngôn ngữ lập trình: phần mềm này đƣợc viết trên ngôn ngữ lập trình C#, ƣu
điểm của ngôn ngữ này là dễ sử dụng, C# là sự kết hợp sức mạnh, sự chính
xác của ngôn ngữ lập trình C++ và tính dễ phát triển của Visual Basic, môi
trƣơng phát triển thân thiện… và quan trọng là thực tế hiện nay các phần
mềm giúp quản lý hệ thống VINASAT đều dựa trên C# để lập trình
Thuật toán chƣơng trình: hình 5.1
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 80
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 81
Các chức năng của chƣơng trình:
- Giao diện chính của chƣơng trình:
Hình 5.2. Giao diện chính
- Interfering Sat (I.Sat):
Hình 5.3. Interfering Sat F, P, Orbit...
Phần này chỉ nhập các dữ liệu của vệ tinh gây nhiễu
+ Orbit: kinh độ đông của I.Sat (độ)
+ Tolerance: độ chênh lệch hay dung sai của I.sat (độ)
+ X: kinh độ đông của ES (độ)
+ Y: vĩ độ bắc của ES (độ)
+ Fup và Fdown: tần số up và down của I.Sat (MHz)
+ Bwup và Bwdown: băng thông up và down của I.Sat (MHz)
+ Ps’ và Pe’: công suất tại đầu ra của anten I.Sat và ES(dBW)
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 82
+ Ps’ và Pe’: công suất trên băng thông tại đầu ra của anten I.Sat và ES
(dBW/Hz)
+ I.Sat transmit antenna gain towards wanted ES receiver: I.Sat truyền độ lợi
G đến ES của vệ tinh vinasat (dBW)
- Wanted Sat (W.Sat):
Hình 5.4. Wanted Sat F, P, Orbit...
Phần này chỉ nhập các dữ liệu của vệ tinh Vinasat
+ Orbit: kinh độ đông của I.Sat (độ)
+ Tolerance: độ chênh lệch hay dung sai của I.sat (độ)
+ X: kinh độ đông của ES (độ)
+ Y: vĩ độ bắc của ES (độ)
+ Fup và Fdown: tần số up và down của W.Sat (MHz)
+ Bwup và Bwdown: băng thông up và down của W.Sat (MHz)
+ Ps: công suất tại đầu ra của anten W.Sat (dBW)
+ Pe: công suất tại đầu ra của anten ES (dBW)
+ Ts và Te: nhiệt độ tạp âm của máy thu tại W.Sat và ES (0K)
+ T: nhiệt độ tạp âm tƣơng đƣơng toàn bộ hệ thống
+ ¥: độ khuếch đại = Pe/ Ps
+ W.Sat transmit antenna gain towards wanted ES receiver: W.Sat truyền độ
lợi G đến ES của vệ tinh vinasat (dBW)
+ Max receiver antenna gain of W.Sat: giá trị lớn nhất độ lợi anten ở W.Sat
(dBW)
+ Wanted ES max transmit gain: trạm ES truyền độ lợi lớn nhất đến W.Sat
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 83
+ Max receiver antenna gain of wanted ES: giá trị lớn nhất độ lợi anten ở
W.Sat truyền đến ES (dBW)
+ receiver antenna gain of W.Sat towards I.transmitting ES: độ lợi nhận
đƣợc từ I.ES truyền đến W.Sat (dBW)
- Công cụ làm việc:
Hình 5.5. Công cụ tính toán
+ Calculate: tính số liệu
+ Save: lƣu lại dữ liệu đã nhập
+ Load: lấy dữ liệu đã có
+ Reset: trở lại trạng thái ban đầu
- các kết quả 1:
Hình 5.6. Các kết quả d, L...
+ wanted ES receiver antenna gain towards I.Sat: độ lợi trạm W.ES thu đƣợc
do I.Sat (dB)
+ Interfering ES transmit antenna gain towards W.Sat: I.ES truyền độ lợi đến
W.Sat (dB)
+ lossup I.Sat (L5): suy hao up của I.Sat (dB)
+ lossup W.Sat (L1): suy hao up của W.Sat (dB)
+ lossdown I.Sat (L2): suy hao down của I.Sat (dB)
+ lossup I.Sat -> W.Sat (L3): suy hao up I.Sat truyền đến W.Sat (dB)
+ lossdown I.Sat -> W.Sat (L4): suy hao down I.Sat truyền đến W.Sat (dB)
+ d1, d2, d3, d4, d5: khoảng cách từ ES đến SES (Km)
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 84
- Các kết quả 2:
Hình 5.7. Các kết quả ∆Te, ∆Ts, M…
+ θg : góc ở tâm (độ)
+ θw và θi: góc tạo bởi 2 vệ tinh (rad)
+ ∆Te: độ tăng nhiệt độ tạp âm SES (dB)
+ ∆Ts: độ tăng nhiệt độ tạp âm ES (dB)
+ ∆T/T (%)
+ C/Itotal: tỷ số tín hiệu trên nhiễu ngoài (dB)
+ C/Ntotal: tỷ số tín hiệu trên tạp âm (dB)
+ Margin M: độ dữ trữ M (dB)
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 85
TỔNG KẾT
Với sự phát triển của xã hội hiện nay, các sản phẩm truyền thông đa phƣơng
tiện ngày càng phát triển, các dịch vụ di dộng và truyền hình kỹ thuật số đòi hỏi
thông tin phải thông suốt, cải thiện chất lƣợng dịch vụ làm cho dung lƣợng đòi hỏi
tăng cao, số lƣợng vệ tinh do đó cũng tăng dần làm cho nhiễu tăng cao, yêu cầu cấp
thiết phải tính toán can thiệp sao cho nhiễu không quá lớn, tránh ảnh hƣởng đến
truyền thông tin.
Với những gì đã đạt đƣợc trong nghiên cứu và trình bày trong luận văn này
chƣa phải là hoàn chỉnh nhƣng tôi mong muốn kết quả nghiên cứu của tôi sẽ giúp
đƣợc phần nào giải quyết vấn đề nhiễu trong thông tin vệ tinh VINASAT.
Tôi sẽ tiếp tục nghiên cứu, hoàn thiện và phát triển luận văn này để đáp ứng
đƣợc yêu cầu của xã hội.
Tôi xin chân thành cảm ơn Giảng Viên Nguyễn Tiến Khải đã hƣớng dẫn tôi
thực hiện đề tài này. Cảm ơn toàn thể bạn bè và đồng nghiệp công ty “Cục Tần Số
Vô Tuyến Điện” đã giúp đỡ trong quá trình thực hiện luận văn.
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 86
TÀI LIỆU THAM KHẢO
[1] PGS-TS. Phạm Minh Việt, Thông Tin Vệ Tinh, NXB KH&KT, 2007
[2] Trần Đình Lƣơng, Thông Tin Vệ Tinh, NXB KH&KT, Tổng Cục Buu
Điện
[3]
[4]
thong-VINASAT-1-Ve-tinh-dau-tien-cua-Viet-Nam-chuan-bi-duoc-phong-
len-quy-dao.html
[5]
[6]
e_tinh_trong_cac_bang_tan/
[7]
ang_tan_su_dung_trong_thong_tin_ve_tinh
[8]
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 87
PHỤ LỤC
Code chƣơng trình phần mềm:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
using Calculator.Component;
using Calculator.Global;
using DevComponents.DotNetBar;
using FileHelpers.DataLink;
using FileHelpers;
namespace Calculator
{
public partial class frmMain : Office2007RibbonForm
{
#region Variable
private bool m_CheckCalculator = false;
#endregion
#region frmMain
#region Constructor
public frmMain()
{
InitializeComponent();
frmSplash f = new frmSplash();
f.Show();
System.Threading.Thread.Sleep(2000);
f.Close();
}
#endregion
#region Load
private void frmMain_Load(object sender, EventArgs e)
{
//if (DataService.OpenConnection())
//{
//Default();
//DangNhap();
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 88
this.Cursor =
MyCursors.Create(System.IO.Path.Combine(Application.StartupPath,
"Pointer.cur"));
// Create the list of frequently used commands for the QAT Customize menu
//ribbonControl.QatFrequentCommands.Add(btnDangNhap);
//ribbonControl.QatFrequentCommands.Add(btnDangXuat);
//ribbonControl.QatFrequentCommands.Add(btnThoat);
// Load Quick Access Toolbar layout if one is saved from last session...
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\DevComponents
\Ribbon");
if (key != null)
{
try
{
string layout = key.GetValue("RibbonPadCSLayout", "").ToString();
if (layout != "" && layout != null)
ribbonControl.QatLayout = layout;
}
finally
{
key.Close();
}
}
}
#endregion
#region Lƣu lại trạng thái khi thoát chƣơng trình
private void frmMain_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
// Save Quick Access Toolbar layout if it has changed...
if (ribbonControl.QatLayoutChanged)
{
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\DevComponent
s\Ribbon");
try
{
key.SetValue("RibbonPadCSLayout", ribbonControl.QatLayout);
}
finally
{
key.Close();
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 89
}
}
}
#endregion
#endregion
#region Window form generater code
private void btnCaculator_Click(object sender, EventArgs e)
{
bool checkControl = CheckControl();
if (!checkControl)
return;
m_CheckCalculator = true;
try
{
decimal X1S1 = Converter.ConvertStringToDecimal(txtX1S1.Text);
decimal Y1S1 = Converter.ConvertStringToDecimal(txtY1S1.Text);
int X2S1 = Converter.ConvertStringToInt(txtX2S1.Text);
int Y2S1 = Converter.ConvertStringToInt(txtY2S1.Text);
decimal F1up = Converter.ConvertStringToDecimal(txtF1up.Text);
decimal B1up = Converter.ConvertStringToDecimal(txtB1up.Text);
decimal F1down = Converter.ConvertStringToDecimal(txtF1down.Text);
decimal B1down = Converter.ConvertStringToDecimal(txtB1down.Text);
decimal Ps1 = Converter.ConvertStringToDecimal(txtPs1.Text);
decimal Pe1 = Converter.ConvertStringToDecimal(txtPe1.Text);
decimal Gp3 = Converter.ConvertStringToDecimal(txtGp3.Text);
decimal G2 = Converter.ConvertStringToDecimal(txtG2.Text);
decimal X1S2 = Converter.ConvertStringToDecimal(txtX1S2.Text);
decimal Y1S2 = Converter.ConvertStringToDecimal(txtY1S2.Text);
int X2S2 = Converter.ConvertStringToInt(txtX2S2.Text);
int Y2S2 = Converter.ConvertStringToInt(txtY2S2.Text);
decimal Fup2 = Converter.ConvertStringToDecimal(txtFup2.Text);
decimal Bup2 = Converter.ConvertStringToDecimal(txtBup2.Text);
decimal Fdow2 = Converter.ConvertStringToDecimal(txtFdow2.Text);
decimal Bdown2 = Converter.ConvertStringToDecimal(txtBdown2.Text);
decimal Ps2 = Converter.ConvertStringToDecimal(txtPs2.Text);
decimal Ts = Converter.ConvertStringToDecimal(txtTs.Text);
decimal Pe2 = Converter.ConvertStringToDecimal(txtPe2.Text);
decimal Te = Converter.ConvertStringToDecimal(txtTe.Text);
decimal T = Converter.ConvertStringToDecimal(txtT.Text);
decimal Gamma = Converter.ConvertStringToDecimal(txtGamma.Text);
decimal G2M = Converter.ConvertStringToDecimal(txtG2M.Text);
decimal G1M = Converter.ConvertStringToDecimal(txtG1M.Text);
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 90
decimal G4M = Converter.ConvertStringToDecimal(txtG4M.Text);
decimal G3 = Converter.ConvertStringToDecimal(txtG3.Text);
decimal ps11 = Converter.ConvertStringToDecimal(txtPs11.Text);
decimal pe11 = Converter.ConvertStringToDecimal(txtPe11.Text);
decimal dentaG = 0, minDentaG = 0;
//decimal tg1, tg2;
//Tinh denta G
minDentaG = Math.Abs((X1S1 + Y1S1) - (X1S2 + Y1S2));
//if (minDentaG > dentaG)
// minDentaG = dentaG;
dentaG = Math.Abs((X1S1 + Y1S1) - (X1S2 - Y1S2));
if ( minDentaG > dentaG)
minDentaG = dentaG;
dentaG = Math.Abs((X1S1 - Y1S1) - (X1S2 + Y1S2));
if (minDentaG > dentaG)
minDentaG = dentaG;
dentaG = Math.Abs((X1S1 - Y1S1) - (X1S2 - Y1S2));
if (minDentaG > dentaG)
minDentaG = dentaG;
txtPhiG.Text = Converter.ConvertDecimalToString(minDentaG);
//Tinh S
double latitude1 = Math.Abs((double) X1S2 - (double) X2S2);
double costW1 = (Math.Cos((latitude1 * Math.PI) / 180)) *
(Math.Cos((Y2S2 * Math.PI) / 180));
//double temp = Math.Cos((90 * Math.PI) / 180);
double d1 = 42644*Math.Sqrt(1 - (0.2954*costW1));
double d2 = d1;
double l1 = 20*(Math.Log10((double) Fup2) + Math.Log10(d1)) + 32.45;
double l2 = 20*(Math.Log10((double) Fdow2) + Math.Log10(d1)) +
32.45;
//Tinh S'
double latitude2 = Math.Abs((double) X1S1 - (double) X2S1);
double costW2 = Math.Cos((latitude2 * Math.PI) / 180) *
Math.Cos((Y2S1 * Math.PI) / 180);
double d5 = 42644*Math.Sqrt(1 - (0.2954*costW2));
double d6 = d5;
double l5 = 20*(Math.Log10((double) F1up) + Math.Log10(d5)) + 32.45;
double l6 = 20*(Math.Log10((double) F1down) + Math.Log10(d5)) +
32.45;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 91
//Tinh d3: Khoang cach tu tram mat dat S' den ve tinh S
double latitude3 = Math.Abs((double) X2S1 - (double) X1S2);
double costW3 = Math.Cos((latitude3 * Math.PI) / 180) *
Math.Cos((Y2S1 * Math.PI) / 180);
double d3 = 42644*Math.Sqrt(1 - (0.2954*costW3));
double l3 = 20*(Math.Log10((double) F1up) + Math.Log10(d3)) + 32.45;
//Tinh d4: Khoang ve tinh S' xuong tram mat dat S
double latitude4 = Math.Abs((double) X1S1 - (double) X2S2);
double costW4 = Math.Cos((latitude4 * Math.PI) / 180) *
Math.Cos((Y2S2 * Math.PI) / 180);
double d4 = 42644*Math.Sqrt(1 - (0.2954*costW4));
double l4 = 20*(Math.Log10((double) F1down) + Math.Log10(d4)) +
32.45;
//Hien thi L
txtLossUpS1.Text = Converter.ConvertDecimalToString((decimal) l5);
txtLossUpS2.Text = Converter.ConvertDecimalToString((decimal) l1);
txtLossDownS.Text = Converter.ConvertDecimalToString((decimal) l2);
txtLossUpSS.Text = Converter.ConvertDecimalToString((decimal) l3);
txtLossDownSS.Text = Converter.ConvertDecimalToString((decimal)
l4);
//Hien thi cac gia tri cua d
textBoxX1.Text = Converter.ConvertDecimalToString((decimal)d5);
textBoxX2.Text = Converter.ConvertDecimalToString((decimal)d1);
textBoxX3.Text = Converter.ConvertDecimalToString((decimal)d2 );
textBoxX4.Text = Converter.ConvertDecimalToString((decimal)d3);
textBoxX5.Text = Converter.ConvertDecimalToString((decimal)d4);
double sinDentaG = Math.Sin((((double)minDentaG / 2) * Math.PI) /
180);
//Tinh goc teta
double tetaW =
Math.Acos(((d2 * d2 + d4 * d4 - Math.Pow((84332 * sinDentaG), 2)) /
(2 * d2 * d4)));
double tetaI =
Math.Acos(((d3 * d3 + d5 * d5 - Math.Pow((84332 * sinDentaG), 2)) /
(2 * d3 * d5)));
//double tetatem = ((d3*d3 + d5*d5 -
Math.Pow((84332*Math.Sin((double) minDentaG/2)), 2)/(2*d3*d5)));
double GTetaW = 32 - 25*Math.Log10(tetaW*180/Math.PI);
double GTetaI = 32 - 25 * Math.Log10(tetaI * 180 / Math.PI);
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 92
//Hien thi teta
txtUpPhiI.Text = Converter.ConvertDecimalToString((decimal) tetaI);
txtDownPhiW.Text = Converter.ConvertDecimalToString((decimal)
tetaW);
txtDoLoiPhatGocLechVT.Text =
Converter.ConvertDecimalToString((decimal) GTetaW);
txtDoLoiPhatGocLechMD.Text =
Converter.ConvertDecimalToString((decimal) GTetaI);
//Tinh denta E, S
decimal dentaE = ps11 + Gp3 - (decimal) l4 + (decimal) GTetaW;
decimal dentaS = pe11 + G2 - (decimal) l3 + (decimal) GTetaI;
txtDentaTe.Text = Converter.ConvertDecimalToString(dentaE);
txtDentaTs.Text = Converter.ConvertDecimalToString(dentaS);
//Tinh Shi Te, Ts, gamma
double shiTe = Math.Pow(10, (double) dentaE/10);
double shiTs = Math.Pow(10, (double) dentaS/10);
double gamma = Math.Pow(10, (double) Gamma/10);
double tongShi = shiTe + shiTs*gamma;
double dentaT_T = (tongShi*100)/((double) T*1.38*Math.Pow(10, -23));
txtDentaTT.Text = Converter.ConvertDecimalToString((decimal)
dentaT_T);
//Tinh tong C/I, C/N, Ia
double bWInteferingP = 10 * Math.Log10((double)B1up);
double bWWantedP = 10 * Math.Log10((double)Bup2);
double iA = 0;
if (bWInteferingP > bWWantedP)
iA = bWInteferingP - bWWantedP;
//up
decimal cUp = Pe2 + G1M - (decimal) l1 + G2M;
decimal iUp = Pe1 + G2 - (decimal) l3 + (decimal) GTetaI - (decimal)iA;
decimal tongC_Iup = cUp - iUp;
//down
decimal cDown = Ps2 + G3 - (decimal) l2 + G4M;
decimal iDown = Ps1 + Gp3 - (decimal)l4 + (decimal)GTetaW -
(decimal)iA;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 93
//C/I
decimal tongC_Idown = cDown - iDown;
double tongC_I = -10*
Math.Log10(Math.Pow(10, -(double) tongC_Iup/10) +
Math.Pow(10, -(double) tongC_Idown/10));
txtTotalCI.Text = Converter.ConvertDecimalToString((decimal)
tongC_I);
//C/N
double nUp = -228.6 + 10*(Math.Log10((double) Ts) + 6 +
Math.Log10((double) Bup2));
double nDown = -228.6 + 10*(Math.Log10((double) Te) + 6 +
Math.Log10((double) Bdown2));
decimal tongC_Nup = cUp - (decimal) nUp;
decimal tongC_Ndown = cDown - (decimal) nDown;
double tongC_N = -10*
Math.Log10(Math.Pow(10, -(double) tongC_Nup/10) +
Math.Pow(10, -(double) tongC_Ndown/10));
txtTotalCN.Text = Converter.ConvertDecimalToString((decimal)
tongC_N);
//Tinh M
double margin = tongC_I - tongC_N - 12.2;
txtMarginM.Text = Converter.ConvertDecimalToString((decimal)
margin);
//Ket luan
string txtKetLuan = string.Empty;
if (dentaT_T < 0.06)
txtKetLuan = "Không phải phối hợp !";
else
{
}
}
catch
{
MessageBoxEx.Show("Dữ liệu lỗi ! ", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 94
private void btnSave_Click(object sender, EventArgs e)
{
//if(!m_CheckCalculator)
//{
// MessageBoxEx.Show("Hãy Thực hiện tính toán trƣớc khi lƣu file !",
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
//}
List listEntity = new List();
CaculatorEntity entity = new CaculatorEntity();
entity.Name1 = txtX1S1.Text;
entity.Name2 = txtY1S1.Text;
entity.Name3 = txtX2S1.Text;
entity.Name4 = txtY2S1.Text;
entity.Name5 = txtF1up.Text;
entity.Name6 = txtB1up.Text;
entity.Name7 = txtF1down.Text;
entity.Name8 = txtB1down.Text;
entity.Name9 = txtPs1.Text;
entity.Name10 = txtPe1.Text;
entity.Name11 = txtGp3.Text;
entity.Name12 = txtG2.Text;
entity.Name13 = txtX1S2.Text;
entity.Name14 = txtY1S2.Text;
entity.Name15 = txtX2S2.Text;
entity.Name16 = txtY2S2.Text;
entity.Name17 = txtFup2.Text;
entity.Name18 = txtBup2.Text;
entity.Name19 = txtFdow2.Text;
entity.Name20 = txtBdown2.Text;
entity.Name21 = txtPs2.Text;
entity.Name22 = txtTs.Text;
entity.Name23 = txtPe2.Text;
entity.Name24 = txtTe.Text;
entity.Name25 = txtT.Text;
entity.Name26 = txtGamma.Text;
entity.Name27 = txtG2M.Text;
entity.Name28 = txtG1M.Text;
entity.Name29 = txtG4M.Text;
entity.Name30 = txtG3.Text;
entity.Name31 = txtDoLoiPhatGocLechVT.Text;
entity.Name32 = txtDoLoiPhatGocLechMD.Text;
entity.Name33 = txtPhiG.Text;
entity.Name34 = txtUpPhiI.Text;
entity.Name35 = txtLossUpS1.Text;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 95
entity.Name36 = txtDownPhiW.Text;
entity.Name37 = txtLossUpS2.Text;
entity.Name38 = txtLossDownS.Text;
entity.Name39 = txtLossUpSS.Text;
entity.Name40 = txtLossDownSS.Text;
entity.Name41 = txtPs11.Text;
entity.Name42 = txtPe11.Text;
entity.Name43 = txtDentaTe.Text;
entity.Name44 = txtDentaTs.Text;
entity.Name45 = txtDentaTT.Text;
entity.Name46 = txtTotalCI.Text;
entity.Name47 = txtTotalCN.Text;
entity.Name48 = txtMarginM.Text;
entity.Name49= textBoxX5.Text;
entity.Name50 = textBoxX1.Text;
entity.Name51 = textBoxX2.Text;
entity.Name52 = textBoxX3.Text;
entity.Name53 = textBoxX4.Text;
listEntity.Add(entity);
FileHelperEngine engine = new FileHelperEngine(typeof(CaculatorEntity));
engine.Encoding = Encoding.UTF8;
string fileName = "Data_" + DateTime.Now.ToString("yyMMdd_hhmm") +
".txt";
string temPath = Application.StartupPath + @"\Data\" + fileName;
string errPath = Application.StartupPath + @"\" + fileName;
//engine.WriteFile(temPath, listTradinSlipNo);
if (File.Exists(temPath))
File.Delete(temPath);
try
{
engine.WriteFile(temPath, listEntity);
MessageBoxEx.Show("File: " + fileName + "\n đã đƣợc lƣu thành công
!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
engine.WriteFile(errPath, listEntity);
MessageBoxEx.Show("File: " + fileName + "\n đã đƣợc lƣu thành công
!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 96
}
private void btnOpen_Click(object sender, EventArgs e)
{
string strFilePath = string.Empty;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "All File|*.*|Excel 97-2003|*.xls|Excel
2007|*.xlsx|Text|*.txt|DIF|*.dif";
ofd.InitialDirectory = Application.StartupPath + @"\Data";
ofd.FilterIndex = 1;
DialogResult result = ofd.ShowDialog();
if (result == DialogResult.OK)
{
string FilePath = ofd.FileName;
//string FileName = Path.GetFileName(FilePath);
try
{
strFilePath = FilePath;
}
catch
{
MessageBoxEx.Show("Hãy chọn file cần mở !", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
return;
//ExcelStorage provider = new ExcelStorage(typeof(CaculatorEntity));
//provider.StartRow = 3;
//provider.StartColumn = 2;
//provider.FileName = strFilePath;
FileHelperEngine provider = new
FileHelperEngine(typeof(CaculatorEntity));
CaculatorEntity[] res = null;
try
{
//res = (CaculatorEntity[])provider.ExtractRecords();
res = (CaculatorEntity[])provider.ReadFile(strFilePath);
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 97
}
catch
{
MessageBoxEx.Show("File đã chọn không đúng định dạng !", "Thông
báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//Show data
if (res != null)
{
ShowData(res);
btnCaculator_Click(sender, e);
}
}
private void ShowData(CaculatorEntity[] arrEntity)
{
if(arrEntity.Length > 0)
{
CaculatorEntity entity = arrEntity[0];
txtX1S1.Text = entity.Name1;
txtY1S1.Text = entity.Name2;
txtX2S1.Text = entity.Name3;
txtY2S1.Text = entity.Name4;
txtF1up.Text = entity.Name5;
txtB1up.Text = entity.Name6;
txtF1down.Text = entity.Name7;
txtB1down.Text = entity.Name8;
txtPs1.Text = entity.Name9;
txtPe1.Text = entity.Name10;
txtGp3.Text = entity.Name11;
txtG2.Text = entity.Name12;
txtX1S2.Text = entity.Name13;
txtY1S2.Text = entity.Name14;
txtX2S2.Text = entity.Name15;
txtY2S2.Text = entity.Name16;
txtFup2.Text = entity.Name17;
txtBup2.Text = entity.Name18;
txtFdow2.Text = entity.Name19;
txtBdown2.Text = entity.Name20;
txtPs2.Text = entity.Name21;
txtTs.Text = entity.Name22;
txtPe2.Text = entity.Name23;
txtTe.Text = entity.Name24;
txtT.Text = entity.Name25;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 98
txtGamma.Text = entity.Name26;
txtG2M.Text = entity.Name27;
txtG1M.Text = entity.Name28;
txtG4M.Text = entity.Name29;
txtG3.Text = entity.Name30;
txtDoLoiPhatGocLechVT.Text = entity.Name31;
txtDoLoiPhatGocLechMD.Text = entity.Name32;
txtPhiG.Text = entity.Name33;
txtUpPhiI.Text = entity.Name34;
txtLossUpS1.Text = entity.Name35;
txtDownPhiW.Text = entity.Name36;
txtLossUpS2.Text = entity.Name37;
txtLossDownS.Text = entity.Name38;
txtLossUpSS.Text = entity.Name39;
txtLossDownSS.Text = entity.Name40;
txtPs11.Text = entity.Name41;
txtPe11.Text = entity.Name42;
txtDentaTe.Text = entity.Name43;
txtDentaTs.Text = entity.Name44;
txtDentaTT.Text = entity.Name45;
txtTotalCI.Text = entity.Name46;
txtTotalCN.Text = entity.Name47;
txtMarginM.Text = entity.Name48;
//textBoxX5.Text = entity.Name49;
//textBoxX1.Text = entity.Name50;
//textBoxX2.Text = entity.Name51;
//textBoxX3.Text = entity.Name52;
//textBoxX4.Text = entity.Name53;
}
}
private void btnReset_Click(object sender, EventArgs e)
{
m_CheckCalculator = false;
txtB1down.Text = string.Empty;
txtB1up.Text = string.Empty;
txtBdown2.Text = string.Empty;
txtBup2.Text = string.Empty;
txtDentaTe.Text = string.Empty;
txtDentaTs.Text = string.Empty;
txtDentaTT.Text = string.Empty;
txtG3.Text = string.Empty;
txtG1M.Text = string.Empty;
txtG4M.Text = string.Empty;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 99
txtG2M.Text = string.Empty;
txtDoLoiPhatGocLechMD.Text = string.Empty;
txtDoLoiPhatGocLechVT.Text = string.Empty;
txtG2.Text = string.Empty;
txtGp3.Text = string.Empty;
txtDownPhiW.Text = string.Empty;
txtF1down.Text = string.Empty;
txtF1up.Text = string.Empty;
txtFdow2.Text = string.Empty;
txtFup2.Text = string.Empty;
txtGamma.Text = string.Empty;
txtLossDownS.Text = string.Empty;
txtLossDownSS.Text = string.Empty;
txtLossUpS1.Text = string.Empty;
txtLossUpS2.Text = string.Empty;
txtLossUpSS.Text = string.Empty;
txtMarginM.Text = string.Empty;
txtPe1.Text = string.Empty;
txtPe2.Text = string.Empty;
txtPhiG.Text = string.Empty;
txtPs1.Text = string.Empty;
txtPs2.Text = string.Empty;
txtT.Text = string.Empty;
txtTe.Text = string.Empty;
txtTotalCI.Text = string.Empty;
txtTotalCN.Text = string.Empty;
txtTs.Text = string.Empty;
txtUpPhiI.Text = string.Empty;
txtX1S1.Text = string.Empty;
txtX1S2.Text = string.Empty;
txtX2S1.Text = string.Empty;
txtX2S2.Text = string.Empty;
txtY1S1.Text = string.Empty;
txtY1S2.Text = string.Empty;
txtY2S1.Text = string.Empty;
txtY2S2.Text = string.Empty;
txtPs11.Text = string.Empty;
txtPe11.Text = string.Empty;
textBoxX5.Text = string.Empty;
textBoxX1.Text = string.Empty;
textBoxX2.Text = string.Empty;
textBoxX3.Text = string.Empty;
textBoxX4.Text = string.Empty;
}
private void btnThoat_Click(object sender, EventArgs e)
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 100
{
this.Close();
}
private void txt_KeyPress(object sender, KeyPressEventArgs e)
{
// Lấy về đối tƣợng TextBox
TextBox textBox = (TextBox)sender;
textBox.ImeMode = ImeMode.Disable;
char chrNumberDecimalSeparator =
System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator.To
CharArray()[0];
// Lấy về mã ASCII của ký tự vừa đƣợc gõ vào TextBox
char keycode = e.KeyChar;
int c = (int)keycode;
// Kiểm tra ký tự vừa nhập vào có phải là các số nằm trong khoảng
// 0..9
if ((c >= 48) && (c <= 57))
{
e.Handled = false;
}
else
//Kiểm tra xem đã có dấu cách của số thập phân đã tồn tại chƣa?
if (c==45 ||(c == (chrNumberDecimalSeparator) &&
textBox.Text.IndexOf(chrNumberDecimalSeparator) == -1))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
if (c == 8)
{
e.Handled = false;
}
}
#endregion
#region User function define
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 101
private bool CheckControl()
{
if(txtX1S1.Text.Trim()==string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtX1S1.Focus();
return false;
}
if (txtY1S1.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtY1S1.Focus();
return false;
}
if (txtX2S1.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtX2S1.Focus();
return false;
}
if (txtY2S1.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtY2S1.Focus();
return false;
}
if (txtF1up.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtF1up.Focus();
return false;
}
if (txtB1up.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtB1up.Focus();
return false;
}
if (txtF1down.Text.Trim() == string.Empty)
{
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 102
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtF1down.Focus();
return false;
}
if (txtB1down.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtB1down.Focus();
return false;
}
if (txtPs1.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtPs1.Focus();
return false;
}
if (txtPe1.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtPe1.Focus();
return false;
}
if (txtGp3.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtGp3.Focus();
return false;
}
if (txtG2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtG2.Focus();
return false;
}
if (txtX1S2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtX1S2.Focus();
return false;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 103
}
if (txtY1S2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtY1S2.Focus();
return false;
}
if (txtX2S2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtX2S2.Focus();
return false;
}
if (txtY2S2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtY2S2.Focus();
return false;
}
if (txtFup2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtFup2.Focus();
return false;
}
if (txtBup2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtBup2.Focus();
return false;
}
if (txtFdow2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtFdow2.Focus();
return false;
}
if (txtBdown2.Text.Trim() == string.Empty)
{
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 104
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtBdown2.Focus();
return false;
}
if (txtPs2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtPs2.Focus();
return false;
}
if (txtTs.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtTs.Focus();
return false;
}
if (txtPe2.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtPe2.Focus();
return false;
}
if (txtTe.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtTe.Focus();
return false;
}
if (txtT.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtT.Focus();
return false;
}
if (txtGamma.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtGamma.Focus();
return false;
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 105
}
if (txtG2M.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtG2M.Focus();
return false;
}
if (txtG1M.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtG1M.Focus();
return false;
}
if (txtG4M.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtG4M.Focus();
return false;
}
if (txtG3.Text.Trim() == string.Empty)
{
MessageBoxEx.Show("Hãy nhập giá trị cần tính ?", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtG3.Focus();
return false;
}
return true;
}
#endregion
private void txtX2S2_TextChanged(object sender, EventArgs e)
{
}
private void groupBox3_Enter(object sender, EventArgs e)
{
}
private void txtX1S1_TextChanged(object sender, EventArgs e)
Đồ án tốt nghiệp Tính can nhiễu giữa các vệ tinh
Sinh viên thực hiện: Nguyễn Văn Linh 106
{
}
private void label32_Click(object sender, EventArgs e)
{
}
}
}
Các file đính kèm theo tài liệu này:
- tinh can nhieu giua cac ve tinh.pdf