1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Cac phuong phap xac dinh BER

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi HMit, 30/03/2004.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. HMit

    HMit Thành viên mới

    Tham gia ngày:
    03/03/2004
    Bài viết:
    28
    Đã được thích:
    0
    Cho mình hỏi về các phương pháp xác định BER của hệ thống. Mình nghe nói có 2 cách chính là định trước số lượng lỗi sẽ đo và dựa trên số lượng bit truyền. Cả hai đều phải có đồng bộ điểm đầu và cuối thời gian đo.
    Lý thuyết là vậy, nhưng thực hành như thế nào thì chưa được làm bao giờ. Vậy có ai biết xin chỉ dùm để mình tham khảo được không.
  2. nghichnham

    nghichnham Thành viên mới

    Tham gia ngày:
    30/04/2003
    Bài viết:
    1.097
    Đã được thích:
    0
    Mình không rõ BER được sử dụng ở những đâu và khi nào. Mình chỉ hiểu cách dùng của nó trong truyền hình số thôi.
    Trong điều chế OFDM, tín hiệu được trải ra trên các sóng mang trực giao về mặt tần số tạo thành các symbol. Các symbol được phát liên tục và cứ 68 symbol thì tạo thành frame, 4 frame thành một superframe. Như thế một frame sẽ tạo bởi cả hai chiều là thời gian và tần số.
    trong một frame như vậy, người ta định sẵn một số sóng mang Pilot tại các vị trí nhất định sẽ không mang tin tức mà có nội dung xác định trước cả phía phát và phía thu.
    Phía thu dựa trên nội dung này để đánh giá xem số lượng lỗi trong quá trình truyền là như thế nào.
    That is all for today
    Vote me once if you like it
  3. JohnSteve

    JohnSteve Thành viên rất tích cực

    Tham gia ngày:
    09/03/2002
    Bài viết:
    1.261
    Đã được thích:
    0
    Thực ra cả hai cách đó là một, đó là truyền một số lượng bit thông tin nhất định, sau đó tính sỗ bit lỗi. BER được tính như sau:
    BER = (số bit lỗi) / (tổng số bit đã truyền qua hệ thống).
    Lý thuyết tính BER dựa trên cơ sở sau đây. Nếu gọi Pe là trung bình xác suất xảy ra lỗi khi truyền thông tin qua hệ thống. Gọi Pe(n) là xác suất xảy ra lỗi (tức thời) ở thời điểm n vả giả sử rằng chúng ta làm mô phỏng N lần. Khi đó,
    Pe = lim [ (1/N)*( Pe(1) + Pe(2) + ...+ Pe(N) )] khi N--> vô cực.
    Có nghĩa là nếu chương trình mô phỏng đủ dài (N đủ lớn) thì BER là xấp xỉ của xác suất xảy ra lỗi khi truyền thông tin qua hệ thống.
    Ở BER khoảng 10^-4 trở xuống thì thông thường có khoảng 100 lỗi thì BER tương đối chính xác. Ví dụ, nếu ta muốn xác đinh BER ở khoảng 10^-6 thì ta nên truyền khoảng 100 000 000 bit thông tin qua hệ thống sau đó đếm số lỗi.
    Nếu bạn dùng thiết bị đo thì bản thân trong thiết bị đã có đồng bộ, thiết bị sẽ đếm số bit lỗi cho bạn. Bạn đã biết tốc độ truyền tin (bits/s), như vậy bạn có thể đếm số lỗi trong một khoảng thời gian T nào đó. Giả sử trong thời gian T giây đó, bạn đếm (hay thiết bị đo đếm) được M bit lỗi và bạn biết tốc độ truyền thông tin qua hệ thống là B bits/s. Khi đó BER được tính:
    BER = M / (T * B)
    Nếu bạn dùng phần mềm để mô phỏng hệ thống thì đơn giản rồi. Bạn chia thông tin thành từng gói (frame) rồi truyền trên kênh. Sau khi truyền mỗi gói, bạn thu thông tin, giải mã ... rồi so sánh nó vời gói dữ liệu trước khi truyền và đếm số lỗi xảy ra khi truyền gói thông tin đó. Giả sử bạn truyền N gói thông tin mỗi gói có độ dài K bits, tổng số lỗi mà phần mềm đếm được sau khi truyền N gói đó là M thì BER là
    BER = M / (N * K)
    Phương pháp đếm số lỗi làm như sau, sau khi truyền xong một gói, bạn có được tống số lỗi đã xảy ra từ lúc bắt đầu chương trình đến thời điểm hiện tại. Nếu số lỗi đủ lớn (theo dự tính của bạn) thì bạn dừng chương trình và tính BER theo công thức ngay trên đây.
    Thực sự không biết đây có phải là thông tin bạn cần không. Nếu không phải thì bạn nói cụ thể hơn để mọi người tham gia.
    Được johnsteve sửa chữa / chuyển vào 15:02 ngày 30/03/2004
  4. nguyenk36

    nguyenk36 Thành viên rất tích cực

    Tham gia ngày:
    10/03/2004
    Bài viết:
    1.323
    Đã được thích:
    23
    Nguyên lý chung để xác định BER thì ai cũng biết, đó là lấy tỷ số các bit bị lỗi /tổng số các bit được trưyền, việc này được thực hiện bằng các counter trong các thiết bị đo.
    Trong thực tế việc xác định BER tuỳ theo trường hợp, có khi phải sử dụng máy đo cắm trực tiếp vào luồng truyền dẫn. Nhưng thông thường bản thân các thiết bị viễn thông đã tích hợp khả năng đo và đưa ra cảnh báo các mức lỗi bit. VD trong thiết bị BTS hay BSC của Alcatel và Motorola đều có chức năng này, khi mức BER là 10 mũ -6 sẽ đưa ra cảnh báo, 10 mũ -3 thì nó chết luôn (tuy nhiên mức lỗi bit 10 mũ -4 thì chất lượng đã rất kém)
    Hay việc xác định mức BER trên giao diện vô tuyến của hệ thống thông tin di động thì thường sử dụng máy đo TEMS (Test of Mobile System) máy này trông hệt như chiếc máy di động thông thường nhưng giá của nó thì từ 21 đến 35 nghìn USD. TEMS có thể đánh giá chính xác BER tại từng vị trí khi thực hiện driving test ngoài hiện trường (máy được kết nối với máy tính xách tay và sử dụng phần mềm của Ericsson). Ngoài BER thì một chỉ số cũng rất quan trọng để đánh giá được chất lượng tín hiệu đó là FER (Frame Erase Rate).

    Đường đi khó không phải vì ngăn sông cách núi mà khó vì lòng người ngại núi e sông
    Được nguyenk36 sửa chữa / chuyển vào 20:33 ngày 30/03/2004
  5. nghichnham

    nghichnham Thành viên mới

    Tham gia ngày:
    30/04/2003
    Bài viết:
    1.097
    Đã được thích:
    0
    Bac co the noi ro cac phuong phap de xac dinh duoc so bit loi o phia thu khong???
  6. Nghi

    Nghi Thành viên quen thuộc

    Tham gia ngày:
    14/03/2001
    Bài viết:
    924
    Đã được thích:
    0
    cầm cái received đem về so với cái transmitted
    Bao nhiêu người đẹp ta không biết
    Người đẹp bao người đâu biết ta
    Ta đi trong cõi vô tình ấy
    Trời bỗng mờ sương mắt bỗng nhòa
    Hnt1
  7. nghichnham

    nghichnham Thành viên mới

    Tham gia ngày:
    30/04/2003
    Bài viết:
    1.097
    Đã được thích:
    0
    He he, bac cu dua. Co phai luc nao cung cam duoc cai received được đâu. Ngẫu nhiên cả mà.
  8. HMit

    HMit Thành viên mới

    Tham gia ngày:
    03/03/2004
    Bài viết:
    28
    Đã được thích:
    0
    Theo nhu ban JohnSteve thi minh se quan sat mot chuoi check bit N lan roi tinh. Nhu minh biet thi nguoi ta xac dinh dua tren thoi gian quan sat chu khong dua tren so lan quan sat. Vi du de quan sat duoc chinh xac thi se dat thoi gian trong 1 ngay (de ket qua khong bi roi vao luc luu luong thong tin nho hay lon ma la trong thoi gian 1 ngay luc luu luong bit thay doi). Con ket qua BER lai phu thuoc vao sai so do minh dat ra. Vi du neu muon sai so 10% thi co cong thuc N=1/(s*s), o day s=0.1, nhu vay minh co the dung va tinh ket qua khi co 100 loi xay ra. Chinh o day lai co 3 cach xac dinh khac nhau. Neu dung phan mem thi qua don gian, vi ta co the so sanh ngay lap tuc chuoi truyen va chuoi nhan. Nhung minh muon noi ve thuc te co. Khi do vi du nhu truong hop khong the noi may do truc tiep vao giua day dan (dang nay goi la noi tiep) vi khong duoc ngat duong truyen, ma nhieu khi chi co the mac song song de do. Theo minh biet dang noi tiep thi co the xac dinh loi den 1 bit, con dang thu hai thi khong, chi co the xac dinh loi trong chuoi thoi, 2 loi cung nhu 1. Cai minh quan tam la trong sach minh doc chi noi so ve phuong phap do: phia phat truyen di chuoi code dang nhu cyclic codes, phai thu se do dua tren sai khac cua phep chia. Vay ban chat cua no la gi, co the dung codes khac khong? The khi nao test cung phai phat di mot chuoi qui dinh truoc?
    Co ban nao co the cho minh cac qui dinh thong so BER co the cho tung dang: truyen hinh so vo tuyen, huu tuyen, thu phat qua ve tinh, ASDL, ... Neu duoc thi chi cho minh nguon tai lieu chinh thuc nua nhe, nhat la tai lieu ve xac dinh BER (va co the con cac thong so khac nua!, nhu thoi gian xuat hien bit loi, FER, ...). Cam on moi nguoi da quan tam. Go ngoai Notepad nen luoi them dau cho nhanh, moi nguoi doc thong cam nha!
  9. JohnSteve

    JohnSteve Thành viên rất tích cực

    Tham gia ngày:
    09/03/2002
    Bài viết:
    1.261
    Đã được thích:
    0
    (+) Nếu bạn hỏi rõ ra như thế này thì anh em đỡ phải gõ nhiều. Thứ nhất, cái số N mình nói ở trên là nói về số frame mà mình quan sát chứ không phải cứ truyền đi truyền lại một frame N lần rồi tính BER. Số N trong công thức toán học về xác suất lỗi là tôi nói cái lý thuyết toán học mà dựa vào đó BER được xác lập. Tính BER chính là lấy trung bình theo thời gian để xấp xỉ trung bình thống kê (statistical average). Lý thuyết đó trong toán học gọi là "The Strong Law of Large Numbers". Khi quan sát số frame N lớn cũng chính là quan sát trong một thời gian dài như bạn nói. Số N càng lớn thì BER càng chính xác.
    (+) Bây giờ viết một chút về cái code cyclic mà bạn hỏi. Hy vọng đây đúng thật là cái bạn hỏi .
    Cái code mà bạn hỏi chính là cyclic redundancy check (CRC) hay là mã phát hiện lỗi (Error Detection Code) được sử dụng rất rộng rãi trong truyền thông tin số nhằm để phát hiện lỗi xảy ra trên đường truyền. Bản chất của mã đó như sau: Mỗi một gói (frame) dữ liệu trước khi bạn truyền đi ở phía phát sẽ được thêm vào ở cuối frame đó một chuỗi bit nhị phân không phải là dữ liệu hữu ích. Chuỗi bit nhị phân được thêm vào ở cuỗi mỗi frame là phần dư của phép chia của frame đó cho một đa thức đặc biệt. Đa thức này chính là đa thức sinh ra các từ mã trong bộ mã CRC đó. Chiều dài và nội dụng cụ thể của chuỗi bit được thêm vào cuối mỗi frame phụ thuộc vào chiều dài và nội dung của frame và chiều dài và nội dung của đa thức g(x). Giả sử rằng frame của bạn có k bit, khi đó frame đó có thể được miêu tả bởi một đa thức nhị phân bậc k, gọi đó là f(x). Gọi đa thức sinh ra các từ mã của bộ mã CRC mà bạn sử dụng là g(x), có bậc là n (n < k) thì đa thức phần dư của phép chia sẽ có bậc là n-1. Trước khi truyền frame dữ liệu đi, bạn làm như sau:
    ------------------------------------------------------------------------

    (+) Ví dụ: một chuỗi nhị phân 11 0 10 1 có thể được biểu diễn bằng một đa thức sau:
    f(x) = x^5 + x^4 + x^2 + 1

    ------------------------------------------------------------------------
    -- Thứ nhất, bạn dịch frame dữ liệu sang trái n-1 bit để thêm n-1 bit vào cuối frame. Khi bạn dịch frame dữ liệu sang trái n-1 bit thì đa thức dữ liệu f(x) trở thành f1(x) = f(x) * x^n-1
    -- Sau đó bạn lấy đa thức mới được dịch sang trái (tức là f1(x) ) chia cho đa thức g(x) bạn sẽ được
    f1(x)/g(x) = a(x) + b(x)/g(x) --------------> (1)
    Trong đó a(x) là đa thức kết quả của phép chia và b(x) là phần dư của phép chia đó, cũng là một đa thức và có bậc là n-1. Sau khi chia xong, bạn thêm chuỗi bit nhị phân mô tả đa thức b(x) vào cuối frame của bạn rồi truyền đi trên kênh. Như vậy bạn truyền đi trên kênh một đa thức (hay chính là một chuỗi bit) có dạng như sau:
    f2(x) = f1(x) + b(x) ---------------> (2)
    -- Bạn có thể thấy là đa thức f2(x) bây giờ đã chia hết cho đa thức g(x) vì rằng phần dư của phép chia đã được thêm vào khung dữ liệu. Có thể kiểm tra điều này bằng toán như sau:
    f2(x) / g(x) = [ f1(x) + b(x) ] / g(x) = f1(x) / g(x) + b(x) / g(x) ----------> (3)
    Bạn lấy (1) thay vào (3) sẽ được
    f2(x) / g(x) = a(x) + b(x) / g(x) + b(x) / g(x) = a(x) + [ b(x) + b(x) ] / g(x) = a(x) + 0 ---------------> (4)
    ------------------------------------------------------------------------------

    (+) Tiện đây cũng giải thích thêm: Các đa thức trên đây là các đa thức nhị phân (tức là hệ số của các đa thức đó thuộc trường số nhị phân, chỉ nhận 2 giá trị là 0 và 1) cho nên phép cộng trừ các hệ số của các đa thức đó cũng là các phép cộng trừ trong hệ phị phân (hay chính là phép cộng module 2). Trong phép cộng module 2 thì 1+ 1 = 0, 0 + 0 = 0, 1 + 0 = 0 + 1 = 1. Chính vì vậy mà b(x) + b(x) = 0.
    --------------------------------------------------------------------------------
    Như vậy là sau khi ta thêm chuỗi bit mô tả b(x) vào cuối frame dữ liệu của ta thì đa thức mới miêu tả frame mới đó là f2(x) sẽ chia hết cho đa thức sinh mã g(x).
    Bây giờ giả sử rằng trong quá trình truyền không hề có lỗi xảy ra. Khi đó ở phía thu bạn thu được chính xác f2(x). Nếu ở phía thu bạn lấy đa thức f2(x) chia cho đa thức sinh mã g(x) (khi bạn dùng một mã CRC nào đó thì cả phía thu và phía phát đều biết đa thức g(x) rồi) thì bạn sẽ được phần dư của phép chia là 0 như đã chứng minh trong công thức (4) trên đây. Giả sử rằng khi truyền frame dữ liệu trên kênh có lỗi xảy ra, khi đó phía thu sẽ không thu được f2(x) nữa mà nó sẽ thu được một frame khác được mô tả bằng một đa thức f3(x) nào đó khác đa thức f2(x). Khi đó, nếu phía thu bạn cũng thực hiện phép chia f3(x) cho g(x) bạn sẽ được:
    f3(x) / g(x) = a1(x) + b1(x) / g(x)
    trong đó b1(x) là đa thức dư của phép chia. Vì ta biết rằng đa thức mô tả khung dữ liệu trước khi truyền của ta chia hết cho g(x), bây giờ ta lại chia lại ở phía thu mà thấy phần dư không bằng 0 có nghĩa là trên đường truyền đã có lỗi xảy ra.
    (+) Nhưng nếu như ta thu được f3(x) khác f2(x) ở phía phát nhưng bản thân f3(x) cũng chia hết cho g(x) thì ở phía thu ta cũng thu được phần dư của phép chia là 0 và ta tưởng là truyền đi không có lỗi nhưng thực ra là có lỗi nhưng mã không phát hiện được (gọi là lỗi không thể phát hiện được -- undetectable errors). Mỗi một mã phát hiện lỗi chỉ có thể phát hiện được một số lỗi nhất định thôi.
    -- Dùng mã Cyclic như thế này thì phía thu không cần biết nội dung của dữ liệu bạn đã phát đi phía phát mà vẫn có thể phát hiện được lỗi.
    -- Tuy nhiên, tôi cho rằng mã Cyclic được dùng trong các hệ thống viễn thông của ta không phải nhằm mục đích tính BER mà nó được dùng cho các mục địch khác. Ví dụ như phía thu phát hiện ra lỗi bằng mã này để từ đó có thể yêu cầu phía phát truyền lại thông tin, đây chính là giao thức ARQ.
    -- Tôi cho rằng để tính BER thì máy phát vẫn phải phát thông tin mà máy thu đã biết (có thể là thông tin đã biết trước hoặc thông tin được một thuật toán nào đó tạo ra mà thuật toán đó cả máy thu và máy phát đều biết -- khi đó thông tin truyền đi chỉ là giả ngẫu nhiên chứ không còn hoàn toàn ngẫu nhiễn nữa) rồi.
    (+) Câu hỏi nữa của bạn là ngoài Cyclic code ra có thể dùng code khác không? Câu trả lời là có, có một số mã phát hiện lỗi có thể dùng được chứ không chỉ có Cyclic code. Tuy nhiên Cyclic code hay được dùng nhất vì việc mã hoá và phát hiện lỗi được thực hiện rất đơn giản về mặt tính toán (như trình bày trên đây) tuy có yêu cầu phức tạp về phần cứng (vì cần những thanh ghi lớn).
  10. Nghi

    Nghi Thành viên quen thuộc

    Tham gia ngày:
    14/03/2001
    Bài viết:
    924
    Đã được thích:
    0
    hé hé..giải thích nhiều quá chắc em HMit vỡ đầu mất...bác nào muốn biết rõ thì lấy quyển error control coding của Shulin mà đọc..từ block code, cyclic code, bch code, convolutional code...đủ hết. (nhưng không có những state of the art code như turbo code, turbo like code, LDPC)..kiến thức là vô tận..tốt nhất là không nên học
    Bao nhiêu người đẹp ta không biết Người đẹp bao người đâu biết ta Ta đi trong cõi vô tình ấy Trời bỗng mờ sương mắt bỗng nhòa Hnt1
    http://homepage.usask.ca/~hut461

Chia sẻ trang này