Chuyển đến nội dung chính

Cẩm nang Xử lý Tín hiệu dành cho Nhà Khoa học Dữ liệu

Khám phá insight có thể hành động ẩn trong dữ liệu tín hiệu phức tạp bằng cách lọc nhiễu, chọn trực quan hóa phù hợp, tìm mẫu ở miền thời gian và miền tần số, và hơn thế nữa với xử lý tín hiệu.
· 15 phút đọc

Khám phá cùng AI

Giới thiệu về Xử lý Tín hiệu

Xử lý tín hiệu là một môn nền tảng trong khoa học dữ liệu, liên quan đến việc trích xuất, phân tích và thao tác trên tín hiệu và dữ liệu chuỗi thời gian. Đây là một lĩnh vực rộng và có thể trở nên phức tạp. Bài hướng dẫn này sẽ giới thiệu những khái niệm và ý tưởng cơ bản cần thiết để giúp bạn xử lý tín hiệu, dù đó là dữ liệu cảm biến áp suất hay xu hướng thị trường chứng khoán.

Tín hiệu và dữ liệu chuỗi thời gian là gì?

Trong bối cảnh xử lý tín hiệu, tín hiệu đề cập đến bất kỳ dạng thông tin nào thay đổi theo thời gian hoặc không gian. Tín hiệu có nhiều hình thức, từ dạng sóng âm thanh và số đo nhiệt độ đến dữ liệu thị trường tài chính và các phép đo cảm biến.

Dữ liệu chuỗi thời gian là một tập con của tín hiệu, trong đó các phép đo được ghi nhận tại những thời điểm liên tiếp. Tín hiệu có thể là tương tự (liên tục) hoặc số (rời rạc).

Tín hiệu thời gian liên tục so với thời gian rời rạc

Dữ liệu tín hiệu có thể được phân loại thành hai loại chính: liên tục và rời rạc.

Tín hiệu liên tục được đo và ghi lại trên một dải liên tục, bao gồm các tín hiệu tương tự như sóng âm và phép đo nhiệt độ (từ nhiệt kế tương tự).

Tín hiệu rời rạc được ghi tại những điểm thời gian cụ thể, tách biệt. Loại dữ liệu này phổ biến hơn trong ứng dụng thực tiễn do bản chất rời rạc của việc thu thập và lưu trữ dữ liệu ngày nay.

Các phép đo cảm biến số và dữ liệu thị trường tài chính được lấy mẫu theo khoảng thời gian cố định là ví dụ của tín hiệu thời gian rời rạc.

Tầm quan trọng của xử lý tín hiệu trong khoa học dữ liệu

Dữ liệu tín hiệu thô thường khó diễn giải.

Hãy tưởng tượng bạn xem dữ liệu dạng sóng âm của một podcast, chẳng hạn. Xử lý tín hiệu cho phép chúng ta trích xuất những hiểu biết giá trị từ dữ liệu thô này mà thoạt nhìn có thể không rõ ràng. Thông tin này sau đó có thể được dùng để đưa ra quyết định sáng suốt, xác định cơ hội hoặc giải các bài toán phức tạp trên nhiều lĩnh vực.

Xử lý tín hiệu cũng hữu ích trong giai đoạn tiền xử lý dữ liệu.

Dữ liệu thực tế thường nhiễu, và các kỹ thuật xử lý tín hiệu cho phép nhà khoa học dữ liệu loại bỏ nhiễu không mong muốn, ngoại lệ và tạo tác, tạo ra các bộ dữ liệu sạch hơn và đáng tin cậy hơn. Dữ liệu sạch là yếu tố thiết yếu cho mô hình hóa chính xác, dự báo và các tác vụ phân tích nâng cao khác. Ngoài ra, xử lý tín hiệu là cốt lõi của nhiều thuật toán và mô hình tiên tiến dùng trong khoa học dữ liệu, như dự báo chuỗi thời gian, phát hiện bất thường, và nhận dạng hình ảnh lẫn giọng nói.

Hình 1: Hình ảnh nghệ thuật mô tả biểu đồ tần số âm (audiogram) của một người làm podcast. Dạng audiogram này là một ví dụ về tín hiệu. Nguồn ảnh: DALL-E.

Hình 1: Hình ảnh nghệ thuật mô tả biểu đồ tần số âm (audiogram) của một người làm podcast. Dạng audiogram này là một ví dụ về tín hiệu. Nguồn ảnh: DALL-E.

Dữ liệu chuỗi thời gian

Dữ liệu chuỗi thời gian là một loại tín hiệu được sắp xếp theo thời gian, trong đó mỗi điểm dữ liệu gắn với một dấu thời gian cụ thể. Cấu trúc theo thời gian này cho phép phân tích xu hướng, tính mùa vụ và các mẫu chu kỳ. Có nhiều tài nguyên cho phân tích dữ liệu chuỗi thời gian bằng Python và chuỗi thời gian với R.

