2008-10-04 59 views

Trả lời

5

là thư viện toán C# mã nguồn mở có thuật toán FFT.

+1

Giới hạn chỉ với một vài kích thước biến đổi. –

12

Math.NET's Iridium library cung cấp bộ sưu tập các hàm liên quan đến toán học được cập nhật thường xuyên, nhanh chóng, bao gồm FFT. Nó được cấp phép theo LGPL, do đó bạn được tự do sử dụng nó trong các sản phẩm thương mại.

+2

+1. Math.NET Iridium là tuyệt vời cho việc dịch mã Java (sử dụng Apache commons-math) để .NET nhờ sự tương ứng chặt chẽ giữa các lớp và các phương thức của mỗi lớp. 95% thời gian tất cả những gì bạn phải làm là thay đổi tên lớp và phương thức và mọi thứ sẽ hoạt động. – finnw

47

Người đã làm AForge đã làm một công việc khá tốt nhưng nó không phải là chất lượng thương mại. Thật tuyệt vời khi học hỏi nhưng bạn có thể nói rằng anh ấy cũng học quá nên anh ấy có một số lỗi khá nghiêm trọng như giả định kích thước của một hình ảnh thay vì sử dụng các bit chính xác trên mỗi pixel.

Tôi không đánh anh chàng, tôi kính trọng anh ta vì đã học tất cả điều đó và chỉ cho chúng tôi cách thực hiện. Tôi nghĩ anh ấy là một tiến sĩ hiện nay hoặc ít nhất anh ấy sắp trở nên rất thông minh, nó không chỉ là một thư viện thương mại có thể sử dụng được.

Thư viện Math.Net có sự kỳ quặc riêng khi làm việc với biến đổi Fourier và hình ảnh/số phức tạp. Giống như, nếu tôi không nhầm, nó đưa ra biến đổi Fourier ở định dạng có thể xem được của con người, điều này tốt cho con người nếu bạn muốn xem một bức tranh của biến đổi nhưng nó không tốt cho lắm khi bạn mong đợi dữ liệu ở trong một định dạng (định dạng thông thường). Tôi có thể nhầm lẫn về điều đó nhưng tôi chỉ nhớ có một số điều kỳ lạ vì vậy tôi thực sự đã đi đến mã ban đầu họ sử dụng cho các công cụ Fourier và nó đã làm việc tốt hơn nhiều. (ExocortexDSP v1.2 http://www.exocortex.org/dsp/)

Math.net cũng có một số sự sôi nổi khác mà tôi không thích khi xử lý dữ liệu từ FFT, tôi không thể nhớ mình đã biết nó dễ dàng hơn nhiều để có được những gì tôi muốn ra khỏi thư viện ExoCortex DSP. Tôi không phải là một nhà toán học hay kỹ sư; với những người đó, nó có thể có ý nghĩa hoàn hảo.

Vì vậy! Tôi sử dụng mã FFT kéo mạnh từ ExoCortex, mà Math.Net được dựa trên, mà không có bất cứ điều gì khác và nó hoạt động tuyệt vời.

Và cuối cùng, tôi biết nó không phải là C#, nhưng tôi đã bắt đầu xem xét sử dụng FFTW (http://www.fftw.org/). Và anh chàng này đã làm một wrapper C# vì vậy tôi sẽ kiểm tra nó ra nhưng chưa thực sự sử dụng nó. (http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html)

OH! Tôi không biết nếu bạn đang làm điều này cho trường học hoặc làm việc, nhưng một trong hai cách có một loạt bài giảng miễn phí tuyệt vời được đưa ra bởi một giáo sư Stanford tại Đại học iTunes.

http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.1617315771

+1

Tôi muốn được quan tâm đến chi tiết hơn về sự kỳ quặc trong việc thực thi FFT Mathipt Iridium - vì vậy chúng tôi có thể sửa nó! ;). Nó có liên quan đến cách xử lý các con số phức tạp không? Không có ý tưởng những gì bạn có nghĩa là với "định dạng con người có thể xem" mặc dù. Các mẫu: http://mathnet.opensourcedotnet.info/doc/IridiumFFT.ashx –

