MATLAB vs Python để xử lý tín hiệu
Lưu ý của tác giả. Bài viết này ban đầu được gọi là Những cuộc phiêu lưu trong xử lý tín hiệu với Python (MATLAB? Chúng tôi không cần MATLAB bốc mùi. ) — sự ám chỉ đến Kho báu của Sierra Madre đã bị xóa, để tôn trọng việc trở thành hàng xóm tốt của The MathWorks. Mặc dù tôi không giấu giếm việc mình không thích nhiều khía cạnh của MATLAB — mà tôi sẽ đề cập ở phần sau của bài viết này — nhưng tôi hy vọng họ có thể cải thiện phần mềm của mình và giảm giá thành. Xin lưu ý rằng điều này thể hiện quan điểm của riêng tôi và không phản ánh quan điểm của chủ lao động của tôi hoặc của nhà xuất bản trang web này Show
OK, bây giờ quay lại một số chủ đề thực tế sau trò giải trí triết học cuối cùng đó. Bài đăng này sẽ là một chuyến tham quan ngắn về PyLab và là bàn đạp cho một số chủ đề khác - bao gồm cả phần tiếp theo được chờ đợi từ lâu để ước tính tốc độ bộ mã hóa Tại nơi làm việc, chúng tôi sử dụng MATLAB làm phần mềm phân tích và hiển thị dữ liệu. Nhưng nhóm của tôi chỉ có nó trên một máy tính xách tay dùng chung. Và tôi mệt mỏi vì phải chia sẻ. . –) Vì vậy, tôi bắt đầu xem xét các lựa chọn thay thế Scilab, Octave, Sage… tất cả đều không ổn định và dường như không có các tính năng và sự phong phú mà tôi muốn. Sau đó, tôi phát hiện ra PyLab PyLab là một môi trường Python để tính toán khoa học bao gồm các gói sau
Đợi một chút - đây là một blog hệ thống nhúng, phải không?. Python sẽ không chạy trên hệ thống nhúng bị giới hạn tài nguyên và trên thực tế, Python là một trong ba tiêu chí của tôi… Dấu hiệu bạn không làm việc trên một hệ thống nhúng có tài nguyên hạn chế
Vì vậy, nếu bạn đang sử dụng Python, bạn không thực sự phát triển hệ thống nhúng. Nhưng nó ổn. Bởi vì bạn cần mở rộng tầm nhìn của mình. Đừng là một con ngựa một mánh và bị mắc kẹt trong C và phát triển lắp ráp cho bộ xử lý yêu thích của bạn mà bạn chọn Dù sao đi nữa, có rất nhiều lúc tôi phải ngừng lập trình và thử lý thuyết về một ý tưởng nào đó mà tôi có. Và gần đây PyLab đã giúp ích rất nhiều Dưới đây là một số ví dụ về những gì nó có thể làm. Nhưng trước tiên, một lời cảnh báo Chúng ta cần MATLAB bốc mùi?Tôi cần làm rõ rằng bài đăng này dành cho các kỹ sư (đặc biệt là các nhà phát triển hệ thống nhúng), những người có công việc xử lý tín hiệu, phân tích dữ liệu và trực quan hóa như một phần phụ trong công việc của họ Đối với những bạn đang thiết kế hệ thống điều khiển hoặc xử lý tín hiệu chuyên sâu, toàn thời gian, MATLAB có lẽ là công cụ phù hợp cho công việc. Nếu công ty của bạn có thể trả cho bạn 40 giờ một tuần, họ cũng có thể trả cho MATLAB Nếu chi phí không phải là vấn đề, thì tôi thích sử dụng MATLAB và tôi sẽ nhận được tất cả các hộp công cụ có thể Tôi cũng sẽ không thảo luận sâu về các thuật toán hệ thống điều khiển hoặc xử lý tín hiệu (biến đổi z, FFT, sơ đồ quỹ tích nghiệm, biểu đồ Nichols, v.v. ). Và tôi sẽ không nói cho bạn biết hướng dẫn từng bước để sử dụng Python và PyLab. Đây chỉ đơn thuần là một chuyến tham quan PyLab để khơi gợi sự quan tâm của bạn ứng dụng ví dụGiả sử bạn cần hiểu dòng điện gợn trong cầu H có tải cảm ứng, trong điều chế độ rộng xung được căn chỉnh theo cạnh và căn giữa Đây là một số biểu đồ của dòng điện gợn, cùng với một đoạn mã Python ngắn mà tôi đã sử dụng để tạo ra chúng PWM căn chỉnh cạnh. PWM căn giữa.
Hoặc so sánh 2 bộ lọc RC 2 tầng, một có RC giống hệt nhau và một có trở kháng ở tầng 2 tăng 10 để giảm tải (chú ý. sơ đồ bên dưới không phải từ Python mà được vẽ thủ công trong CircuitLab) Một lần nữa, đây là mã nguồn ngắn
Hoặc sử dụng gói đại số ký hiệu sympy cho Python để tính giá trị bình phương trung bình của một đoạn tuyến tính theo từng đoạn
Bạn thậm chí có thể tự mình thử điều này trên máy chủ SymPy Live Cài đặtViệc cài đặt Python cốt lõi khá dễ dàng; . tổ chức. Mọi thứ trở nên phức tạp hơn một chút nếu bạn muốn cài đặt các thư viện scipy/numpy/matplotlib mà không phụ thuộc vào việc cài đặt đúng môi trường trình biên dịch Có một số giải pháp tốt được liệt kê trên scipy. trang web tổ chức; . Tôi không có kinh nghiệm sử dụng Linux nên hãy kiểm tra scipy. trang tổ chức các cửa sổCó ba phiên bản đóng gói sẵn miễn phí của PyLab mà tôi đã sử dụng PortablePython có thời gian cài đặt/chạy đáng tin cậy nhất. PythonXY có bộ tính năng lớn nhất (và kích thước cài đặt lớn nhất). Enth think Canopy rất đẹp; Ngoài ra còn có Anaconda, mà tôi mới bắt đầu sử dụng trên Mac OSX, nhưng chưa thử trên Windows Mac OS XTôi đang chạy Snow Leopard (OSX 10. 6) trên máy Mac của tôi ở nhà. Tôi chưa tìm thấy giải pháp tuyệt vời nào cho PyLab nhưng tôi đang nghiên cứu nó Cài đặt miễn phí dễ dàng nhất cho PyLab dường như là Anaconda. từ Phân tích liên tục. Quá trình cài đặt rất dễ dàng và nó hoạt động bình thường… ngoại trừ việc tôi nhận được một số cảnh báo về việc cấp phát bộ nhớ khi chạy các tập lệnh mà tôi đã viết cho bài đăng này (tuy nhiên, các tập lệnh đã hoạt động bình thường) và khi tôi chạy bản cài đặt Python thông thường của mình, . ừm. Hy vọng rằng những nút thắt này sẽ được giải quyết; Quy trình phần mềm miễn phí thông thường trên máy Mac sử dụng trình quản lý gói như fink hoặc MacPorts; Enth think Canopy cũng có các phiên bản OSX và Linux, nhưng tôi chưa dùng thử Cũng có thể sử dụng các tệp nhị phân được biên dịch sẵn cho các gói khác nhau. Mặc dù Python được cài đặt sẵn trên máy Mac nhưng hãy đảm bảo rằng phiên bản Python của bạn tương thích với các thư viện bạn cài đặt. Tôi cũng khuyên bạn nên cài đặt phiên bản cập nhật của Python. Ở mức tối thiểu, đây là những gì bạn cần MATLAB so với. con trănLý do nên sử dụng MATLAB
Lý do không sử dụng MATLAB
Lý do nên sử dụng Python
Những điều bạn từ bỏ khi sử dụng PythonTất cả các vấn đề sau đây là do numpy là một thư viện bổ sung cho Python, so với. một tính năng hạng nhất của ngôn ngữ
Bạn muốn tìm hiểu thêm về PyLab?Đầu tiên và quan trọng nhất. thử nó Có một số hướng dẫn tuyệt vời về scipy. tổ chức. Python đủ phổ biến để có nhiều hướng dẫn khác nằm rải rác trên internet. Đây là một cái mà tôi thấy có vẻ như là một nơi tốt để bắt đầu Đối với Python nói chung, cuốn sách Học Python của O'Reilly là một cuốn sách cổ điển - ấn bản thứ 5 sắp xuất bản, nhưng đối với những điều cơ bản, bạn sẽ không bỏ lỡ nhiều bằng cách lấy ấn bản trước đó. Ngoài ra còn có Learn Python The Hard Way, miễn phí dưới dạng một chuỗi bài tập trực tuyến Các nguồn lực khácTôi mới bắt đầu học cách sử dụng pandas và IPython gấu trúcGói gấu trúc bao gồm các công cụ để phân tích dữ liệu với Python. Thư viện numpy và scipy hoạt động với mảng N chiều. Thư viện gấu trúc thêm các cột và hàng được đặt tên và lập chỉ mục vào mảng. Nếu bạn đã từng làm việc với các tệp CSV có tiêu đề cột, bạn sẽ biết ý tôi là gì. Hãy tưởng tượng việc xóa các tiêu đề khỏi tệp CSV. những gì bạn còn lại là một ma trận, nơi bạn phải nhớ rằng cột 0 là thời gian và cột 1-3 là điện áp pha động cơ. Thư viện gấu trúc cung cấp cho bạn một lớp Python có tên là DataFrame, lớp này cho phép bạn chú thích các ma trận với thông tin về từng hàng và cột. Có rất nhiều goodies khác trong gấu trúc. DataFrame để xử lý số trên loại dữ liệu này Bạn muốn tìm hiểu thêm về gấu trúc? IPythonNếu bạn đã quen với shell tương tác trong Matlab, thì IPython là dành cho bạn. Nếu bạn nhập 1, nó sẽ khởi động máy chủ web, mở trình duyệt web của bạn và nhập trước các thư viện pylabNếu bạn quên các phương thức có sẵn của một đối tượng, bạn chỉ cần nhấn phím tab để hoàn thành tương tác Nếu bạn bắt đầu viết một lời gọi hàm và do dự, IPython sẽ nhắc bạn với một số trợ giúp cơ bản Và đó mới chỉ là khởi đầu. Như tôi đã nói, tôi vẫn đang học IPython. Muốn tìm hiểu thêm? Phần kết luậnCàng tìm hiểu nhiều về Python, tôi càng ít phụ thuộc vào MATLAB hơn cho các nhiệm vụ phân tích và trực quan hóa dữ liệu mà tôi cần cho công việc của mình Nhớ. phát triển hệ thống nhúng không chỉ là viết mã. Đó là về lập kế hoạch, trong bối cảnh của một hệ thống thực với các thành phần điện tử và đôi khi là các thành phần cơ khí. Để tạo ra một hệ thống tốt hơn, bạn có thể tiết kiệm cho mình rất nhiều rắc rối bằng cách phân tích nó trước khi bắt đầu ném mã C nhúng vào nó. Các công cụ như MATLAB và Python có thể giúp ích; Python có tốt cho việc xử lý tín hiệu không?Nếu mục tiêu của bạn là tìm hiểu thuật toán xử lý tín hiệu số (DSP) và thiết kế hệ thống, thì bất kỳ ngôn ngữ nào cũng được, mặc dù một số ngôn ngữ có thể có thư viện và hộp công cụ giúp việc học dễ dàng hơn. Matlab và python đều tốt cho việc này .
Python có tốt hơn MATLAB để xử lý ảnh không?Trong kỹ thuật, Python cũng giúp thực hiện mô phỏng, rung động, mô hình hóa kỹ thuật và chuyển động động. Trong khi đó, hộp công cụ IC để xử lý hình ảnh trong MATLAB làm cho nó trở thành một lựa chọn tốt hơn cho việc phân đoạn, trích xuất và phân tích dữ liệu hình ảnh . Nhưng trong Python, xử lý hình ảnh dựa trên các gói bên ngoài.
MATLAB có hữu ích hơn Python không?MATLAB có khả năng tính toán rất mạnh, Python rất khó làm . Python không hỗ trợ ma trận, nhưng có thể đạt được thư viện NumPy. MATLAB đặc biệt giỏi xử lý tín hiệu, xử lý ảnh, trong đó Python không mạnh và hiệu suất cũng kém hơn nhiều.
MATLAB hay Python tốt hơn cho máy học?Python vượt trội so với Matlab vì nó được sử dụng rộng rãi cho máy học, trí tuệ nhân tạo và nhiều công nghệ tương lai. Nó có rất nhiều framework như Tensorflow, Keras, PyTorch, Scikit-learning được sử dụng rộng rãi cho các công nghệ trong tương lai. Các khung này dễ sử dụng so với Matlab. |