Dự báo chuỗi thời gian và trích xuất đặc trưng cho học máy

Dự báo chuỗi thời gian là một phân ngành của xử lý tín hiệu nhằm dự đoán các giá trị tương lai dựa trên các điểm dữ liệu lịch sử. Dự báo đóng vai trò quan trọng trong nhiều ngành, giúp doanh nghiệp đưa ra quyết định, tối ưu hóa phân bổ nguồn lực và dự đoán xu hướng thị trường. Nó bao gồm việc phân tích mẫu và xu hướng trong dữ liệu chuỗi thời gian để cố gắng dự đoán các bước thời gian tương lai.

Để có cái nhìn chi tiết về dự báo chuỗi thời gian, hãy xem Hướng dẫn Dự báo Chuỗi Thời gian.

Kỹ thuật Trực quan hóa Dữ liệu Tín hiệu

Tín hiệu thường được hiểu rõ nhất qua trực quan hóa. Có một vài dạng biểu đồ thường dùng cho các loại dữ liệu tín hiệu khác nhau.

Biểu đồ đường là cách đơn giản nhưng mạnh mẽ để trực quan hóa dữ liệu tín hiệu, trong đó trục y biểu thị giá trị tín hiệu và trục x tương ứng với một thước đo tuần tự nào đó, như thời gian, mét, hoặc số mẫu. Những biểu đồ này có thể giúp hiểu ngay xu hướng và dao động.

Hình 2: Ví dụ sử dụng biểu đồ đường để trực quan hóa dữ liệu tín hiệu. Ở đây, trục x là số mẫu.

Dạng sóng âm thanh là cách phổ biến để trực quan hóa âm thanh. Bạn có thể đã thấy những biểu đồ kiểu này khi phát nhạc hoặc nghe podcast, vì nhiều ứng dụng âm nhạc hiển thị theo thời gian thực.

Một dạng trực quan khác thường gặp là phổ đồ (spectrogram) hoặc audiogram. Dữ liệu cổ phiếu thường được hiển thị dưới dạng chuỗi biểu đồ hộp, gọi là nến (candlesticks), để thể hiện xu hướng theo thời gian.

Hình 3: Ví dụ về dạng sóng âm thanh mô tả âm thanh. Nguồn ảnh: DALL-E.

Hình 3: Ví dụ về dạng sóng âm thanh mô tả âm thanh. Nguồn ảnh: DALL-E.

Hình 4: Ví dụ biểu đồ nến dùng cho phân tích thị trường chứng khoán. Image source

Hình 4: Ví dụ biểu đồ nến dùng cho phân tích thị trường chứng khoán. Nguồn ảnh

Công cụ cho Xử lý Tín hiệu

Giới thiệu MATLAB và Python cho Xử lý Tín hiệu

Trong lĩnh vực xử lý tín hiệu và phân tích chuỗi thời gian, hai công cụ lập trình được dùng phổ biến là MATLAB và Python.

MATLAB, do MathWorks phát triển, là một công cụ mạnh mẽ và linh hoạt, được dùng rộng rãi trong kỹ thuật, toán học và nghiên cứu khoa học. Tài liệu phong phú, các hàm dựng sẵn cho xử lý tín hiệu, cùng giao diện thân thiện và khả năng trực quan hóa khiến nó trở thành lựa chọn tuyệt vời. Hạn chế lớn là chi phí của công cụ.

Nếu bạn quan tâm dùng MATLAB cho xử lý tín hiệu, hãy xem Signal Processing Toolbox và Audio Toolbox, cả hai đều có tài liệu phong phú với ví dụ tương tác.

Python là lựa chọn miễn phí, được nhiều nhà khoa học dữ liệu sử dụng cho các tác vụ xử lý tín hiệu. Nếu bạn muốn chuyển từ Matlab sang Python, hãy xem khóa học Python cho người dùng MATLAB từ DataCamp!

Các thư viện như NumPy, Pandas và SciPy hỗ trợ phân tích dữ liệu chuỗi thời gian. Dù có rất nhiều tài liệu cho Python, bản chất nguồn mở đôi khi khiến việc tìm đúng tài liệu cho tác vụ cụ thể của bạn trở nên thách thức.

Cho các tác vụ xử lý tín hiệu, tôi khuyến nghị kho GitHub này.

Kỹ thuật Tiền xử lý và Lọc trong Xử lý Tín hiệu

Tiền xử lý dữ liệu là bước quan trọng trong xử lý tín hiệu, đặt nền tảng cho phân tích chính xác và có ý nghĩa. Tùy dữ liệu và phân tích của bạn, điều này có thể bao gồm xử lý dữ liệu không đều hoặc thiếu thông qua phương pháp lấy mẫu lại và nội suy, hoặc làm trơn dữ liệu bằng các bộ lọc khác nhau.

Xử lý dữ liệu không đều hoặc thiếu: lấy mẫu lại và nội suy