+6

fftw có một số loại giấy phép có vấn đề; kiểm tra điều này: "Giấy phép không miễn phí cho FFTW cũng có sẵn cho phép các điều khoản sử dụng khác với GPL". –

+0

Đây là câu hỏi của Mike Bethany. Tôi đang cố gắng tìm hiểu cách chuyển đổi dữ liệu từ miền thời gian sang miền tần số. Là exocortex của bạn liên kết đúng cách để làm như vậy? –

1

Đối với việc thực hiện đa luồng điều chỉnh cho bộ xử lý Intel Tôi muốn kiểm tra thư viện MKL của Intel. Nó không phải là miễn phí, nhưng nó đáng yêu (ít hơn $ 100) và blazing nhanh - nhưng bạn cần phải gọi đó là C dll thông qua P/Invokes. Dự án Exocortex ngừng phát triển cách đây 6 năm, vì vậy tôi sẽ cẩn thận khi sử dụng nó nếu đây là một dự án quan trọng.

+2

Giá người dùng đơn lẻ tính đến tháng 6 năm 2013 là 499 USD. – RickNZ

+0

Kể từ tháng 10 năm 2015, phiên bản nhà soạn nhạc là $ 699 – mcy

+0

Không phải là chương trình miễn phí với chương trình 'Cấp phép cộng đồng'? [Không có lựa chọn chi phí cho Thư viện nguyên thủy hiệu năng tích hợp Intel (IPP), Hỗ trợ bản thân, Không có tiền bản quyền] (https://software.intel.com/en-us/articles/free_ipp) – Lati

7

Tôi thấy đây là một chủ đề cũ, nhưng đối với những gì nó có giá trị, tôi có một miễn phí (MIT License) 1-D power-of-2-chiều dài chỉ C# FFT thực hiện ở đây: http://gerrybeauregard.wordpress.com/2011/04/01/an-fft-in-c/

Tôi chưa so sánh hiệu suất của nó với các triển khai C# FFT khác. Tôi đã viết nó chủ yếu để so sánh hiệu suất của Flash/ActionScript và Silverlight/C#. Sau này là nhanh hơn nhiều, ít nhất là cho crunching số.

2

Trang web Bí quyết số (http://www.nr.com/) có FFT nếu bạn không nhớ nhập. Tôi đang làm việc trên một dự án chuyển đổi chương trình Labview thành C# 2008, .NET 3.5 để thu thập dữ liệu và sau đó xem xét phổ tần số. Thật không may, Math.Net sử dụng .NET framework mới nhất, vì vậy tôi không thể sử dụng FFT đó. Tôi đã thử một Exocortex - nó đã làm việc nhưng kết quả để phù hợp với kết quả Labview và tôi không biết đủ lý thuyết FFT để biết những gì đang gây ra vấn đề. Vì vậy, tôi đã thử FFT trên trang web công thức nấu ăn số và nó đã hoạt động! Tôi cũng có thể lập trình cửa sổ sidelobe Labview thấp (và phải giới thiệu một yếu tố mở rộng).

Bạn có thể đọc chương của cuốn sách Công thức số làm khách trên trang web của họ, nhưng cuốn sách hữu ích đến nỗi tôi khuyên bạn nên mua nó. Ngay cả khi bạn kết thúc bằng cách sử dụng Math.NET FFT.

+0

Hãy cẩn thận với bất kỳ mã nào bạn sử dụng từ Bí quyết số. Không có gì sai với mã, nó là giấy phép đó là vấn đề. Bạn phải trả tiền để sử dụng mã và không có ngoại lệ cho các ứng dụng phi thương mại hoặc khoa học. Xem [link] này (http://mingus.as.arizona.edu/~bjw/software/boycottnr.html) để biết thêm thông tin. –

Các vấn đề liên quan