2.2.4.1 Thiết kế bộ lọc FIR
-Chỉ tiêu kỹ thuật: Các chỉ tiêu bộ lọc thông thấp 2,4 kHz đặt ra cho thiết kế: + Lọc thông thấp; + Cửa sổ Hamming; + Tần số lấy mẫu 24 kHz; + Tần số cắt 2,4 kHz; + 250 mắt lọc; + 250 hệ số lọc 16 bit; + Độ rộng dữ liệu 16 bit; + Số kênh 2 (kênh I, Q).
- Phần cứng thực hiện: IC FPGA bảng mạch phần cứng đã được thiết kế - Mô phỏng và thiết kế phần mềm:
+ Cấu trúc bộ lọc được thiết kế:
41
Hình 2.25: Cấu trúc được thực hiện của bộ lọc FIR + Đặc tuyến phổ đạt được:
Hình 2.26: Đặc tuyến của bộ lọc FIR thông thấp tần số cắt 2.4 KHz + Các thành phần vào/ra của mô đun phần mềm lọc FIR:
- Kết quả thực nghiệm: Mã chương trình thiết kế được biên dịch, nạp vào bảng mạch phần cứng, cấp nguồn và dùng máy phân tích mạng vector đo tín hiệu đầu ra. Kết quả như sau:
42
Hình 2.27: Sơ đồ thực hiện kiểm tra bộ lọc FIR
Hình 2.28: Tín hiệu tần số 0,5 KHz quan sát trên máy hiện sóng sau khi qua bộ lọc thấp tần 2,4 KHz
Hình 2.29: Tín hiệu tần số 2,6 KHz quan sát trên máy hiện sóng sau khi qua bộ lọc thấp tần 2,4 KHz
- Kết luận:
+ Khi mô tả một bộ lọc FIR trong Verilog, các vector bit được sử dụng cho việc mô tả các giá trị đầu vào và đầu ra dữ liệu cũng như cho các hệ số lọc;
+ Hàm truyền của bộ lọc thu được bằng một thanh ghi dịch và một vòng lặp mà trong đó các hệ số bộ lọc được nhân với các giá trị của thanh ghi dịch;
43
+ Để thực hiện lọc dải biên không mong muốn trong điều chế tín hiệu đơn biên, một bộ lọc FIR thông thấp có tần số cắt 2,4 kHz được thực hiện trong FPGA. Cấu trúc của bộ lọc gồm 250 mắt lọc, các dữ liệu được xử lý, tính toán là 16 bit có dấu;
+ Bộ lọc FIR được thiết kế với tần số lấy mẫu tín hiệu thấp, do đó cho phép dùng chung các tài nguyên của FPGA như bộ nhân, bộ cộng.
2.2.4.2 Thiết kế bộ lọc CIC
Hình 2.30: Mô phỏng đặc tuyến bộ lọc CIC
- Chỉ tiêu kỹ thuật: Tần số lấy mẫu âm tần được chọn là 24 kHz và tần số lấy mẫu trung tần là 150 MHz, để hệ thống hoạt động đồng bộ cần có sự chuyển đổi từ tần số lấy mẫu 24 KHz lên tần số 150 MHz (6250 lần) đối với phần phát và chuyển từ 150 MHz xuống 24 KHz đối với phần thu. Thực hiện quá trình bằng bộ lọc CIC với các tham số được xác định như sau:
+ Số trạng thái N (số khâu tích phân và số khâu răng lược) = 3; + Hệ số thay đổi mẫu R = 6250;
+ Khâu giữ chậm vi phân M = 1;
44
Hình 2.31: Mô phỏng đáp ứng pha của bộ lọc CIC
- Phần cứng thực hiện: IC FPGA bảng mạch phần cứng đã được thiết kế - Mô phỏng và thiết kế phần mềm:
+ Đặc tuyến và đáp ứng pha của bộ lọc CIC. + Tính toán số bit đầu ra của bộ lọc CIC:
CIC tăng mẫu:B
CIC giảm mẫu: BmaxN log2RMB3log2 6250 16
54 + Các thành phần vào/ra của mô đun phần mềm lọc CIC:
- Kết quả thực nghiệm: Mã chương trình thiết kế được biên dịch, nạp vào bảng mạch phần cứng, cấp nguồn và dùng các máy hiện sóng đo tín hiệu đầu ra. Sơ đồ và kết quả như sau:
Hình 2.32: Sơ đồ thực hiện kiểm tra bộ lọc CIC
45
Hình 2.33: Tín hiệu trước và sau khi qua bộ lọc CIC tăng mẫu
Hình 2.34: Tín hiệu trước và sau khi qua bộ lọc CIC giảm mẫu - Nhận xét:
+ Đặc tuyến chọn lọc thấp tần của CIC cao; + Hệ số khuếch đại lớn;
+ Không gây méo dạng tín hiệu; + Đáp ứng pha của bộ lọc tuyến tính.
2.3 Kết luận chương 2
Chương 2 của luận văn đã trình bày chi tiết thiết kế các mô đun xử lý tín hiệu số. Quá trình thiết kế có mô phỏng tính toán và điều chỉnh các tham số. Sau khi mô phỏng tính toán, từng mô đun được thiết kế trên FPGA với ngôn ngữ mô tả phần cứng Verilog. Kết quả thiết kế được nạp vào bo mạch phần cứng và kiểm tra trên máy đo như máy hiện sóng, máy phân tích phổ. Từng mô đun sau đó được dùng cho thiết kế bộ DPLL cho phần giải điều chế QPSK. Cụ thể nội dung và kết quả thiết kế được trình bày trong chương 3.
46
Chương 3: KẾT QUẢ THIẾT KẾ 3.1 Kết quả tổng hợp thiết kế phần mềm
Thiết kế bộ DPLL dùng trong vòng lặp Costas giải điều chế QPSK được thiết kế bằng ngôn ngữ mô tả phần cứng Verilog và biên dịch trên phần mềm ISE 14.6 cho chip XC3S400/XC3S500E của Xilinx.
Hình 3.1: Biên dịch và nạp chương trình trên phần mềm ISE
Các khối chức năng được thiết kế chính bao gồm: khối điều chế QPSK (qpsk_tx.v), các mô dun cho giải điều chế QPSK (dds.v, mixer_rx.v, cic_decimate.v, lpf_rx.v...).
47
Hình 3.2: Các mô đun phần mềm được tổng hợp
Kết quả tài nguyên sử dụng thiết kế được cho trong hình 3.3. Số Silce Flip Flops là 3304, 4139 LUT, 2715 Slice, 4 RAM, 8 bộ nhân MULT 18x18...
Hình 3.3: Tài nguyên FPGA được sử dụng sau khi tổng hợp
Chương trình sau khi tổng hợp được nạp xuống chip FPGA, đo đạc kiểm tra kết quả thiết kế.
48
Hình 3.4: Đo đạc kiểm tra kết quả thiết kế
3.2 Các kết quả đo đạc kiểm tra trên bo mạch phần cứng3.2.1 Tín hiệu điều chế QPSK 3.2.1 Tín hiệu điều chế QPSK
Tín hiệu điều chế QPSK được sử dụng đưa tới bộ giải điều chế để đánh giá kết quả thiết kế bộ khóa pha số trong sơ đồ giải điều chế tín hiệu. Kết quả đo trên máy hiện sóng được cho trong hình dưới.
Hình 3.5: Tín hiệu QPSK
49
3.2.2 Giải điều chế QPSK
Hình 3.6: Sơ đồ khối bộ giải điều chế QPSK bên trong FPGA
Hình 3.7: Sơ đồ khối chuyển dịch tần số về băng tần gốc DDC
Tín hiệu trung tần QPSK được lấy mẫu tại tần số lấy mẫu là Clks = 150 MHz bởi IC chuyển đổi tín hiệu tương tự thành tín hiệu số 10 bit, tín hiệu số 10 bit được nhân với hai sóng mang vuông góc 12 bit Cosin và Sin do DDS tạo ra, đầu ra hai bộ nhân là 24 bit (12 + 10), tuy nhiên ta chỉ lấy 16 bit cao để đưa vào bộ lọc CIC. Bộ lọc CIC có đặc tính của bộ lọc thông thấp và chức năng chính của nó là giảm tốc độ mẫu tín hiệu xuống 8 lần. Dữ liệu được đưa đến khối khôi phục sóng mang và khối khôi phục định thời để khôi phục chuỗi bit dữ liệu đã phát đi.
Hình 3.8: Mô phỏng khối DDC
50
Khối khôi phục sóng mang (Costas Loop):
Hình 3.9: Bộ lọc vòng khôi phục sóng mang
Hình 3.10: Kết quả mô phỏng khôi phục sóng mang
Hình 3.10 minh họa quá trình khóa pha của mạch vòng khóa pha Costas, lúc đầu sóng mang phần thu có pha không ổn định và tần số lớn hơn sóng mang phần phát, sau đó mạch Costas đã khóa pha sóng mang thu tại trường hợp sai lệch về pha là 0 như trên phần lý thuyết đã nghiên cứu. Các hình vẽ sau minh họa dữ liệu thu khi sóng mang chưa được khôi phục và khi sóng mang đã được khôi phục.
Hình 3.11: Mô phỏng sóng mang và Symbol chưa được khôi phục
51
Hình 3.12: Mô phỏng sóng mang và dữ liệu đã được khôi phục
Từ hai hình vẽ trên ta thấy rằng, dữ liệu khi đã được khôi phục có dạng giống dạng dữ liệu phần phát.
3.2.3 Kết quả thiết kế bộ khôi phục dữ liệu và định thời
Khối DPLL có chức năng khôi phục clock từ dữ liệu, nó khôi phục lại clock sao cho sườn dương của clock chốt vào đúng giữa dữ liệu. Chất lượng dữ liệu thu về được đánh giá qua mẫu mắt của nó, mẫu mắt được tạo ra bằng cách lấy mẫu giá trị trên miền thời gian của tín hiệu băng gốc (sau lọc thu băng gốc, trước lấy mẫu quyết định bit truyền là 1 hay 0) và chồng các khung (có độ dài là một số symbol nhất định) lên nhau. Ví dụ: Nếu lấy mẫu tín hiệu tại tốc độc 10 mẫu /giây và muốn xem một khung có độ dài 2 symbol thì chúng ra sẽ cắt tín hiệu mỗi 20 mẫu 1 khung và chồng lặp các khung đó lên nhau theo thời gian. Các tín hiệu chồng lặp lên nhau đó sẽ mang nhiều thông tin và được gọi là biểu đồ mắt. Nó rất quan trọng trong việc xác định điểm lấy mẫu tối ưu, là điểm mà ít nhạy cảm với nhiễu, tạp âm, rung pha nhất và có độ quyết định an toàn là cao nhất.
Hình 3.13: Biểu đồ mắt tín hiệu QPSK
52
Với biểu mắt tín hiệu QPSK trên ta thấy mắt mở nhất tại đỉnh của tín hiệu và vì vậy đây chính là điểm lấy mẫu tín hiệu tốt nhất. Vì thế khối lấy mẫu được thiết kế để lấy mẫu tại đỉnh của tín hiệu băng gốc. Ta thấy rằng, dữ liệu sau vòng khóa pha Costas sẽ có Jitter, do vậy nếu Clock mà chốt dữ liệu tại vùng hay sảy ra Jitter thì các bit sẽ bị quyết định sai. Do vậy trường hợp lý tưởng nhất là tín hiệu clk sẽ chốt dữ liệu tại chính giữa dữ liệu, lỗi sẽ sảy ra khi độ Jitter của clk lớn hơn 0.5 chu kỳ bit.
Hình 3.14: Quá trình khôi phục dữ liệu và định thời
Kỹ thuật hay dùng hiện nay trong thiết kế một bộ DPLL là dùng giải pháp Oversampling, nghĩa là ta dùng nhiều clk với pha khác nhau (hay nói cách khác là sử dụng một clk có tần số rất cao) để lấy mẫu dữ liệu, trên cơ sở đó phát hiện sườn của dữ liệu và quyết định xem clk nào có pha sao cho sườn chốt vào khoảng chính giữa dữ liệu. Từ sơ đồ khối bộ giải điều chế QPSK, tín hiệu trên cả hai nhánh I và Q đều được đưa tới bộ lọc Matched Filter (MF) và lấy mẫu lại với tốc độ symbol. Bộ lọc phối hợp đơn giản là một bộ lọc FIR với đáp ứng xung được phối hợp với xung đã được phát đi.
- Nếu ta xem xét sóng hình vuông thể hiện trên hình 3.15 là tín hiệu đồng pha (vuông pha) đã được khôi phục (tức là ta đã phát đi chuỗi dữ liệu [+1, − 1, +1, − 1, . . . ]) và sau đó lấy mẫu tại bất kỳ điểm nào (khác các thời điểm chuyển symbol) thì đều cho kết quả đúng.
53
Hình 3.15: Tín hiệu đã được khôi phục không có nhiễu
Hình 3.16: Tín hiệu đã được khôi phục có nhiễu
- Tuy nhiên trong trường hợp có nhiễu thì dạng sóng thu được có thể quan sát được như hình 3.16. Trong trường hợp này, việc lấy mẫu tại bất kỳ thời điểm nào khác với thời điểm chuyển đổi các symbol không đảm bảo được rằng sự quyết định tín hiệu nào đã được phát đi là đúng như trường hợp không có nhiễu ở trên. Bằng việc tính trung bình trong từng khoảng chu kỳ của một symbol chúng ta có thể đưa ra được sự đánh giá đúng hơn về bit dữ liệu nào đã được phát đi. Vì vậy bộ lọc Matched filter tốt nhất ở đây là một bộ lọc trung bình (Median Filter).
Hình 3.17: Đầu ra bộ lọc trung bình của tín hiệu không có nhiễu
54
Hình 3.18: Đầu ra bộ lọc trung bình của tín hiệu có nhiễu
Chú ý rằng cả hai trường hợp đầu ra của bộ lọc phối hợp có các đỉnh mà tại đó bộ lọc phối hợp lấy chính xác symbol và đỉnh dương cho biết +1 đã được phát, tương tự đỉnh âm cho biết -1 được phát. Mặc dù ở đây vẫn nhiễu như trong hình 3.18 tuy nhiên các đỉnh này rất dễ xác định được và đưa ra sự đánh giá về dữ liệu (+1, -1) chính xác hơn nhiều so với việc lấy mẫu tín hiệu mà không cho qua lọc trung bình.
Để khôi phục định thời để chốt dữ liệu, ta ứng dụng giải pháp Oversampling, nghĩa là dùng một clk cao hơn nhiều lần (ít nhất là 16 lần và càng cao càng tốt) tốc độ dữ liệu cần khôi phục để lấy mẫu dữ liệu đầu vào và xử lý. Về cơ bản, dựa theo nguyên lý vòng khóa pha PLL.
Hình 3.19: Khôi phục định thời DPLL
55
Bit cao nhất của symbol sau khi được lọc phối hợp được đưa vào đầu vào Datain của mạch khôi phục định thời DPLL. Bộ tách sóng pha sẽ phát hiện tín hiệu sớm hay muộn so với pha của bộ dao động DCO (Digital Controlled Oxilator – Nguyên lý tương tự như NCO), thông tin về pha sẽ điều khiển tăng hay giảm tần số của DCO. Khi mạch vòng DPLL đã khóa pha thì bit cao nhất của DCO sẽ được lấy ra để chốt dữ liệu. Bộ tách sóng pha Alexander (Alexander Phase Detector) thường được sử dụng trong việc khôi phục định thời và dữ liệu từ chuỗi bit nối tiếp bởi vì nguyên lý đơn giản và việc thực thi trên FPGA đơn giản. Sơ đồ khối như hình 3.19. Kết quả X và Y cho phép điều chỉnh tăng hay giảm tần số DCO, X và Y được đưa qua bộ lọc thông thấp để loại bỏ nhiễu. Trong phần này, bộ lọc đơn giản là việc có bao nhiêu sự kiện X hoặc Y để quyết định điều chỉnh DCO. Trong luận văn này, do tín hiệu là lý tưởng không chịu tác động của môi trường truyền sóng nên bộ lọc được thiết kế khi có hai sự kiện liên tiếp giống nhau của X hoặc Y thì cho phép điều chỉnh DCO. Điều khiển DCO đơn giản là tăng hay giảm bộ đếm để tạo ra tần số tăng hay giảm, tương tự phần tích lũy pha của bộ dao động NCO
Hình 3.20: Sơ đồ nguyên lý làm việc bộ tách sóng pha
Hình 3.21: Mô phỏng khối khôi phục định thời
56
Hình trên ta thấy rằng, dữ liệu thu được từ symbol thu bằng khối Slicer. Clock khôi phục được có sườn dương chốt vào chính giữa dữ liệu.
3.2.4 Kết quả thiết kế kiểm tra trên bo mạch
Hình 3.22: Dạng sóng tín hiệu đã điều chế QPSK
Sau khi tính toán, mô phỏng và thiết kế các mô đun chức năng chính của xử lý tín hiệu số cho DPLL như các bộ tạo dao động chuẩn, các bộ trộn tín hiệu, các bộ lọc số... Thiết kế của từng mô đun được đo đạc kiểm tra trên các máy đo như máy hiện sóng, máy phân tích phổ... Chương trình điều chế, giải điều chế tín hiệu số QPSK được ghép nối bởi các mô đun chức năng. Theo mô hình sau:
Hình 3.23: Mô hình kiểm tra thiết kế bộ điều chế/giải điều chế QPSK
Chuỗi dữ liệu nối tiếp tốc độ 2400 bps được tạo bên trong FPGA sau đó đưa tới điều chế QPSK với sóng mang 10 MHz. Tín hiệu sau điều chế được biến đổi DAC 14 bit song song với tốc độ 150 Msps. Tín hiệu sau khi DAC có mức công suất xấp xỉ 0 dBm và được đưa ra anten phát. Tại bo mạch thu, tín hiệu thu được từ ăng ten được biến đổi số hóa với ADC dải động rộng 14 bit tốc độ lấy mẫu 250 Msps. Hình ảnh thực hiện kiểm tra cho trong hình 3.24 và 3.25. Với ADC dải rộng cho phép số hóa với mức tín hiệu nhỏ nên ở cự ly gần không cần khuếch đại tín hiệu từ đầu vào ăng ten. Tín hiệu sau khi số hóa được đưa vào giải điều chế tín hiệu bên
57
trong FPGA. Quá trình giải điều chế tín hiệu FPGA sẽ thực hiện đồng bộ sóng mang dựa theo vòng khóa pha DPLL và thực hiện đồng bộ về thời gian. Dữ liệu sau giải điều chế được đưa ra chân FPGA để kiểm tra. Tín hiệu sau quá trình đồng