Khi làm việc với dữ liệu tín hiệu, bạn có thể gặp khoảng lấy mẫu không đều hoặc thiếu điểm dữ liệu, gây cản trở cho phân tích và mô hình hóa.

Lấy mẫu lại là kỹ thuật bạn có thể dùng để chuẩn hóa khoảng thời gian của dữ liệu. Nó có thể bao gồm lấy mẫu tăng (tăng tần suất điểm dữ liệu) hoặc lấy mẫu giảm (giảm tần suất điểm dữ liệu) để thu được chuỗi thời gian đều đặn.

Nội suy xuất hiện khi điểm dữ liệu bị thiếu hoặc cần ước lượng. Các kỹ thuật nội suy phổ biến gồm nội suy tuyến tính, nội suy spline và nội suy theo thời gian.

Những phương pháp này lấp đầy khoảng trống dữ liệu bằng cách ước lượng giá trị dựa trên các điểm lân cận, cho phép dữ liệu tín hiệu liên tục và mượt mà.

Cốt lõi của lấy mẫu lại và nội suy về cơ bản là cùng một ý tưởng để đạt kết quả khác nhau. Cả hai đều diễn giải một mẫu trong dữ liệu và “đoán” dữ liệu sẽ trông như thế nào dọc theo mẫu đó, dù chúng dùng những cách khác nhau để thực hiện.

Hình 5: Hình này cho thấy ví dụ rất đơn giản về cách nội suy và lấy mẫu lại có thể làm sạch dữ liệu lộn xộn.

Hình 5: Hình này cho thấy ví dụ rất đơn giản về cách nội suy và lấy mẫu lại có thể làm sạch dữ liệu lộn xộn.

Xử lý nhiễu và ngoại lệ

Nhiễu và ngoại lệ thường xuất hiện trong dữ liệu tín hiệu và có thể khiến việc rút ra insight trở nên khó khăn.

Ngoại lệ là các điểm dữ liệu lệch đáng kể so với mẫu tổng thể, trong khi nhiễu là những dao động ngẫu nhiên trong dữ liệu có thể che khuất các mẫu nền.

Ngoại lệ có thể được xử lý bằng các kỹ thuật như cắt ngưỡng hoặc winsorization, tức là chặn các giá trị cực đoan ở một ngưỡng nhất định.

Hình 6: Đôi khi có nhiễu hoặc ngoại lệ ở đầu hoặc cuối tín hiệu và bạn có thể xử lý bằng cách cắt bớt tập dữ liệu.

Hình 6: Đôi khi có nhiễu hoặc ngoại lệ ở đầu hoặc cuối tín hiệu và bạn có thể xử lý bằng cách cắt bớt tập dữ liệu.

Ngoài ra, tùy mức độ quan trọng và tác động đến kết quả tổng thể, ngoại lệ có thể được xử lý riêng trong phân tích.

Cuối cùng, cách tiếp cận với nhiễu và ngoại lệ sẽ phụ thuộc vào bộ dữ liệu cụ thể của bạn.

Hình 7: Nếu chỉ có vài ngoại lệ, bạn có thể xóa thủ công. Hoặc có thể loại bất kỳ giá trị nào nằm ngoài một khoảng biên độ nhất định.

Hình 7: Nếu chỉ có vài ngoại lệ, bạn có thể xóa thủ công. Hoặc có thể loại bất kỳ giá trị nào nằm ngoài một khoảng biên độ nhất định.

Một cách tiếp cận để xử lý nhiễu là làm trơn nhằm giảm tác động của dao động ngẫu nhiên.

Kỹ thuật này giúp làm lộ rõ các xu hướng dài hạn trong khi triệt tiêu nhiễu ngắn hạn. Làm trơn thường mang tính “nghệ thuật”, vì cần làm trơn đủ để giảm nhiễu nền nhưng không quá mức đến nỗi loại bỏ cả tín hiệu. Vì lọc là bước rất quan trọng, chúng ta sẽ bàn sâu hơn sau.

Cửa sổ trượt và trung bình trượt

Trung bình trượt và cửa sổ trượt là các kỹ thuật lọc đơn giản nhưng hiệu quả dùng để làm trơn dữ liệu chuỗi thời gian và giảm tác động của nhiễu. Cửa sổ trượt liên quan đến việc tính một thống kê cụ thể (ví dụ: trung bình hoặc độ lệch chuẩn) trên một cửa sổ dữ liệu di động. Cách tiếp cận này giúp nắm bắt các mẫu và biến thiên cục bộ trong dữ liệu.

Trung bình trượt là ứng dụng phổ biến của cửa sổ trượt, trong đó thống kê được tính là giá trị trung bình. Nó làm mượt các dao động ngắn hạn, giúp dễ nhận diện xu hướng và mẫu dài hạn. Trung bình trượt đặc biệt hữu ích trong phân tích dữ liệu tài chính, nơi chúng được dùng để nghiên cứu xu hướng giá theo thời gian.

