Thuật toán phân tích phổ ( FFT cơ số 2)

Một phần của tài liệu thiết kế phần mềm thiết bị đo và hiển thị dạng sóng lên màn hình máy tính (Trang 78 - 86)

Giải thuật lập trình thông qua 2 bước:

- Bước thứ nhất: sắp xếp lại vị trí của các mẫu, mục đích là phân chia các mẫu ban đầu thành các chuỗi có độ dài là hai liên tiếp nhau. Thuật toán phân chia ở đây rất đơn giản có thể biểu diễn bằng chu trình như sau: ShiffRigh(0) ShiffRigh(1)…..  ShiffRigh(m-1).

Hình vẽ dưới đây mô tả chu trình khi N=8

ShiffRigh(0) ShiffRigh(1)

-ShiffRigh(1) (bắt đầu từ bít 1): b’(1) =b(2), b’(2)=b(1), bít 0 không thay đổi

Tổng Quát :

- ShiffRigh(i) sẽ bắt đầu từ bít thứ i: b’(m)=b(i) , b’(m-1)=b(m) ,…. b’ (i+1) =b(i). Các bít j (j<i) giữ nguyên vị trí

- - Bước thứ hai: tiến hành tính toán tại m bước (N= là độ dài dãy x(n)).

Thuật toán với phương thức ghi đè nên chỉ cần N ô nhớ và tính toán tại chỗ có nghĩa là quả tính toán sẽ được lưu ngay tại mỗi ô nhớ đó.

Dim c1, c2, ty, t1, t2, u1, u2, z As Double '/* Calculate the number of points */ n = 1

For i = 0 To m - 1 n *= 2

Next

'/* Do the bit reversal */ i2 = n / 2 j = 0 For i = 0 To n - 2 If (i < j) Then ty = y(i) y(i) = y(j) y(j) = ty End If k = i2 Do While (k <= j) j -= k k = k / 2 Loop j += k Next ' /* Compute the FFT */ c1 = -1.0 c2 = 0.0 l2 = 1 For l = 0 To m - 1 l1 = l2 l2 = l2 * 2 u1 = 1.0 u2 = 0.0 For j = 0 To l1 - 1 For i = j To n - 1 Step l2 i1 = i + l1 t1 = -u2 * y(i1) t2 = u1 * y(i1) y(i1) = y(i) - t2

y(i) += t2 Next z = u1 * c1 - u2 * c2 u2 = u1 * c2 + u2 * c1 u1 = z Next c2 = Math.Sqrt((1.0 - c1) / 2.0) If (dir = 1) Then c2 = -c2 End If c1 = Math.Sqrt((1.0 + c1) / 2.0) Next

'/* Scaling for forward transform */ For i = 0 To n - 1 y(i) /= n Next End If Return (True) End Function

CHƯƠNG 4: KẾT LUẬN 4.1 Độ chính xác

Xét về sai số của thông số biên độ, thông số này phụ thuộc vào loại ADC sử dụng mà cụ thể hơn là số bít / sample của ADC đó. Ngoài ra thông số này còn phụ thuộc vào mạch vào của bộ ADC trong mối tương quan giữa tần số tín hiệu đo.

Xét về sai số của thông số tần số, thông số này không những phụ thuộc vào mạch đo tần số (với một sai số nhất định) mà còn phụ thuộc vào mối tương quan giữa tần số tín hiệu và tần số lấy mẫu. Trong trường hợp tần số tín hiệu là đặc biệt với tần số lấy mẫu, có nghĩa là tần số dư là (với i=1→6), thì khả năng hiển thị tần số là tương đối không chính xác. Đặc biệt trong trường hợp tần số lấy mẫu bằng số nguyên lần tần số tín hiệu, không thể hiển thị được chu kỳ tín hiệu

4.2 Hạn chế và kiến nghị

Như đã thảo luận, với việc sử dụng phương pháp dồn pha, Phần mềm sẽ không bị hạn chế về mối tương quan giữa chu kỳ tín hiệu và tần số lấy mẫu theo định lý Nyquist. Tuy nhiên thuật toán dồn pha cũng gặp một số hạn chế, giống như một số oxilo số, đó là khả năng khôi phục dạng của tín hiệu có tần số đặc biệt. Với những tần số tín hiệu có mối tương quan mà tần số dư bằng:

T,T/2,T/3 : số mẫu trong một chu kỳ sau khi dồn lần lượt là 1,2,3: không có khả năng khôi phục được dạng tín hiệu

T/4,T/5,T/6: số mẫu trong một chu kỳ sau khi dồn lần lượt là 4,5,6 : có khả

năng khôi phục dạng tín hiệu nhưng chưa được chính xác . Sai số về mặt chu kỳ của dạng tín hiệu hiển thị lần lượt là: T/4,T/5,T/6.

Để giải quyết vấn đề này thì mạch phần cứng sẽ phải có thêm chức năng đó là có thể điều chỉnh tần số lấy mẫu. Còn phần mềm sẽ phải có chức năng tính toán và tự động gửi điều khiển yêu cầu phần cứng thay đổi đến một tần số phù hợp với tín hiệu

Ngoài những hạn chế ở trên, trong thực tế còn gặp một vấn đề đó là sai số của phép đo tần số của tín hiệu mà phần cứng thực hiện. Để giải quyết vấn đề này phần mềm sẽ phải có khả năng dựa vào các dữ liệu đã có tính toán ra được tần số tín hiệu một cách chính xác hơn

TÓM TẮT LUẬN VĂN

Một USB-Oscilloscope gồm có hai phần chính: phần mềm và phần cứng. Trong khuôn khổ của luận văn của mình, tôi chỉ tập trung vào việc tạo phần mềm và các giao thức bắt tay giữa phần mềm này và phần cứng thông qua cổng USB

Phần mềm có nhiệm vụ nhận dữ liệu đã được đóng gói với các thông số về trạng thái hệ thống như tần số lấy mẫu và tần số tín hiệu cũng như mảng dữ liệu bao gồm các mẫu rời rạc đã được lấy mẫu từ mạch phần cứng. Sau đó phần mềm sẽ tiến hành khôi phục dạng tín hiệu, phân tích phổ và tính toán các tham số của tín hiệu

TÀI LIỆU THAM KHẢO

1. http://www.cmccord.co.uk/FYP/final_report.htm 2. http://www.johann-glaser.at/projects/DSO

3. http://www.dsoworld.co.uk (adsbygoogle = window.adsbygoogle || []).push({});

4. Michelle Schatzman; A Mathematical Introduction; Clarendon Press

(2002).

5. A.Wojtkiewicz; Elementy syntezy filtrów cyfrowych; WNK Warszawa(1996)

6. J.Szabatin; podstawy teorii sygnalów; WkiL Warszawa 2000

7. Nguyễn Quốc Trung, Xử lý tín hiệu và lọc số, Nhà xuất bản Khoa học kỹ thuật, Hà nội 2003.

Một phần của tài liệu thiết kế phần mềm thiết bị đo và hiển thị dạng sóng lên màn hình máy tính (Trang 78 - 86)