Hình 3.9: Sơ đồ thiết kế bộ tách pha
Bộ tách pha có nhiệm vụ tính pha lỗi của tín hiệu sóng mang nhận đƣợc ở bộ thu. Đây là một bộ phận thực hiện nhiệm vụ phức tạp nhất trong vòng bám pha. Bộ tách pha là tập của các bộ tƣơng quan. Tức là, bộ tách pha sẽ so sánh sự sai khác giữa pha của tín hiệu sóng mang đầu vào và pha của mạch tạo dao động là VCO lấy từ khối DDS để tính lỗi pha từ đó ƣớc lƣợng véctơ thu sao cho xác suất lỗi là tối thiểu. Do vậy để giảm tải tính toán cho bộ tách pha, ngƣời ta sử dụng một bảng nằm trên khối ATAN(I,Q),ở đó lƣu tất cả các góc tƣơng ứng với vị trí điểm của tín hiệu trên giản đồ chòm sao. Cách này không cần phải tính góc sai pha mà sẽ tra bảng để tìm ra góc pha cần tìm.
Sơ đồ khối của bộ tách pha :
Bộ định vị lại ký hiệu Pha đầu vào * Bộ hợp kênh phức Atan (I,Q) Lỗi pha * Nhân phức Nhân liên hợp
Hình 3.9-3: Cấu tạo bộ định vị ký hiệu 16-QAM Hình 3.9-2: Xác định điểm trên giản đồ
chòm sao dựa vào góc sai pha
Nếu phân tích theo thành phần cấu tạo, bộ tách pha sẽ bao gồm bộ định vị lại ký hiệu, bộ hợp kênh phức, khối ATAN(I,Q) mà thực chất là bảng tìm kiếm sine/cosine để tính góc pha trên chòm sao tín hiệu thu đƣợc. Sự sai khác pha giữa pha ở tín hiệu thu và pha ƣớc lƣợng đƣợc biểu diễn: ˆ trong khoảng từ -/2 /2 và ƣớc lƣợng pha trong khoảng này là đảm bảo. Với sự sai pha nhỏ, có thể coi sin().
Để giảm sự phức tạp của bộ tách pha, ngƣời ta làm nhƣ sau: pha lỗi đƣợc tính bằng cách so sánh sự khác pha giữa tín hiệu nhận x(n)+jy(n) và điểm tín hiệu trên chòm sao gần nhất Iˆ(n) jQˆ(n). Sai khác pha đƣợc tính: ) ( ) ( ) ( ˆ ) ( ˆ ) ( ˆ ) ( ) ( ˆ )) ( sin( 2 2 2 2 n Y n X n Q n I n Q n Y n I n
Hình 3.9-2 minh họa việc tính góc sai pha để xác định vị trí của tín hiệu trên giản đồ chòm sao. Tức là nó sẽ thực hiện ƣớc lƣợng ký hiệu thu đƣợc gồm hai thành phần thực và ảo ở trên với ký hiệu có sẵn trên giản đồ chòm sao để xác định ký hiệu vừa thu đƣợc ứng với điểm nào trên giản đồ chòm sao với sự sai khác cho phép tối thiểu nhất.
Còn bản đồ định vị lại ký hiệu ở đầu thu này để hiệu chỉnh thời gian đầu vào lấy mẫu đến điểm trên chòm sao gần nhất (dựa vào khoảng cách Euclid). Mạch này thực hiện đơn giản bằng một vài toán tử quan hệ đơn giản, bộ hợp kênh và bảng
tìm kiếm để truy xuất đến các giá trị tọa độ của chòm sao theo thành phần của véctơ [1/3, 1,-1,-1/3]. Sẽ có hai bộ định vị ký hiệu cho hai thành phần đồng pha và vuông pha của tín hiệu sau khi đã tách pha [12].
Còn lại là khối ATAN(I,Q), nó lƣu các giá trị góc tƣơng ứng với địa chỉ của ô nhớ trong bộ nhớ ROM để dễ dàng truy xuất đến giá trị góc cần tìm.
Nếu phân tích trên sơ đồ thiết kế mô phỏng, bộ tách pha sẽ bao gồm các khối Slicer, khối
NegaB_Cmplx Mult và khối Cordic. Một bộ tách pha tín hiệu thu với mật độ điểm của chòm sao điều chế dày nhƣ 16-QAM thì ngƣời ta phải tách thành hai pha để thực hiện so sánh, do khối
Slicer thực hiện (trong sơ đồ khối ngƣời ta kí hiệu là 2D-Slicer ám chỉ hai chiều thành phần
cho hai pha I,Q của tín hiệu). Mỗi pha so sánh vẫn tính toán sai pha theo công thức trình bày ở trên. Chú ý rằng điểm đƣợc phát hiện bằng cách định vị nó trên biểu đồ chòm sao dựa vào góc sai khác với các điểm liền kề. Sẽ xảy ra trƣờng hợp điểm này không hoàn toàn trùng khít với một điểm trên chòm sao, đó là vì nhiễu đã tác động lên tín hiệu đƣợc truyền, dẫn đến sự sai khác trên. Góc pha cho điểm dữ liệu càng lớn thì càng ít nhiễu và vòng lặp pha nên lợi dụng thông tin ở một pha để dùng cho pha còn lại. Khối con Gain Det trong bộ tách pha tăng độ lợi SNR độc lập bằng cách dùng hệ số vô hƣớng khác nhƣ là một hàm của bán kính pha đƣợc tách. Vậy có thể thấy, khối Slicer thực hiện việc lƣu điểm chòm sao gần nhất (là điểm chính xác của tín hiệu 16-QAM) căn cứ vào tín hiệu hai lối vào mà nó biểu thị điểm bị méo so với điểm trên chòm sao. Để làm đƣợc việc này
Slicer dùng mức ngƣỡng và một bảng tìm kiếm để lấy chính xác biên độ của tín hiệu 16- QAM sau khi so sánh. Trong trƣờng hợp này, ngƣỡng đƣợc chọn có giá trị là 0.7, có nghĩa là ngƣỡng cho phép của biên độ tín hiệu thu đến khối Slicer lấy là 0.7.
Hình 3.9-5: I (Q) Map
Hình 3.9-7: Tín hiệu Det_I và Det_Q sau khối Slicer
Chúng ta có thể quan sát thấy ở trên, hình 3.9-6 biểu diễn 2 lối vào tín hiệu, còn hình 3.9-7 cho ta biết tín hiệu đầu ra có biên độ chính xác tƣơng ứng thông qua so sánh biên độ tín hiệu vào với ngƣỡng.
Sau khối Slicer, tín hiệu đƣợc đƣa vào khối NegaB_Cmplx Mult, với bốn đầu vào: hai đầu vào tín hiệu trƣớc khi qua khối Slicer, hai đầu vào tín hiệu sau khi qua Slicer, do đó, giá trị thu đƣợc tại lối ra là:
Det_ I
Det_ Q Pi
Pr
Pre_c_r= cos ∆ ( Det2I + Det2Q) Pre_c_i= - sin ∆ ( Det2I + Det2Q)
Cuối cùng, tín hiệu Pre_c_i và Pre_c_r đƣợc đƣa vào khối Cordic, là khối xử lý thuật toán để tính sai pha cho quy trình khôi phục sóng mang của bộ thu.
Hình 3.9-8: Tín hiệu Pre_c_i và Pre_c_r trước khối Cordic
Khối giải thuật CORDIC ( coordinate rotation digital computer arithemetic ) Tín hiệu sau khi qua khối Slicer và khối NegaB_Cmplx Mult sẽ đƣợc đƣa đến khối
Cordic để xử lý tính pha lỗi. Nguyên tắc của giải thuật CORDIC nhƣ sau:
Giải thuật CORDIC là một thuật toán lặp dùng để tính góc quay của hai vectơ (có thể là đƣờng thẳng, đƣờng tròn hoặc hypebol trong hệ tọa độ sử dụng phép cộng và phép dịch làm cơ sở. Vì ở đây ta xét tín hiệu điều chế 16-QAM có các điểm nằm trên giản đồ chòm sao là hình tròn nên sẽ tính góc quay của hai vectơ trên hệ trục tọa độ là đƣờng tròn. Có hai chế độ điều khiển là chế độ quay RM (Rotation mode) và chế độ vectơ VM (Vectoring mode). Trong chế độ quay, một vectơ có tọa độ (x,y) sẽ bị quay pha một góc thành một vectơ mới có tọa độ (x’,y’). Mỗi một lần dịch đi một góc quay rất nhỏ i thì giá trị của góc
Pre_c_r
tan-1(2-i) sẽ lƣu lại ở bộ nhớ ROM sau đó đƣợc trừ hoặc thêm vào góc dƣ i, do vậy góc dƣ này sẽ tiến dần đến 0. Các bƣớc bao gồm:
1. Khởi tạo i=0, zi=0,
ai=-1 nếu zi <0 và ngƣợc lại zi>0. 2.Thực hiện vòng lặp: xi+1 = xi + ai .yi .2-i
yi+1 = yi + ai .xi .2-i zi+1 = zi + ai tan-1(2-i) i=i+1
trong đó x, y là biên độ và pha của góc chòm sao tƣơng ứng đƣợc tạo ra bởi bộ hợp kênh phức trong bộ tách pha, còn z là giá trị góc dịch đi. Vòng lặp tính i khởi tạo giá trị ban đầu bằng 0. Mỗi vòng lặp thực hiện việc thêm một bit xác định vào biên độ và pha I, Q cho đến khi nhận đƣợc kết quả cuối cùng. Điều kiện kiểm tra của thuật toán nhằm giảm giá trị y đến tối thiểu trong mỗi lần lặp. Khi số bƣớc lặp cần thiết đƣợc thực hiện xong thì góc dịch z lƣu giá trị xấp xỉ tính đƣợc vào bảng ATAN2(x,y).
Thuật toán CORDIC là một thuật toán cần thiết cho công nghệ FPGA. Nó chỉ là các phép tính cộng và trừ đơn giản. Những hàm của nó đƣợc bổ sung rất hiệu quả và chỉ đòi hỏi N/2 slices logic cho N-bit thêm hoặc bớt. Tuy nhiên thuật toán này bị hạn chế là không hội tụ với góc vào >/2. Để cấp phát đầy đủ các giá trị góc vào, máy tính phân tích thành ba trạng thái nhƣ hình 3.9-9. Khối quadrant map bao gồm phần tử logic so sánh, phần tử logic đảo, và phần tử logic nhân. Còn khối thứ hai chính là khối xử lý giải thuật CORDIC, thực hiện N vòng lặp với giá trị khởi tạo ban đầu là 0 với kết quả nhận đƣợc là x_n và y_n. Khối chức năng cuối cùng quadrant correct sẽ cho kết quả là giá trị góc z_n để xác định vị trí ký hiệu trên giản đồ chòm sao [12].
Hình 3.9-9: Sơ đồ thiết kế khối Cordic