73
chức năng nhận diện tín hiệu thoại (VAD) và phân tích, lựa chọn thuật tốn nén MELP, đề xuất và thực hiện cải tiến thuật toán MELP thành MELPe để phù hợp với các tính chất kênh truyền (băng tần hẹp, trên kênh hay lỗi bít, mất gói, mất đồng bộ
và phải hiệu quả trong việc cân đối giữa băng thông và chất lượng tín hiệu thoại, đặc biệt độ phức tạp tính tốn có thể thực hiện trên các Chíp ARM hay DSP) mà đề tài
hướng đến.
Trong chương 2 trình bày một số phương pháp điều chế dữ liệu tựa ngẫu nhiên thành tín hiệu tựa tiếng nói mà một số nghiên cứu trên thế giới đã làm, từ đó đề xuất phương pháp điều chế, kỹ thuật lựa chọn các thông số và thực hiện điều chế OFDM với QPSK. Đây là hướng nghiên cứu, mục tiêu chính và kết quả thực nghiệm đạt được của Luận án nghiên cứu.
74
CHƯƠNG 3: BẢO MẬT DỮ LIỆU SỬ DỤNG THUẬT TOÁN SINH SỐ GIẢ NGẪU NHIÊN DỰA TRÊN DÃY PHI TUYẾN HAI CHIỂU LỒNG
GHÉP 3.1. Giới thiệu m-dãy
3.1.1. Thanh ghi dịch và đa thức nguyên thủy
Để dựng một m-dãy có độ dài N = 2m – 1, ta biểu diễn đa thức nguyên thủy (prime polynomial) h(d) bậc m có dạng như sau:
ℎ(𝑑) = ℎ/+ ℎ+𝑑 + ℎ1𝑑1+. . . +ℎ2"+𝑑2"++ ℎ2𝑑2 = ∑2 ℎ!𝑑!
!%/ (3.1)
Trong đó h0 = hm = 1. Đa thức này được sử dụng để xây dựng thanh ghi dịch phản hồi tuyến tính (LFSR) như biểu diễn trong Hình 3.1, bao gồm m nút biểu diễn cho các phần tử nhớ hay các thành phần flip-flops (các phần tử tạo trễ 1 chu kì xung nhịp), mỗi phần tử nhớ có thể ghi nhớ giá trị ‘0’ hoặc ‘1’. Tại mỗi thời điểm có sườn lên của xung nhịp Clock, giá trị trong các phần tử nhớ được dịch sang phần tử bên phải, đồng thời giá trị phản hồi được tính tốn theo các hệ số của đa thức h(d) sau đó phản hồi đến phần tử đầu cùng bên trái. Phép tính phản hồi là phép nhân và cộng theo mô- đun 2, tương đương với phép tính AND và XOR trong mạch điện tử.
Từ đặc tính này, ta có thể thấy rằng một dãy có thể được tạo bởi một bộ LFSR 2 trạng thái, và có các hệ số phản hồi được kết nối đến đầu ra của phần tử nhớ thứ i nếu như hi = 1 và khơng có phản hồi nếu hi = 0.
Hình 3.1. Thanh ghi dịch phản hồi tương đương h(d)
+ + + + D D D D 1 h h2 hm 2- hm 1- ... ... Đầu ra 0 h =1 hm=1
75
Đa thức h(d) là đa thức nguyên thủy bậc m nếu số nguyên nhỏ nhất n, mà đối với số này dn + 1 chia hết cho đa thức g(d) với n = 2m – 1.
Ví dụ 3.1: h(d) = d5 + d4 + d3 + d + 1 là một đa thức nguyên thủy bậc m = 5 vì số nguyên n nhỏ nhất mà dn + 1 chia hết cho đa thức g(d) là n = 25 – 1 = 31. Trái lại, h(d) = d5 + d4 + d3 + d2 + d + 1 khơng phải là ngun tố vì: d6 + 1 = (d + 1)(d5 + d4 + d3 + d2 + d + 1), nên số n nhỏ nhất bằng 6.
Số đa thức nguyên thủy bậc m bằng:
𝑁3 =2+ 𝛷(22− 1) (3.2)
Trong đó F(n) là hàm Euler xác định bởi:
𝛷(𝑛) = 𝑛. ∏ =1 −+
3>
3|0 (3.3)
Ở đây p|n là ký hiệu “tất cả các ước số nguyên tố của n”. Hàm Euler F(n) bằng số các số nguyên dương nhỏ hơn n và là các số nguyên tố cùng nhau so với n.
Ví dụ 3.2: F(15) = 15(1 – 1/3)(1 – 1/5) = 8, ta thấy rằng {1, 2, 4, 7, 8, 11, 13, 14} là các số nguyên tố cùng nhau so với 15. Ngoài ra, F(31) = 30, ta thấy rằng F(p) = p – 1 cho mọi số nguyên tố p ³ 1 vì tất cả các số dương nhỏ hơn p đều là số nguyên tố cùng nhau so với p.
Bảng 3.1. Thống kê số lượng đa thức nguyên thủy có bậc m. Bậc m Độ dài chuỗi N = 2m - 1 Số đa thức Bậc m Độ dài chuỗi N = 2m - 1 Số đa thức
3 7 2 4 15 2 5 31 6 6 63 6 7 127 18 8 255 16 9 511 48
76
Bậc m Độ dài chuỗi N = 2m - 1 Số đa thức
10 1023 60 11 2047 176 12 4095 144 13 8191 630 14 16383 756 15 32767 1800 16 65535 2048 17 131071 7710 18 262143 7776 19 524287 27594 20 1048575 24000
3.1.2. Dãy có độ dài cực đại
Trong hình 3.2, từ m nút chứa các giá trị 0 hoặc 1, ta có thể đưa ra 2m trạng thái khác nhau cho thanh ghi dịch. Nhưng trạng thái gồm m giá trị 0 thì khơng thể xuất hiện (trong trường hợp này m-dãy sẽ sinh ra một dãy chứa toàn bit 0). Vậy chu kì cực
đại có thể là 2m-1.
Trong tài liệu [20] đã chứng minh rằng, nếu h(d) là một đa thức nguyên thủy bậc m, thanh ghi dịch sinh bởi đa thức h(d) sẽ sinh ra dãy đầu ra có chu kỳ kì 2m-1. Ta gọi dãy đó là m-dãy.