Hình 8: Ví dụ cách dùng trung bình trượt để làm trơn một tín hiệu. Trung bình trượt này dùng cửa sổ kích thước 3, nghĩa là mỗi điểm dữ liệu ở đồ thị bên phải là trung bình của ba điểm tương ứng ở đồ thị bên trái.

Hình 8: Ví dụ cách dùng trung bình trượt để làm trơn một tín hiệu. Trung bình trượt này dùng cửa sổ kích thước 3, nghĩa là mỗi điểm dữ liệu ở đồ thị bên phải là trung bình của ba điểm tương ứng ở đồ thị bên trái.

Bộ lọc thông thấp, thông cao và thông dải

Bộ lọc thông thấp, thông cao và thông dải là các kỹ thuật lọc theo miền tần số dùng để cho qua hoặc chặn các thành phần tần số nhất định của tín hiệu.

Bộ lọc thông thấp cho phép các tín hiệu tần số thấp đi qua trong khi suy giảm các thành phần tần số cao hơn, hữu ích để loại bỏ nhiễu và giữ lại các xu hướng biến đổi chậm.

Ngược lại, bộ lọc thông cao cho phép tín hiệu tần số cao đi qua, lọc bỏ các thành phần tần số thấp. Bộ lọc thông cao thường được dùng để làm nổi bật các sự kiện ngắn hạn hoặc thay đổi đột ngột trong chuỗi thời gian.

Bộ lọc thông dải cho phép các tín hiệu trong một dải tần cụ thể đi qua trong khi chặn các dải khác. Loại bộ lọc này hữu ích khi các dải tần nhất định chứa thông tin liên quan. Ví dụ, trong xử lý âm thanh, bộ lọc thông dải có thể được dùng để trích xuất các tần số tương ứng với tiếng người.

Hình 9: Minh họa cách các loại bộ lọc khác nhau ảnh hưởng đến một tín hiệu.

Hình 9: Minh họa cách các loại bộ lọc khác nhau ảnh hưởng đến một tín hiệu.

Các bộ lọc và kỹ thuật làm trơn khác

Việc chọn đúng bộ lọc hoặc kỹ thuật làm trơn cho bộ dữ liệu cụ thể của bạn có thể tốn thời gian.

Một cách hay là bắt đầu với thông dải cao hoặc thông dải thấp (tùy bạn muốn cô lập điều gì) rồi lặp lại từ đó.

Dưới đây là danh sách một số kỹ thuật lọc phức tạp hơn mà bạn có thể thử nếu kỹ thuật đơn giản chưa đủ cô lập mẫu mong muốn:

Phân tích Miền Thời gian

Hai cách chính để tư duy về tín hiệu là ở miền thời gian và miền tần số. Hãy bắt đầu với miền thời gian.

Phân tích miền thời gian liên quan đến việc xem xét hành vi của tín hiệu và các điểm dữ liệu theo thời gian. Phần này sẽ khám phá ba khía cạnh quan trọng của phân tích miền thời gian: tự tương quan và tương quan chéo, các đặc trưng miền thời gian (trung bình, phương sai, độ lệch, độ nhọn, v.v.), và phân tích xu hướng với các phương pháp khử xu hướng.

Các đặc trưng miền thời gian: trung bình, phương sai, độ lệch và độ nhọn

Tính toán các đặc trưng thống kê khác nhau trong miền thời gian cung cấp những hiểu biết giá trị về hành vi của chuỗi thời gian.

Trung bình cho thấy khuynh hướng trung tâm của dữ liệu, cung cấp ý tưởng tổng quát về mức độ của dữ liệu.

Hình 10: Minh họa giá trị trung bình của một tín hiệu. Ở đây, đường đỏ biểu thị trung bình của phân bố tín hiệu màu xanh.

Hình 10: Minh họa giá trị trung bình của một tín hiệu. Ở đây, đường đỏ biểu thị trung bình của phân bố tín hiệu màu xanh.

Phương sai đo mức độ phân tán của các điểm dữ liệu quanh trung bình.

Hình 11: Minh họa thước đo phương sai cho một tín hiệu. Các đường màu xanh lá trên đồ thị thể hiện phương sai quanh trung bình của tín hiệu.

Hình 11: Minh họa thước đo phương sai cho một tín hiệu. Các đường màu xanh lá trên đồ thị thể hiện phương sai quanh trung bình của tín hiệu.

Độ lệch định lượng mức độ bất đối xứng của phân bố, cho biết liệu dữ liệu chủ yếu trải rộng về một phía.

Hình 12: Minh họa thước đo độ lệch cho một tín hiệu. Khi tín hiệu được vẽ dưới dạng biểu đồ tần suất theo biên độ, độ lệch có thể được hình dung qua sự bất đối xứng ở các đuôi của biểu đồ.

