Đề xuất cho cuốn sách - Viết mã DSP bằng C


12

Tôi đang tìm một số cuốn sách hay, đơn giản chỉ ra cách bạn thực sự viết mã bằng C, để thực hiện tất cả các phương thức DSP chính.

  1. FFT.
  2. Bộ lọc thông thấp và thông cao.
  3. Tự động tương quan.
  4. Xử lý tiếng ồn.

Và tất cả những điều cơ bản của DSP, từ lý thuyết thành một mã thực trong C.

Ví dụ, tôi đã có 1000 mẫu, bây giờ tôi muốn tính FFT của nó, loại bỏ tiếng ồn, sau đó đưa trở lại trục thời gian.

Có một cái gì đó tốt bao gồm tất cả những điều này?


1
Câu hỏi hay! Tôi đã thay đổi thẻ thành yêu cầu tham chiếu vì dường như đó là những gì bạn đang yêu cầu.
Peter K.

2
DFFT có phải là một lỗi đánh máy?
Gilles

Vâng, không có DFFT chỉ FFT
Brethlosze

Câu trả lời:


13

Tôi có thể giới thiệu cho bạn hai cuốn sách về DSP cho ngôn ngữ C.

Embree PM - Thuật toán ngôn ngữ C để xử lý tín hiệu số

Nó đã cũ và bạn có thể dễ dàng mua nó với giá tốt. Nó bao gồm khá nhiều tất cả 4 chủ đề mà bạn mô tả.

Một cái khác tôi khuyên là:

Malepati H. - Xử lý phương tiện kỹ thuật số: Thuật toán DSP sử dụng C

Nó bao gồm nhiều chủ đề hơn (bao gồm các thuật toán sửa lỗi và thuật toán xử lý hình ảnh / video). Điều tuyệt vời ở đây là các tín hiệu kiểm tra được cung cấp để kiểm tra việc thực hiện của bạn.


Tôi chỉ nhớ lại rằng có một cuốn sách khác trên bàn của tôi có một số mã C cho DSP trong đó.

Nhấn WH - Bí quyết số: Nghệ thuật tính toán khoa học

Có hai chương về Biến đổi Fourier và các ứng dụng của nó.


Một đề nghị cuối cùng - nếu bạn có thể, vui lòng sử dụng thư viện C hiện có thay vì viết các công cụ của riêng bạn. Không có điểm trong việc phát minh lại bánh xe.


4
Giống như bất kỳ khả năng nào khác, phát minh được học tốt nhất khi bắt đầu từ những ví dụ đơn giản nhất và thực hành đủ. Vì vậy, nó luôn có lợi khi phát minh ra bánh xe không phải vì nó bổ sung một giá trị như một thành tựu, mà bởi vì nó cho phép nhà phát minh xây dựng cái nhìn sâu sắc cần thiết về bản chất của các phát minh.
Fat32

3
Tôi hoàn toàn đồng ý với điều đó. Tuy nhiên, trong 99% các dự án mà tôi đã thực hiện, không có thời gian để phát minh lại bánh xe. Mặt khác, khi tôi đang tự làm đồ ở nhà, thì trong 99% trường hợp tôi đang phát minh lại bánh xe để học và cải tiến các công cụ hiện tại.
jojek

Theo tôi, việc sử dụng các thư viện hiện tại là một mớ hỗn độn, không phải là bạn có tất cả chúng trong một khung, bạn phải phụ thuộc vào từng thư viện và với DSP, bạn luôn có các loại đầu vào khác nhau, và mọi thứ còn hơn thế nữa phức tạp thì chỉ cần một hộp đen làm cái này cái kia.
Curnelious

@Curnelious Sự kiện Bạn có quyền ở một mức độ nào đó (và đối với một số thư viện) Tôi không thể đồng ý rằng tất cả các thư viện hiện tại là một mớ hỗn độn. Và chúng ta phải thừa nhận tất cả chúng ta đang sử dụng chúng. Vấn đề là về triết lý hơn là thực tế.
Fat32

Một nhược điểm lớn của việc sử dụng các thư viện nổi tiếng là người dùng có thể ít nhiều chắc chắn rằng mã trên thực tế là loại được xem xét. Rất thường xuyên có thể có một số trường hợp cạnh mà mọi người sẽ không nghĩ rằng có thể khá rắc rối trong một số tình huống rất cụ thể. Tôi không thể nghĩ về các ví dụ DSP ngay bây giờ, nhưng một ví dụ rất minh họa về loại vấn đề chung là cố gắng tính số phút từ một ngày nhất định trong quá khứ cho đến tận bây giờ. Lúc đầu, nó có thể trông đơn giản như chỉ nhận được số ngày, nhưng khi thời gian và lịch thay đổi đồng hồ đi vào hoạt động, nó trở nên rất phức tạp.
AndrejaKo

7

Tôi muốn giới thiệu Giới thiệu về Xử lý tín hiệu của SJ Orfanidis. Đó là một cuốn sách tuyệt vời với sự kết hợp tốt giữa lý thuyết và thực hành, và nó cũng có các ví dụ mã trong C và Matlab. Khi bạn đã làm việc thông qua nó, bạn sẽ biết đủ để tự mình tiếp tục.


0

Embree PM - Thuật toán ngôn ngữ C để xử lý tín hiệu số

rất hữu ích trong công việc MSC của tôi trong việc xây dựng các bộ lọc ... mặc dù bạn có thể xây dựng các tiêu đề bằng bộ mã hóa Matlab .... Tôi chỉ gặp vấn đề với việc thực hiện fft của mình với các số phức thay vì nếu trig dễ thực hiện hơn trong cuộc sống thực .


-1

Bạn có thể xem mã nguồn của các hàm openSAL và Octave của các hàm xử lý tín hiệu Matlab (không phải C, nhưng hữu ích). Đây là những gì tôi đã làm.


Đây là một thủ tục rủi ro .... Mã Matlab bao gồm rất nhiều hàm lồng nhau và rất có khả năng hoàn thiện kỹ thuật đảo ngược mã .... Tôi đã thử điều này trong quá khứ và tôi không nghĩ rằng một người mới nên làm điều này
Brethlosze
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.