Rekomendasi untuk buku - Menulis kode DSP dalam C

12

Saya mencari beberapa buku bagus, yang hanya menunjukkan bagaimana Anda benar-benar menulis kode dalam C, untuk melakukan semua metode DSP utama.

  1. FFT.
  2. Filter low-pass dan high-pass.
  3. Korelasi otomatis.
  4. Pemrosesan kebisingan.

Dan semua dasar-dasar DSP, dari teori menjadi kode nyata dalam C.

Sebagai contoh, saya sudah mendapat 1000 sampel, sekarang saya ingin menghitung FFT-nya, menghilangkan suara-suara, lalu membawa kembali ke sumbu waktu.

Adakah sesuatu yang baik yang menutupi semua ini?

Curnelious
sumber
1
Pertanyaan bagus! Saya mengubah tag menjadi referensi-permintaan karena sepertinya itulah yang Anda minta.
Peter K.
2
Apakah DFFT salah ketik?
Gilles
Ya, tidak ada FFT hanya
DFFT

Jawaban:

13

Saya dapat merekomendasikan Anda dua buku tentang DSP untuk bahasa C.

Embree PM - C Algoritma Bahasa untuk Pemrosesan Sinyal Digital

Ini sudah tua dan Anda dapat dengan mudah mendapatkannya dengan harga yang layak. Ini mencakup hampir semua 4 topik yang Anda uraikan.

Yang lain yang saya rekomendasikan adalah:

Malepati H. - Pemrosesan Media Digital: Algoritma DSP Menggunakan C

Ini mencakup lebih banyak topik (termasuk algoritma koreksi kesalahan dan algoritma pemrosesan gambar / video). Yang menyenangkan tentang itu adalah sinyal uji disediakan untuk menguji implementasi Anda.


Saya baru ingat bahwa ada buku lain di meja saya yang memiliki beberapa kode C untuk DSP di dalamnya.

Tekan WH - Resep Numerik: Seni Komputasi Ilmiah

Ada dua bab tentang Transformasi Fourier dan aplikasinya.


Satu saran terakhir - jika Anda bisa, silakan gunakan perpustakaan C yang ada alih-alih menulis alat Anda sendiri. Tidak ada gunanya menciptakan kembali roda.

jojek
sumber
4
seperti kemampuan lain, penemuan paling baik dipelajari ketika dimulai dari contoh paling sederhana dan cukup dipraktikkan. Jadi selalu bermanfaat untuk menciptakan roda bukan karena menambah nilai sebagai pencapaian, tetapi karena memungkinkan penemu untuk membangun wawasan yang diperlukan tentang sifat penemuan.
Fat32
3
Saya sepenuhnya setuju dengan itu. Meskipun demikian dalam 99% proyek yang telah saya lakukan tidak ada waktu untuk menemukan kembali roda. Di sisi lain, ketika saya melakukan hal-hal saya sendiri di rumah, maka dalam 99% kasus saya menciptakan kembali roda untuk belajar dan meningkatkan alat saat ini.
jojek
Menurut pendapat saya, menggunakan perpustakaan yang ada agak berantakan, ini bukan berarti Anda memiliki semuanya dalam satu kerangka kerja, Anda harus bergantung pada masing-masing dari mereka, dan dengan DSP Anda selalu memiliki berbagai jenis input, dan banyak hal yang jauh lebih banyak. rumit maka hanya kotak hitam yang melakukan ini dan itu.
Curnelious
@Curnelious Walaupun Anda benar sampai batas tertentu (dan untuk beberapa perpustakaan) saya tidak bisa setuju bahwa semua perpustakaan yang ada berantakan. Dan kita harus mengakui bahwa kita semua menggunakannya. Intinya adalah tentang filsafat daripada kenyataan.
Fat32
Salah satu keuntungan besar menggunakan perpustakaan terkenal adalah bahwa pengguna dapat lebih atau kurang yakin bahwa kode tersebut sebenarnya ditinjau. Cukup sering ada beberapa kasus tepi yang tidak akan dipikirkan orang yang dapat menjadi masalah dalam beberapa situasi yang sangat spesifik. Saya tidak dapat memikirkan contoh DSP saat ini, tetapi satu contoh yang sangat ilustratif dari tipe masalah yang umum adalah mencoba menghitung jumlah menit dari tanggal tertentu di masa lalu hingga sekarang. Pada awalnya, ini bisa terlihat sesederhana hanya mendapatkan beberapa hari, tetapi ketika waktu jam dan perubahan kalender ikut bermain, itu menjadi sangat rumit.
AndrejaKo
7

Saya akan merekomendasikan Pengantar Pemrosesan Sinyal oleh SJ Orfanidis. Ini adalah buku yang hebat dengan campuran teori dan praktik yang baik, dan juga memiliki contoh kode dalam C dan Matlab. Setelah Anda menyelesaikannya, Anda akan tahu cukup banyak untuk melanjutkan sendiri.

Matt L.
sumber
0

Embree PM - C Algoritma Bahasa untuk Pemrosesan Sinyal Digital

berguna dalam pekerjaan MSC saya dalam membangun filter ... meskipun Anda dapat membangun header dengan Matlab coder .... Saya hanya punya masalah dengan implementasi fft-nya yang dengan bilangan kompleks bukan jika trigonometri yang lebih mudah diimplementasikan dalam kehidupan nyata .

Chika Worka - siswa PHD
sumber
-1

Anda dapat melihat kode sumber openSAL dan sumber oktaf dari fungsi pemrosesan sinyal Matlab (bukan C, tetapi bermanfaat). Inilah yang saya lakukan.

VK69UK
sumber
Ini adalah prosedur yang berisiko .... Kode Matlab memasukkan begitu banyak fungsi bersarang dan sangat mungkin untuk menyelesaikan rekayasa balik kode .... Saya mencoba ini di masa lalu dan tidak saya pikir seorang pemula harus melakukan ini
Brethlosze