Hình 12: Minh họa thước đo độ lệch cho một tín hiệu. Khi tín hiệu được vẽ dưới dạng biểu đồ tần suất theo biên độ, độ lệch có thể được hình dung qua sự bất đối xứng ở các đuôi của biểu đồ.

Độ nhọn đo độ “dày” của các đuôi phân bố, đặc trưng cho sự hiện diện của các giá trị cực trị.

Hình 13: Minh họa thước đo độ nhọn cho một tín hiệu. Khi tín hiệu được vẽ dưới dạng boxplot biên độ, độ nhọn có thể được hình dung qua chiều cao của hộp.

Hình 13: Minh họa thước đo độ nhọn cho một tín hiệu. Khi tín hiệu được vẽ dưới dạng boxplot biên độ, độ nhọn có thể được hình dung qua chiều cao của hộp.

Hình 13: Minh họa thước đo độ nhọn cho một tín hiệu. Khi tín hiệu được vẽ dưới dạng boxplot biên độ, độ nhọn có thể được hình dung qua chiều cao của hộp.

Những thống kê này có thể quen thuộc nếu bạn đã làm việc với phân bố dữ liệu. Các thước đo này với dữ liệu tín hiệu cũng giống như với phân bố.

Tự tương quan và tương quan chéo

Tự tương quan đo độ tương đồng giữa một chuỗi thời gian và phiên bản trễ của chính nó. Nó giúp xác định các mẫu lặp lại hoặc hành vi chu kỳ trong dữ liệu.

Tự tương quan mạnh tại một độ trễ cụ thể cho thấy mẫu lặp lại với chu kỳ đó. Ví dụ, trong dữ liệu nhiễm virus, tự tương quan có thể hé lộ tính mùa vụ gắn với các đợt bùng phát.

Hình 10: Ví dụ sử dụng tự tương quan để xác định tính chu kỳ trong tín hiệu.

Hình 14: Ví dụ sử dụng tự tương quan để xác định tính chu kỳ trong tín hiệu. Trong ví dụ này, tôi lấy một tín hiệu rất nhiễu, dùng bộ lọc thông dải để giảm nhiễu, rồi dùng tự tương quan để đánh giá mức độ tín hiệu tương quan với chính nó tại các độ trễ thời gian khác nhau. Từ đồ thị tự tương quan này, bạn có thể thấy tín hiệu lặp lại với chu kỳ khoảng 1000.

Tương quan chéo khám phá mối quan hệ giữa hai tín hiệu khác nhau. Nó hữu ích để tìm các tương quan và liên kết có độ trễ giữa hai biến. Ví dụ, tương quan chéo có thể dùng để nghiên cứu mối quan hệ giữa nhiệt độ và mức tiêu thụ năng lượng theo thời gian.

Hình 11: Đây là ví dụ về tương quan chéo.

Hình 15: Đây là ví dụ về tương quan chéo. Trong ví dụ này, chúng ta có hai tín hiệu, một tín hiệu có vẻ có chút tính chu kỳ và một tín hiệu có tính chu kỳ mạnh hơn. Bằng tương quan chéo, ta muốn xem hai tín hiệu này có tương quan với nhau ở các độ trễ thời gian khác nhau hay không. Từ đồ thị dưới cùng, có thể thấy tương quan mạnh hơn ở các độ trễ âm và hầu như không có tương quan ở các độ trễ dương.

Phân tích xu hướng và phương pháp khử xu hướng

Phân tích xu hướng hữu ích để hiểu hành vi dài hạn nền tảng của một tín hiệu. Xu hướng thể hiện hướng chung mà dữ liệu di chuyển trong một giai đoạn kéo dài. Xu hướng có thể tăng (tăng dần), giảm (giảm dần) hoặc phẳng (ổn định).

Hình 12: Ví dụ về ba loại xu hướng: xu hướng tăng, xu hướng phẳng hoặc ổn định, và xu hướng giảm.

Hình 12: Ví dụ về ba loại xu hướng: xu hướng tăng, xu hướng phẳng hoặc ổn định, và xu hướng giảm.

Khử xu hướng được áp dụng để tách xu hướng nền khỏi tín hiệu, giúp tập trung phân tích vào các thành phần còn lại như tính mùa vụ và dao động bất thường.

Một phương pháp khử xu hướng phổ biến là trung bình trượt, trong đó giá trị trung bình của một cửa sổ trượt được trừ khỏi tín hiệu gốc. Các phương pháp khác bao gồm khớp đa thức hoặc dùng các kỹ thuật như bộ lọc Hodrick-Prescott.

Bề ngoài, khử xu hướng nghe khá giống làm trơn, nhưng các kỹ thuật này thực hiện những nhiệm vụ khác nhau. Làm trơn giảm nhiễu, giúp xu hướng dài hạn rõ hơn. Khử xu hướng, ngược lại, loại bỏ xu hướng dài hạn, làm cho tính chu kỳ hoặc mùa vụ trở nên rõ ràng hơn. Tùy mục tiêu phân tích, bạn có thể dùng cả hai.

