27
Viterbi decoder Nguyễn Ngọc Tú

Viterbi Decoder

Embed Size (px)

Citation preview

Page 1: Viterbi Decoder

Viterbi decoder Nguyễn Ngọc Tú

Page 2: Viterbi Decoder

Viterbi decode

Nội dung:I. Giới thiệuII. Lý thuyết giải thuật III. Thiết kế IV. Nhận xét , đánh giá

Page 3: Viterbi Decoder

Viterbi decode

Nội dung:I. Giới thiệuII. Lý thuyết giải thuật III. Thiết kế IV. Nhận xét , đánh giá

Page 4: Viterbi Decoder

Viterbi decode

• Viterbi là giải thuật giải mã tích chập được nhà bác học Andrew James Viterbi công bố và phân tích từ năm 1967.

Page 5: Viterbi Decoder

Viterbi decode

• Thuật toán viterbi được sử dụng tại hầu hết các hệ thông thông tin trên vũ trụ , tên lửa dẫn đường và các hệ thống TTDĐ tế bào

Page 6: Viterbi Decoder

Viterbi decode

• Ưu điểm : giảm bớt tính toán , ngắn gọn , bảo mật , có khả năng sửa sai …

• Nhược : chỉ dùng trong kênh ít nhiễu , chỉ sửa được số lỗi < số bộ đệm …

Page 7: Viterbi Decoder

Viterbi decode

Nội dung:I. Giới thiệuII. Lý thuyết giải thuật III. Thiết kế IV. Nhận xét , đánh giá

Page 8: Viterbi Decoder

Viterbi decode

• Thuật toán viterbi dựa vào việc tìm đường đi có khả năng nhất

Page 9: Viterbi Decoder

Viterbi decode

• Một bộ giải mã viterbi chỉ giải mã được cho 1 bộ mã hóa tích chập.

• Thuật toán dựa trên việc tính toán so sánh khoảng cách hamming giữa từ mã và các trạng thái của bộ mã hóa tích chập.

Page 10: Viterbi Decoder

Viterbi decode

Nội dung:I. Giới thiệuII. Lý thuyết giải thuật III. Thiết kế IV. Nhận xét , đánh giá

Page 11: Viterbi Decoder

Viterbi decode

Bộ lặp mã chập với chiều dài cưỡng bức K = 3 , tốc độ k/n = ½

Page 12: Viterbi Decoder

Viterbi decode

• Sơ đồ khối :

top-block diagram

textHamming ACS Save path

clk

rst

in Sig_out

Page 13: Viterbi Decoder

Viterbi decode

sơ đồ khối với các tín hiệu vào ra

hamming savepathACS

Kch_aa[1:0]

Kch_ab[1:0]

Kch_bc[1:0]

Kch_bd[1:0]

Kch_ca[1:0]

Kch_cb[1:0]

Kch_dc[1:0]

Kch_dd[1:0]

Kch_aa[1:0]

Kch_ab[1:0]

Kch_bc[1:0]

Kch_bd[1:0]

Kch_ca[1:0]

Kch_cb[1:0]

Kch_dc[1:0]

Kch_dd[1:0]

Path_a[8:0]Path_a[8:0]

Path_b[8:0]Path_b[8:0]

Path_c[8:0]Path_c[8:0]

Path_d[8:0]Path_d[8:0]

Clk

Clk Clk

RstRst

Rst

In[1:0]

Sig_out[5:0]

Page 14: Viterbi Decoder

Viterbi decode

Khối hamming

hamming

Kch_aa[1:0]

Kch_ab[1:0]

Kch_bc[1:0]

Kch_bd[1:0]

Kch_ca[1:0]

Kch_cb[1:0]

Kch_dc[1:0]

Kch_dd[1:0]

Clk

Rst

In[1:0]

Page 15: Viterbi Decoder

Viterbi decode

Giải thuật :

Nhập đầu vào

Tính toánkch_aa <= temp1[1]+temp1[0];kch_ca <= temp2[1]+temp2[0];kch_ab <= temp3[1]+temp3[0];kch_cb <= temp4[1]+temp4[0];kch_bc <= temp5[1]+temp5[0];kch_dc <= temp6[1]+temp6[0];kch_bd <= temp7[1]+temp7[0];kch_dd <= temp8[1]+temp8[0];

Đưa tín hiệu ra

temp1 <= in^c_aa;temp2 <= in^c_ca;temp3 <= in^c_ab;temp4 <= in^c_cb;

temp5 <= in^c_bc;temp6 <= in^c_dc;temp7 <= in^c_bd;temp8 <= in^c_dd;

Page 16: Viterbi Decoder

Viterbi decode

Mô phỏng :

Page 17: Viterbi Decoder

Viterbi decode

Khối ACS

ACS

Kch_aa[1:0]

Kch_ab[1:0]

Kch_bc[1:0]

Kch_bd[1:0]

Kch_ca[1:0]

Kch_cb[1:0]

Kch_dc[1:0]

Kch_dd[1:0]

Path_a[8:0]

Path_b[8:0]

Path_c[8:0]

Path_d[8:0]

Page 18: Viterbi Decoder

Viterbi decode

Giải thuật : Start

End

d_aa<d_ca

p_a <= d_aa;path_a[6:1] <= path_a[5:0];

p_a <= d_ca;path_a[6:1] <= path_c[5:0];

d_aa = kch_aa + p_a;d_ca = kch_ca + p_c;

Page 19: Viterbi Decoder

Viterbi decode

Mô phỏng

Page 20: Viterbi Decoder

Viterbi decode

Khối savepath

savepath

Path_a[8:0]

Path_b[8:0]

Path_c[8:0]

Path_d[8:0]

Clk

Rst

Sig_out[5:0]

Page 21: Viterbi Decoder

Viterbi decode

Giải thuật Start

End

count == 11

sig_out [5:0] <= path_a[8:2];

count <= count + 1

Page 22: Viterbi Decoder

Viterbi decode

Mô phỏng

Page 23: Viterbi Decoder

Viterbi decode

Nội dung:I. Giới thiệuII. Lý thuyết giải thuật III. Thiết kế IV. Nhận xét , đánh giá

Page 24: Viterbi Decoder

Viterbi decode

1. Nhận xét:Đến chu kì thứ 12 sau khi nhập đầu vào sẽ cho ra đầu

ra Chỉ sửa sai được 1 bit lỗiChỉ giải mã được cho 1 bộ mã tích chậpChưa giải quyết được vấn đề tràn bộ nhớ

Page 25: Viterbi Decoder

Viterbi decode

2. Kinh nghiệm thu được : Kiến thức về bộ giải mã viterbi Các bước thiết kế Sử dụng các thuật toán hợp lý Cách test , ghép nối các module Sử dụng phần mềm

Page 26: Viterbi Decoder

Ý kiến đóng góp & hỏi đáp

Page 27: Viterbi Decoder

The endThank you for listenning