Chương 1 : Tổng quan
5. Kỹ thuật xử lý tín hiệu
5.1 Thu thập số liệu
Có thể mô tả một qúa trình đo đạc và xử lý số liệu bằng máy tính bằng mô hình sau: A/D C Bộ lọc Khuyếch đại Giao tiếp DSP Cảm biến
Mô hình trên mô tả một cách chi tiết các thành phần của hệ thống thu thập, lưu trữ và xử lý số liệu đo đạc. Tín hiệu thu được từ cảm biến là các tín hiệu tương tự, có cường độ dòng điện thường rất nhỏ, được khuyếch đại khi đi qua bộ khuyếch đại. Tín hiệu được đưa đến bộ giao tiếp bằng việc chuyển đổi tương tự/số và lưu trữ (nếu việc xử lý số liệu là không trực tuyến, ngược lại số liệu sẽ được chuyển thẳng đến khối xử lý và phân tích số liệu - DSP). DSP có chức năng xử lý và phân tích số liệu thành các thông số theo yêu cầu của người sử dụng. Tuy nhiên, ta có thể thiết kế một bộ vi xử lý có chức năng hoạt động như một DSP bằng phần cứng hoặc phần mềm. Trong luận văn này, tôi đã viết một chương trình phần mềm, có chức năng và nhiệm vụ như một DSP. Trước tiên chúng ta quan tâm đến kỹ thuật xử lý các tín hiệu thu được từ các cảm biến.
5.2 Khuếch đại tín hiệu
Tín hiệu điện thu được từ các cảm biến có dòng nhỏ cỡ 1nA (dòng trong cảm biến pH rất nhỏ, cỡ 10 nA), để đo được các dòng điện này, ta có thể dùng mạch khuyếch đại trở kháng có sơ đồ như hình 20. Thường thì điện trở hồi tiếp RF có giá trị rất lớn, cỡ 1G , như vậy điện áp ở đầu ra của bộ khuếch đại có giá trị 1V. Nếu dòng vào có giá trị 10 nA, thì để đạt được điện áp đầu ra 1V của bộ khuếch đại, thì điện trở hồi tiếp chỉ cần 0,1 G .
- + IS RF Vout Vout = - RF Is Hình 20: Sơ đồ khuyếch đại trở kháng đơn giản
5.3 Nhiễu
Trong các hệ thống đo đạc, ta thường phải quan tâm đến nhiễu. Vì nhiễu ảnh hưởng tiêu cực đến tín hiệu đo được và cho ta giá trị không chính xác. Vậy để nâng cao độ chính xác của phép đo, ta phải giảm tối đa ảnh hưởng của nhiễu trong tín hiệu thu được. Chất lượng của tín hiệu nhận được ở nơi thu được đặc trưng bởi tỷ số tín hiệu trên nhiễu (S/N). Về mặt nguyên tắc, nếu tỷ số này nhỏ hơn 1 thì không thể tách tín hiệu ban đầu được. Do vậy, để thực hiện được mục đích này phải tìm cách gia công, xử lý nhằm nâng cao tỷ số S/N của tín hiệu nhận được. Có nhiều phương pháp để thực hiện đ iều này một cách trực tiếp với các tín hiệu tương tự hoặc với các tín hiệu sau khi đã được số hoá.
Trước tiên ta xem xét các loại nhiễu chính gây ảnh hưởng đến hệ thống, được trình bày cụ thể như sau:
Nhiễu điện
Nhiễu điện gây ra từ các mạch điện. Đối với các mạch điện dùng khuếch đại trở kháng thì nhiễu điện có thể bỏ qua (do trở kháng của các bộ khuếch đại lớn).
Nhiễu tĩnh điện
Nhiễu này gây ra bởi thế bù (offset) và dòng bù phân cực. Nhiễu này không gây ảnh hưởng nhiều đến các bộ khuyếch đại.
Nhiễu từ các cảm biến
Bỏ qua ảnh hưởng của việc chuẩn cảm biến, thì khuyết tật gây ra bởi các vật liệu làm cảm biến sẽ gây nhiễu. Đây là một loại nhiễu đáng kể có ảnh hưởng đến tín hiệu thu được.
Ngoài ra, một loại nhiễu cũng phải quan tâm đến đó là nhiễu ồn flicker.
Lý do đơn giản là nếu quá trình đo đạc kéo dài trong một thời gian, tín hiệu lối ra cuả thiết bị phải được điều chỉnh lại vì chúng luôn bị trôi. Sự trôi này chính là nhiễu ở dải tần số thấp mà sự phụ thuộc của nó theo thời gian dài như vậy sẽ tăng lên theo nhiệt độ, tuổi và độ chính xác của thiết bị.
5.4 Kỹ thuật nâng cao tỷ số tín hiệu trên nhiễu bằng xử lý số tín hiệu [12]
Mọi tín hiệu có một thuộc tính là sự phân bố rõ rệt về tần số. Cái mà ta quan sát thấy là tổng của nhiễu cộng với tín hiệu
Tỷ số tín hiệu trên nhiễu có thể được tính như sau:
S/N = (17)
Từ biểu thức trên ta thấy:
+ S/N = 1: là giới hạn có thể tách trực tiếp tín hiệu;
+ S/N < 1: không thể tách được tín hiệu khi chưa tăng S/N.
Thường thì các phép đo phân tích, giới hạn để tách được tín hiệu là S/N = 2 hoặc 3.
Trong hệ thống đo đạc tự động thì máy tính là nguồn nhiễu mạnh, đặc biệt là các máy tính cũ. Nhiễu từ các máy tính cá nhân PC nằm trong dải tần số sóng điện từ. Các tần số này có liên quan đến xung nhịp đồng hồ của PC và nằm trong dải tần MHz.
Trở lại với tín hiệu, mọi tín hiệu có một thuộc tính đó là sự phân bố rõ rệt về tần số. Cái mà ta quan sát được là tổng của nhiễu cộng với tín hiệu. Nếu việc xử lý tín hiệu mà nhạy với sự có mặt của nhiễu và so với nhiễu tín hiệu cần xử lý lại yếu thì tín hiệu sẽ chìm mất vào trong nhiễu. Một số thiết bị tự nó có thể tránh khỏi một vài nguồn nhiễu cố định. Đối với môdule CR10X thì bộ cách ly quang học cho phép tránh được những nhiễu về điện và nhiễu từ
Biên độ tín hiệu
Độ lệch chuẩn của tổng các nhiễu
máy tính ảnh hưởng đến tín hiệu thu được từ cảm biến. Nhưng để nâng cao tỷ số tín hiệu trên nhiễu, tôi đã thiết kế và xây dựng phần mềm có khả năng nâng cao tỷ số tín hiệu trên nhiễu, sau đây tôi trình bày phương pháp sử dụng để nâng cao tỷ số này trong hệ thống đo đạc tự động các thông số của môi trường.
Phương pháp lấy trung bình đa kênh cho phép nâng cao tỷ số S/N
Những năm gần đây, sự phát triển vượt bậc về công nghệ phần cứng và phần mềm máy tính đã tạo ra những công cụ rất mạnh cho phép xử lý tín hiệu sau khi đã số hoá chúng. Đó là lĩnh vực xử lý số tín hiệu. Xử lý số tín hiệu có rất nhiều ưu điểm so với xử lý tương tự như: nâng cao tỷ số tín hiệu trên nhiễu, tức là có thể nâng cao chất lượng, và độ tin cậy của tín hiệu thu được; giảm thời gian trễ; …
Phương pháp lấy trung bình đa kênh là một trong nhiều phương pháp mà ta có thể nâng cao tỷ số tín hiệu trên nhiễu (S/N). Cơ sở của lấy trung bình đa kênh là phải có được tập hợp các phần tử dữ liệu và lấy trung bình chúng. Ta phải biết rằng, mỗi thành phần tín hiệu nhận được là sự trộn lần của một thành phần tín hiệu gốc (không có nhiễu) với một thành phần nhiễu. Thành phần nhiễu này là ngẫu nhiên cả về biên độ và dấu. Do vậy, khi cộng các dạng sóng tín hiệu thu được với nhau, thành phần tín hiệu gốc sẽ được cộng nhất quán, còn thành phần nhiễu vừa được cộng lại vừa được trừ. Như vậy, thành phần tín hiệu sẽ tăng lên tuyến tính theo cấp số cộng, còn thành phần nhiễu cũng tăng nhưng chậm hơn. Kết quả là tỷ số tín hiệu trên nhiễu S/N được cải thiện theo số lần cộng rồi lấy trung bình.
Bộ lấy trung bình đa kênh là một bộ ghi chuyển tiếp gồm bộ nhớ, đơn vị logic toán và bộ điều khiển. Thay vì ghi mỗi điểm vào trong bộ nhớ số, mỗi điểm này sẽ được số hoá và được cộng vào thành phần nhớ tương ứng với
thời gian chuyển tiếp. Lấy trung bình đa kênh đòi hỏi dạng sóng phải được lặp lại và được đồng bộ với bộ lấy trung bình bằng tín hiệu không có nhiễu.
Cụ thể, nếu cộng n tín hiệu với nhau, mỗi tín hiệu có sự lệch chuẩn là Ni, khi đó nhiễu tổng Ntotal sẽ là:
2 1 n 1 i 2 i total N N (18) Nếu các thành phần nhiễu là như nhau (N1=N2=...=Ni) thì:
N N 2 n.N2 12 n12.N 1 n 1 i 2 i total (19) Nếu một tín hiệu tổng được tạo bởi thành phần tín hiệu S, và thành phần nhiễu có sự lệch chuẩn là N. Ta biết tỷ số tín hiệu trên nhiễu ban đầu (chưa xử lý) được định nghĩa bởi:
N S N S orig (20) Khi cộng n điểm với nhau, thành phần tín hiệu là nS và thành phần nhiễu là n1/2.N. Tỷ số tín hiệu trên nhiễu cuối cùng (S/N)final sẽ là:
orig 2 1 2 1 final n .SN N . n S . n N S (21) Như vậy, tỷ số S/N đã được cải thiện lên n1/2. Nếu lấy trung bình 4 lần thì S/N được tăng lên 2 lần; nếu lấy trung bình 100 lần thì S/N tăng 10 lần…; Hình 21 mô tả tín hiệu trộn lẫn nhiễu sau khi lấy trung bình 4 lần và 64 lần.
Hình 21: Tín hiệu tổng sau khi lấy trung bình
Mô hình hiệu quả của việc xử lý trung bình đa kênh có sơ đồ như hình 22. Đây là mô hình mà tôi sử dụng cho hệ thống đo đạc các thông số của môi trường nước.
Tín hiệu cần đo trộn với nhiễu ban đầu có tỷ số S/N <1, được số hoá sau khi qua ADC. Với một lần thu thập tín hiệu được k mẫu và được nhớ vào k ô nhớ trong máy tính PC (hay trong các bộ vi điều khiển có nhớ), các ô nhớ này được gọi là các kênh. Lần thu thập thứ 2 được đồng bộ để có dạng tín hiệu vẫn như trước. k mẫu này được cộng với k mẫu trước trên mỗi kênh và được nhớ thay thế cho các giá trị trước vào k ô nhớ. Sau n lần thu thập như
Thời gian (ms) Không có nhiễu 64 4 1 Nguồn tín hiệu “sạch” Nguồn nhiễu + Số hoá ADC Máy tính PC Xung đồng bộ
vậy, giá trị trên mỗi kênh nhớ được chia cho n để lấy trung bình và hiển thị trên máy tính hay lưu trong bộ vi điều khiển.
6. PHẦN MỀM ĐIỀU KHIỂN, THU THẬP VÀ LƯU TRỮ SỐ LIỆU
Với mục đích là điều khiển quá trình thu thập số liệu đo được từ các cảm biến, lưu trữ vào môdule CR10X và xử lý số liệu đó trên máy tính. Mô hình dưới đây mô tả quá trình thu thập, lưu trữ và xử lý số liệu:
6.1 Bố cục của chương trình quản lý và điều khiển
Toàn bộ việc điều khiển hoạt động của thiết bị, chuẩn hoá các cảm biến cũng như việc lưu trữ và quản lý số liệu được thực hiện thông qua một chương trình máy tính duy nhất. Chương trình được viết để chạy trong môi trường Windows, hỗ trợ đa ngôn ngữ, giúp cho người sử dụng có thể làm quen nhanh chóng và thực hiện các thao tác với chương trình một cách dễ dàng.
Chương trình được thiết kế dưới dạng các môdule, mỗi môdule thực hiện một nhiệm vụ cụ thể. Dưới dạng môdule, sự thay đổi, sửa chữa sẽ đơn giản và thuận tiện. Sơ đồ khối của chương trình có thể được minh hoạ bằng lưu đồ như dưới đây:
Hình 23: Mô hình minh hoạ quá trình thu thập, lưu trữ và xử lý số liệu
Cảm biến Môdule CR10X Máy vi tính CHẠY CHƢƠNG TRÌNH MÁY TÍNH Kiểm tra việc kết nối cảm biến với hệ thiết bị Chuẩn điểm 0 của cảm biến
+ Nguyên tắc thiết kế chương trình điều khiển:
Tương thích Windows 95/ 98/ 2000/ XP, hỗ trợ đa ngôn ngữ; Kết nối trực tuyến hoặc ngoại tuyến với phần thiết bị;
Điều khiển các thông số của hệ thống, các cảm biến từ chương trình;
Lưu trữ số liệu đo được dưới dạng bảng tính Excel, thiết lập báo cáo dạng bảng.
6.2 Lập trình với PC208W
PC208W là một ngôn ngữ lập trình chuyên dụng cho dòng sản phẩm hệ thiết bị thu thập, lưu trữ và xử lý số liệu cũng như điều khiển của hãng Campbells Sciencetific (Anh). Cũng như các ngôn ngữ lập trình khác PC208W bao gồm một tập hợp các lệnh cho phép ta thực hiện:
Điều khiển các thông số của hệ thống; Đo tín hiệu từ các cảm biến;
Thực hiện việc biến đổi các giá trị tín hiệu đo được; Xử lý và lưu trữ số liệu;
Lập bảng biểu báo cáo.
Mỗi lệnh được gắn với một số, đó là mã lệnh. Khi gọi thực hiện lệnh, ta dùng mã lệnh để thực hiện lệnh đó. Mỗi lệnh là một chương trình con, mỗi chương trình con thực hiện một chức năng. Câu lệnh dưới đây có mã lệnh là 55, thực hiện việc tính giá trị của đa thức bậc 5:
18: Polynomial (P55) 1: 2 Reps 2: 1 X Loc [ X_Value ] 3: 2 F(X) Loc [ Y_Value ] 4: 1 C0 5: 2 C1 6: 3 C2 7: 4 C3 8: 5 C4 9: 6 C5
Như vậy, giá trị của đa thức bậc 5 được gán với nhãn Y_Value sẽ được tính như sau:
Y_Value = F(X) = C0 + C1.X + C2.X2 + C3.X3 + C4.X4 + C5.X5 (C0 = 1, C2 = 2, C3 = 3, C4 = 4, C5 = 5)
Câu lệnh dưới đây có mã lệnh là 2, thực hiện phép đo vi sai của kênh 1, giá trị được lưu vào biến Value. Thang đo từ -2500mV đến +2500mV, loại bỏ nhiễu 50 Hz trong quá trình đo và độ phân giải theo tra bảng là 333. V.
1: Volt (Diff) (P2) 1: 1 Reps 2: 35 ±2500 mV 50 Hz Rejection Range 3: 1 DIFF Channel 4: 2 Loc [ Value ] 5: 1 Mult 6: 0 Offset
Một chương trình được viết là tổ hợp của nhiều lệnh. Đoạn chương trình dưới đây đo giá trị tín hiệu từ cảm biến nhiệt độ, và biến đổi tín hiệu điện thành giá trị nhiệt độ nhờ một phép ánh xạ trực tiếp.
7. ĐÁNH GIÁ SAI SỐ
7.1 Một số phương pháp toán trong xác định giá trị đo và sai số
Hàm y = f(x) đo được tại n điểm thuộc đoạn [a,b]; x1 < x2 < … <xn; yi=f(xi).
Với k ≤ n-1, ta tìm hàm (x) = (c1, c2,…,ck, x) (*). Trong đó là hàm cho trước, cj là các tham số cần tìm sao cho sai số trung bình phương:
n i i i y x n 1 2 ) ( 1 (22) là nhỏ nhất khi các tham số cj thay đổi.
Khi đó ta nói (x) là hàm xấp xỉ tốt nhất của y trong lớp hàm có dạng (*) theo nghĩa bình phương tối thiểu.
Bài toán tìm cực tiểu toàn cục của sai số trung bình phương là bài toán khó. Trong trường hợp là hàm tuyến tính của các cj thì cực trị toàn cục có thể xác định nhờ giải hệ phương trình tuyến tính của điều kiện các đạo hàm cấp một triệt tiêu. c c x c x n k k k k 1 1,..., , . (23) Trong đó, k(x) là các hàm đơn giản và độc lập tuyến tính, được xác định nhờ kinh nghiệm chuyên gia hoặc là đa thức.
Dưới đây tôi xét trường hợp xấp xỉ bằng đa thức:
Với k≤ n-2, ta sẽ tìm xấp xỉ tốt nhất của y dưới dạng đa thức bậc k. k j j j k x a x P 0 . ) ( (24) Khi đó sai số trung bình phương là:
n i k j i j i j x y a n 1 2 0 . 1 (25) Để tìm cực tiểu của (25) ta giải hệ phương trình:
k p ap 0 0,
a x x yx p k n i n i p i i p i k j j i j ; 0, 1 0 1 (26) a x y x p k k j n i p i i n i p j i j ; 0, 0 1 1
b. Nội suy hàm một biến
Một hàm số y = f(x) chưa biết và chỉ xác định được tại các điểm với các x0 = a < x1 < …< xn = b; yi= f(xi). Ta cần tìm một biểu thức giải tích g(x) để xác định gần đúng giá trị tại các y g(x); x [a, b] của hàm f(x) sao cho tại các điểm xi thì hàm số trùng với giá trị yi đã biết (với x [a, b], ta gọi là