Trực quan hóa tín hiệu gốc cùng với tín hiệu đã khử xu hướng có thể giúp bạn hiểu rõ hơn hành vi của dữ liệu. Biểu đồ đường hoặc biểu đồ thân cây có thể hiển thị hiệu quả xu hướng và dữ liệu đã khử xu hướng cạnh nhau.

Hình 13: Ví dụ này minh họa sức mạnh của khử xu hướng.

Hình 16: Ví dụ này minh họa sức mạnh của khử xu hướng. Tín hiệu ban đầu có xu hướng tăng dương. Sau khi khử xu hướng, mẫu kết quả không còn xu hướng đi lên này nữa. Giờ khi xu hướng đã được loại bỏ, có thể áp dụng bộ lọc làm trơn để quan sát rõ hơn mẫu nền.

Phân tích Miền Tần số

Phân tích miền tần số là kỹ thuật mạnh mẽ giúp bạn có được hiểu biết giá trị về các thành phần tần số của dữ liệu.

Biến đổi Fourier và mật độ phổ công suất (PSD)

Biến đổi Fourier là kỹ thuật toán học dùng để chuyển một tín hiệu miền thời gian sang biểu diễn tương ứng trong miền tần số. Nó phân rã tín hiệu gốc thành tổng của các hàm sin ở những tần số khác nhau. Phổ tần số thu được cung cấp bức tranh rõ ràng về các thành phần tần số hiện diện trong dữ liệu chuỗi thời gian.

Trực quan hóa phổ tần số thường được thực hiện bằng một đồ thị gọi là mật độ phổ công suất (Power Spectral Density - PSD). Đồ thị PSD hiển thị công suất (hoặc bình phương biên độ) của từng thành phần tần số. Các đỉnh trên đồ thị PSD cho thấy những tần số trội trong dữ liệu, có thể hé lộ các mẫu nền hoặc hành vi chu kỳ.

Mật độ phổ công suất là công cụ nền tảng trong phân tích miền tần số, cho thấy phân bố công suất theo tần số. Nó cung cấp thông tin về độ mạnh của các thành phần tần số khác nhau có trong dữ liệu tín hiệu.

Các đỉnh cao trong đồ thị PSD cho thấy các thành phần tần số mạnh, trong khi các đỉnh thấp biểu thị các thành phần yếu hơn.

Đồ thị PSD thường được hiển thị trên thang logarit để tăng khả năng quan sát các tần số yếu. Những đồ thị này hỗ trợ xác định các tần số quan trọng có thể tương ứng với các mẫu hoặc hiện tượng cụ thể trong dữ liệu.

Hình 14: Ví dụ sử dụng đồ thị mật độ phổ công suất (PSD) để kiểm tra độ mạnh của các thành phần tần số khác nhau trong tín hiệu.

Hình 17: Ví dụ sử dụng đồ thị mật độ phổ công suất (PSD) để kiểm tra độ mạnh của các thành phần tần số khác nhau trong tín hiệu. Tín hiệu gốc trước tiên được lọc bằng bộ lọc thông dải, sau đó một đồ thị PSD được tạo bằng hàm dựng sẵn trong Matlab.

Phổ đồ (spectrogram) và phân tích thời gian - tần số

Phổ đồ là kỹ thuật trực quan hóa giá trị, dùng để xem xét cách nội dung tần số của một tín hiệu thay đổi theo thời gian. Nó cung cấp biểu diễn thời gian - tần số của dữ liệu bằng cách chia tín hiệu thành các đoạn nhỏ và tính Biến đổi Fourier cho mỗi đoạn.

Bằng cách dùng bản đồ màu để biểu diễn công suất hoặc biên độ của từng thành phần tần số, phổ đồ hiển thị một cái nhìn ba chiều về dữ liệu. Những vùng màu ấm trong phổ đồ cho thấy các thành phần tần số mạnh ở các khoảng thời gian cụ thể, trong khi vùng màu lạnh gợi ý các tần số yếu hoặc không tồn tại.

Phân tích thời gian - tần số giúp phát hiện các sự kiện thoáng qua hoặc thay đổi đặc tính tần số vốn không dễ quan sát chỉ trong miền thời gian hoặc miền tần số. Điều này đặc biệt hữu ích trong các ứng dụng như xử lý giọng nói và âm thanh, nơi các âm vị hoặc âm khác nhau có thể mang các thành phần tần số thay đổi theo thời gian.

Hình 15: Ví dụ cách trực quan hóa tín hiệu dưới dạng phổ đồ.

Hình 18: Ví dụ cách trực quan hóa tín hiệu dưới dạng phổ đồ. Tín hiệu gốc được lọc bằng bộ lọc dải rồi vẽ phổ đồ bằng hàm mặc định trong Matlab.

Ứng dụng của Xử lý Tín hiệu

