--- Option Explicit
Public Const NUYc As Double = 1 ' dB 80 Public Const NUYd As Double = 0.8 'dB
Public m As Double '
Public Const Idm As Double = 5 'nA Public id0 As Double 'nA
Public x As Double ' 80
Public Const F As Double = 8 ' dB 81 Public Const R As Double = 16 ' Om ( Dien tro )
Public Const AnphaCW As Double = 0.22 'dB/Km Public Const AnPhaP As Double = 0.26 ' dB/Km
Public Const Gama As Double = 0.4 Public Const n As Double = 1.45
Public Const Acff As Double = 78 'micro square Public Const Pi As Double = 3.141592654
Public Const H As Double = 6.625 * 10 ^ (-34) ' Hang so Plank Public Const e As Double = 1.602 * 10 ^ (-19) ' Dien tich Electron Public Const v As Double = 3 * 10 ^ 8 / (1550 * 10 ^ (-12))
Public Const RIN As Double = 130 ' dB/Hz voi ti'n hieu LD Public Const k As Double = 1.38 * 10 ^ (-23)
Public Const B As Double = 1 ' MHz Public Const t As Double = 300
Public Function XichD2(id0 As Double, m As Double, x As Double) As Double
XichD2 = 2 * e * id0 + 2 * 3 * Idm * m ^ (2 + x) + 4 * k * t * F / R End Function
' anh sang bom
Public Function Pdc(pcw As Double, z As Double, c As Double) As Double
Pdc = pcw * Exp( AnphaCW * z) * c- End Function
Public Function Pamp(pp0 As Double, pcw As Double, z As Double, c As Double, W As Double) As Double
Pamp = Pdc(pcw, z, c) * Gama * pp0 * v * W / 2 * Exp(-AnPhaP * z) End Function
' Khi ta tinh den truong hop xa het cong suat bom do su chuyen nang luong trong KD Raman thi Pamp duoc tinh :
Public Function Pamp_XaHetCongSuat(pp0 As Double, pcw As Double, z As Double, c As Double, W As Double) As Double
Pamp_XaHetCongSuat = Pdc(pcw, z, c) * Gama * ((3 * 10 ^ 8) * W / 2) * pp0 * Exp(-AnPhaP * z) * Exp(Gama * pcw * Exp(-anpha * z) * (Exp(AnphaCW * z) - 1) / AnphaCW)
End Function
Public Function AnphaR(landacw As Double) As Double AnphaR = 0.05 / landacw ^ 4
End Function
Public Function Pd(pp0 As Double, pcw As Double, z As Double, c As Double, W As Double)
Pd = Pdc(pcw, z, c) + Pamp(pp0, pcw, z, c, W) End Function
'Khi do cong suat tan xa Raman tu phat do A'S' xung bom sinh ra
Public Function Psp(pp0 As Double, z As Double, W As Double, landacw As Double, aeff As Double) As Double
Psp = pp0 * Exp(-AnPhaP * z) * AnphaR(landacw) * S(landacw, aeff)
* (3 * 10 ^ 8) * W / 2 End Function
'AnphaR la he so suy hao tan xa Raman (Np/m) ' S duoc tinh nhu sau :
Public Function S(landacw As Double, aeff As Double) S = (landacw / n) * (landacw / n) / (4 * Pi * Acff) End Function
Public Function I1(pp0 As Double, pcw As Double, z As Double, c As Double, W As Double) As Double
I1 = pcw * (U(z, c) + VV(z, c, pp0, W)) End Function
Public Function I0(pcw As Double, z As Double, c As Double) As Double
I0 = NUYc * NUYd * e * Pdc(pcw, z, c) / H / v End Function
Public Function iss(pp0 As Double, pcw As Double, z As Double, c As Double, W As Double) As Double
iss = NUYc * NUYd * Pamp(pp0, pcw, z, c, W) * e / H / v End Function
Public Function inn(pp0 As Double, z As Double, W As Double, landacw As Double, aeff As Double) As Double
inn = NUYc * NUYd * (e / (H * v)) * Psp(pp0, z, W, landacw, aeff) End Function
Public Function U(z As Double, c As Double) As Double U = NUYc * NUYd * (e / (H * v)) * Exp(-AnphaCW * z) * c End Function
Public Function VV(z As Double, c As Double, pp0 As Double, W As Double) As Double
VV = NUYc * NUYd * (e / (H * v)) * c * Gama * pp0 * Exp(-AnPhaP
* z) * v * W / 2 End Function
Public Function Q(pp0 As Double, z As Double, W As Double, landacw As Double, aeff As Double) As Double
Q = NUYc * NUYd * (e / (H * v)) * pp0 * Exp(-AnPhaP * z) * AnphaR(landacw) * S(landacw, aeff) * v * W / 2
End Function
'KHI DO TI SO TIN HIEU TREN TAP AM DUOC TINH NHU SAU : Public Function Xich12(pp0 As Double, pcw As Double, z As Double, c As Double, W As Double, landacw As Double, aeff As Double, id0 As Double, m As Double, x As Double) As Double
Xich12 = 2 * e * (I1(pp0, pcw, z, c, W) + inn(pp0, z, W, landacw, aeff))
* m ^ (2 + x) + RIN * (I0(pcw, z, c)) ^ 2 * m ^ 2 + XichD2(id0, m, x) End Function
Public Function Xich02(pcw As Double, z As Double, c As Double, id0 As Double, m As Double, x As Double)
Xich02 = 2 * e * I0(pcw, z, c) * m ^ (2 + x) + RIN * (I0(pcw, z, c)) ^ 2
* m * m + XichD2(id0, m, x) End Function
Public Function SNR(Nave As Double, pp0 As Double, pcw As Double, z As Double, c As Double, W As Double, landacw As Double, aeff As Double, id0 As Double, m As Double, x As Double) As Double
SNR = 4 * (iss(pp0, pcw, z, c, W) * m) ^ 2 * Nave / ((Xich12(pp0, pcw, z, c, W, landacw, aeff, id0, m, x)) ^ 0.5 + (Xich02(pcw, z, c, id0, m, x)) ^ 0.5)
^ 2 * B
End Function
CÁC THỦ TỤC CỦA FORM CHÍNH
--- Private Sub cmdQuaylai_Click()
FrmDoThi.Show
FrmDoThi.PicDoThi.Picture = FrmTinhtoan.PicDoThi.Picture End Sub
Public Sub CmdTinhToan_Click() If TxtMode.Text = "PD" Then id0 = 0
x = 0 m = 1 End If
If TxtMode.Text = "APD" Then id0 = 5
x = 0.7 m = 20 End If
Dim MaxHoanh As Double Dim Maxtung As Double
Dim tung(50) As Double, i As Integer Dim hoanh(50) As Double
MaxHoanh = PicDoThi.Width PicDoThi.ScaleHeight = 300 PicDoThi.ScaleWidth = 50
Maxtung = SNR(CDbl(TxtNave.Text), CDbl(TxtPP0.Text), CDbl(50), CDbl(TxtZ.Text), CDbl(TxtC.Text), CDbl(TxtW.Text), CDbl(TxtLandaCW.Text), CDbl(txtAeff.Text), id0, m, x)
LblKQ.Caption = CStr(SNR(CDbl(TxtNave.Text), CDbl(TxtPP0.Text), CDbl(TxtPcw.Text), CDbl(TxtZ.Text), CDbl(TxtC.Text), CDbl(TxtW.Text), CDbl(TxtLandaCW.Text), CDbl(txtAeff.Text), id0, m, x))
For i = 0 To 50 ' Step -1
tung(i) = 300 - 300 * SNR(CDbl(TxtNave.Text), CDbl(TxtPP0.Text), CDbl(i), CDbl(TxtZ.Text), CDbl(TxtC.Text), CDbl(TxtW.Text), CDbl(TxtLandaCW.Text), CDbl(txtAeff.Text), id0, m, x) / Maxtung
Next
For i = 0 To 50 'Step -1 If tung(i) <= 300 Then
PicDoThi.PSet (i, tung(i)), &HFF If tung(i) < 300 Then
If i < 50 Then
PicDoThi.Line (i, tung(i))-((i + 1), tung(i + 1)), &HFF
End If End If End If
Next
'PicDoThi.Visible = False PicDoThi1.Visible = False End Sub
Private Sub CmdXem_Click()
LblDothi.Visible = Not LblDothi.Visible PicDoThi1.Visible = Not PicDoThi1.Visible LblTinhToan.Visible = Not LblTinhToan.Visible FrameDauvao.Visible = Not FrameDauvao.Visible FrameSodo.Visible = Not FrameSodo.Visible LblTinhToan.Visible = Not LblTinhToan.Visible If PicDoThi1.Visible = True Then
CmdXem.Caption = "&Quay lại"
Else: CmdXem.Caption = "&Xem đồ thị"
End If End Sub
Private Sub XPButton1_Click() Unload Me
End Sub
Kết luận và kiến nghị
Khuếch đại quang là một trong những bộ phận cực kỳ quan trọng trong các mạng thông tin quang WDM. Có nhiều phơng pháp khuếch đại quang sợi nhng trong các hệ thống viễn thông hiện nay chủ yếu là sử dụng khuếch đại EDFA và khuếch đại Raman. Và đặc biệt là sử dụng khuếch đại Raman trong hệ thống thông tin quang đã đem lại những tiến bộ vợt bậc về khả năng tăng dung lợng truyền dẫn trong thông tin quang.
Từ việc nghiên cứu lý thuyết nguyên lý các bộ khuếch đại quang sợi EDFA, TDFA, PDFA và Raman. Luận văn đã đi sâu tìm hiểu các thông số
đặc tính kỹ thuật của các bộ khuếch đại và mô hình ứng dụng trong hệ thống thông tin quang. Với những lợi ích to lớn mà khuếch đại Raman đem lại trong việc hệ thống thông tin quang, luận văn đã tập trung nghiên cứu ảnh hởng của công suất sóng liên tục CW đến tỉ số SNR trong khuếch đại Raman và xây dựng chơng trình mô phỏng kết quả.
Trong giai đoạn hiện nay, nhu cầu về tăng dung lợng truyền dẫn là rất lớn. Vì vậy, việc nghiên cứu tỉ mỉ khuếch đại Raman để ứng dụng vào thực tiễn là rất cần thiết. Trên cơ sở luận văn này, có thể tiếp tục đi sâu nghiên cứu các ảnh hởng của khoảng cách truyền dẫn, công suất đầu vào và việc bù công suất trong khuếch đại Raman.
Mặc dù đã hết sức cố gắng nhng không thể tránh khỏi những thiếu sót trong quá trình thực hiện và nghiên cứu đề tài. Kính mong các thầy cô giáo và các bạn góp ý để luận văn đợc hoàn thiện hơn./.