Các ứng dụng của xử lý tín hiệu rất đa dạng và bao trùm nhiều lĩnh vực. Hãy khám phá một số ứng dụng nổi bật của xử lý tín hiệu trong khoa học dữ liệu:

Tài chính và dự đoán thị trường chứng khoán

Xử lý tín hiệu có ảnh hưởng lớn trong ngành tài chính, cho phép phân tích sâu dữ liệu chuỗi thời gian tài chính.

Bằng cách áp dụng các kỹ thuật lọc, phân tích xu hướng và đặc trưng miền thời gian, các nhà khoa học dữ liệu có thể nhận diện mẫu, xu hướng và bất thường trong dữ liệu thị trường.

Các mô hình dự báo được sử dụng để dự đoán xu hướng thị trường, giá cổ phiếu và đánh giá rủi ro. Những dự đoán này rất quan trọng giúp nhà đầu tư, nhà giao dịch và tổ chức tài chính đưa ra quyết định sáng suốt và quản lý danh mục hiệu quả.

Để tìm hiểu sâu hơn về phân tích dữ liệu tài chính, hãy khám phá danh mục khóa học dữ liệu tài chính của DataCamp hoặc khóa Nhập môn Khái niệm Tài chính bằng Python này.

Dữ liệu cảm biến Internet Vạn Vật (IoT)

Internet Vạn Vật (IoT) tạo ra khối lượng lớn dữ liệu chuỗi thời gian từ nhiều cảm biến và thiết bị.

Xử lý tín hiệu giúp trích xuất thông tin giá trị từ dữ liệu này, dẫn đến insight có thể hành động. Bằng cách phân tích dữ liệu cảm biến IoT, các nhà khoa học dữ liệu có thể theo dõi tình trạng thiết bị, phát hiện bất thường và tối ưu hóa hiệu suất.

Ví dụ, trong sản xuất thông minh, các kỹ thuật xử lý tín hiệu được áp dụng để dự đoán hỏng hóc máy móc và ngăn ngừa thời gian chết, từ đó nâng cao năng suất và giảm chi phí bảo trì.

DataCamp có một khóa học về phân tích dữ liệu IoT rất hay. Hãy xem thử!

Chăm sóc sức khỏe và xử lý tín hiệu y sinh

Xử lý tín hiệu được dùng trong chăm sóc sức khỏe và các ứng dụng y sinh, nơi việc theo dõi liên tục các tín hiệu sinh lý rất quan trọng cho chăm sóc bệnh nhân.

Ví dụ, trong điện tâm đồ (ECG) và điện não đồ (EEG), các kỹ thuật xử lý tín hiệu giúp phát hiện bất thường, đánh giá tình trạng bệnh nhân và hỗ trợ chẩn đoán cũng như lập kế hoạch điều trị.

Ngoài ra, phân tích miền thời gian và miền tần số giúp khám phá các mẫu ẩn trong tín hiệu y học, dẫn đến những tiến bộ trong phát hiện bệnh và hiểu biết về sinh lý con người.

Bên cạnh ứng dụng y tế, xử lý tín hiệu còn được dùng rộng rãi trong nghiên cứu y sinh. Nó hữu ích trong phân tích dữ liệu hệ gen và các tín hiệu sinh học khác, cung cấp insight giá trị về cơ chế bệnh, khám phá thuốc và y học cá thể hóa.

Hãy xem khóa học của DataCamp về Phân tích Ảnh Y sinh bằng Python áp dụng một số kỹ thuật này.

Xử lý giọng nói và âm thanh

Trong xử lý giọng nói và âm thanh, các kỹ thuật xử lý tín hiệu được dùng để phân tích và diễn giải ngôn ngữ nói và tín hiệu âm thanh.

Hệ thống nhận dạng giọng nói tự động (ASR), trợ lý giọng nói và nhận diện cảm xúc giọng nói dựa vào các thuật toán xử lý tín hiệu để trích xuất đặc trưng liên quan và nhận dạng mẫu lời nói.

Các ứng dụng xử lý âm thanh như khử nhiễu, tăng cường âm thanh và tổng hợp giọng nói cũng tận dụng mạnh mẽ các phương pháp xử lý tín hiệu.

Nếu bạn muốn tìm hiểu thêm, DataCamp có một khóa học xuất sắc về Xử lý Ngôn ngữ Nói bằng Python.

Xử lý ảnh và video

Xử lý tín hiệu còn được dùng trong phân tích ảnh và video, cho phép các ứng dụng như nhận dạng ảnh, phát hiện đối tượng và giám sát video.

Các kỹ thuật như Biến đổi Fourier được dùng cho nén ảnh và trích xuất đặc trưng. Phân tích thời gian - tần số, như phổ đồ, đóng vai trò quan trọng trong đồng bộ tín hiệu video và âm thanh, hỗ trợ công nghệ đọc khẩu hình và nhận diện cử chỉ.

Để biết thêm thông tin về xử lý ảnh, tôi khuyến nghị khóa học xử lý ảnh trên DataCamp này.

Phân tích dữ liệu cảm biến

Xử lý tín hiệu là cốt lõi của phân tích dữ liệu cảm biến, được dùng trong các lĩnh vực như giám sát môi trường, dự báo thời tiết và tự động hóa công nghiệp. Nó giúp nhận diện các mẫu và xu hướng trong dữ liệu cảm biến, cho phép bảo trì dự đoán, phát hiện bất thường và tối ưu hóa hệ thống, quy trình.

Ứng dụng khoa học và nghiên cứu

Xử lý tín hiệu được dùng trong nhiều nghiên cứu khoa học để khảo sát mọi thứ từ tín hiệu áp suất đến rung chấn địa chấn đến điện áp. Những kỹ thuật này thậm chí đã được dùng để xác định âm thanh tạo ra bởi cánh của chim ruồi!

Thực tiễn Tốt và Mẹo cho Xử lý Tín hiệu trong Khoa học Dữ liệu

Xử lý tín hiệu là phương pháp mạnh mẽ, nhưng để cho ra kết quả chính xác và có ý nghĩa, cần tuân thủ thực tiễn tốt và cân nhắc cẩn thận. Dưới đây là một số mẹo thiết yếu để đảm bảo xử lý tín hiệu thành công.

Tiền xử lý và làm sạch dữ liệu

Trước khi đi sâu vào các kỹ thuật xử lý tín hiệu, tiền xử lý và làm sạch dữ liệu kỹ lưỡng là rất quan trọng! Điều này bao gồm xử lý giá trị thiếu, đối phó với ngoại lệ và chuẩn hóa dữ liệu để đảm bảo tính nhất quán và độ tin cậy. Các kỹ thuật giảm nhiễu như lọc hữu ích để loại bỏ nhiễu không mong muốn có thể ảnh hưởng đến phân tích tín hiệu.

Trực quan hóa để có insight

Trực quan hóa là công cụ cực kỳ mạnh trong xử lý tín hiệu. Chúng cung cấp sự thấu hiểu rõ ràng về các mẫu dữ liệu và hiệu quả của các kỹ thuật đã áp dụng.

Rất khuyến khích bạn trực quan hóa dữ liệu ở mỗi bước trong quá trình tiền xử lý và phân tích.

Biểu đồ miền thời gian, phổ tần số và phổ đồ đều là các trực quan hóa phổ biến cho tín hiệu.

Chọn đúng kỹ thuật Xử lý Tín hiệu cho các vấn đề cụ thể

Xử lý tín hiệu bao gồm nhiều kỹ thuật, mỗi kỹ thuật phù hợp với các loại dữ liệu và vấn đề cụ thể. Hiểu bản chất dữ liệu và mục tiêu phân tích là điều thiết yếu để chọn kỹ thuật phù hợp. Với dữ liệu chuỗi thời gian, các kỹ thuật như Biến đổi Fourier và tự tương quan hữu ích cho phân tích tần số và mẫu. Dữ liệu ảnh cần các kỹ thuật xử lý ảnh như phát hiện biên và trích xuất đặc trưng.

Kết luận

Xử lý tín hiệu là thành phần nền tảng của khoa học dữ liệu, trao quyền cho các chuyên gia trích xuất insight giá trị từ dữ liệu phức tạp trong nhiều ngành. Từ tài chính đến y tế, từ giọng nói đến xử lý ảnh, phân tích tín hiệu đóng vai trò quan trọng trong việc biến dữ liệu thô thành insight có thể hành động.

Những tiến bộ gần đây trong học máy và năng lực tính toán đã thúc đẩy phát triển các kỹ thuật xử lý tín hiệu đổi mới. Hãy xem cách dùng học máy với dữ liệu tín hiệu của bạn trong một bài viết riêng.

Lần đầu được giao nhiệm vụ xử lý dữ liệu tín hiệu có thể khiến bạn e ngại. Hy vọng bài hướng dẫn này đã cung cấp cho bạn công cụ để cô lập một mẫu giọng nói, phát hiện động đất hoặc dự đoán sự tăng giá cổ phiếu.

Nếu bài viết này khiến bạn hứng thú, DataCamp có một số bài code-along mà bạn có thể xem. Đây là bài về Phân tích Thời gian bằng Python, và một nghiên cứu tình huống Phân tích Chuỗi Thời gian Sông Thames bằng Python. Cũng có các hướng dẫn chuỗi thời gian trong Python và bảng tính.

Amberle McKee

Tác giả

Amberle McKee

Tôi là Tiến sĩ với 13 năm kinh nghiệm làm việc với dữ liệu trong môi trường nghiên cứu sinh học. Tôi phát triển phần mềm bằng nhiều ngôn ngữ lập trình, bao gồm Python, MATLAB và R. Tôi đam mê chia sẻ tình yêu học hỏi của mình với mọi người.

Chủ đề

Liên quan