คำแนะนำสำหรับหนังสือ - การเขียนรหัส DSP ใน C


12

ฉันกำลังมองหาหนังสือดีๆสักเล่มที่แสดงให้เห็นว่าคุณเขียนโค้ดใน C เพื่อทำวิธีหลัก DSP ทั้งหมดได้อย่างไร

  1. FFT
  2. ฟิลเตอร์กรองความถี่ต่ำและสูง
  3. Auto-สัมพันธ์
  4. การประมวลผลเสียงรบกวน

และพื้นฐานทั้งหมดของ DSP จากทฤษฏีไปเป็นรหัสจริงใน C

ตัวอย่างเช่นฉันมี 1,000 ตัวอย่างตอนนี้ฉันต้องการคำนวณ FFT ของมันลบเสียงแล้วนำกลับมาที่แกนเวลา

มีบางสิ่งที่ดีที่ครอบคลุมสิ่งเหล่านี้ทั้งหมดหรือไม่?


1
เป็นคำถามที่ดี! ฉันเปลี่ยนแท็กเป็นคำขออ้างอิงเนื่องจากดูเหมือนว่าเป็นสิ่งที่คุณต้องการ
Peter K.

2
DFFT เป็นตัวพิมพ์ผิดหรือไม่
Gilles

ใช่ไม่มี FFT ของ DFFT เท่านั้น
Brethlosze

คำตอบ:


13

ฉันขอแนะนำหนังสือสองเล่มเกี่ยวกับ DSP สำหรับภาษา C

PM PM - C อัลกอริทึมภาษาสำหรับการประมวลผลสัญญาณดิจิตอล

เป็นรุ่นเก่าและคุณสามารถนำไปขายได้ในราคาที่เหมาะสม มันครอบคลุมหัวข้อทั้งหมด 4 หัวข้อที่คุณอธิบาย

อีกหนึ่งฉันแนะนำคือ:

Malepati H. - การประมวลผลสื่อดิจิตอล: อัลกอริทึม DSP โดยใช้ C

มันครอบคลุมหัวข้อเพิ่มเติมทาง (รวมถึงอัลกอริทึมการแก้ไขข้อผิดพลาดและอัลกอริทึมการประมวลผลภาพ / วิดีโอ) สิ่งที่ดีเกี่ยวกับสิ่งนั้นคือสัญญาณทดสอบนั้นมีไว้เพื่อทดสอบการใช้งานของคุณ


ฉันจำได้ว่ามีหนังสืออีกเล่มอยู่บนโต๊ะซึ่งมีรหัส C สำหรับ DSP อยู่

กด WH - สูตรคำนวณตัวเลข: ศิลปะการคำนวณทางวิทยาศาสตร์

มีสองบทเกี่ยวกับการแปลงฟูริเยร์และการใช้งานของมัน


หนึ่งข้อเสนอแนะสุดท้าย - หากทำได้โปรดใช้ไลบรารี C ที่มีอยู่แทนการเขียนเครื่องมือของคุณเอง ไม่มีจุดในการคิดค้นล้ออีกครั้ง


4
เช่นเดียวกับความสามารถอื่น ๆ การประดิษฐ์นั้นเรียนรู้ได้ดีที่สุดเมื่อเริ่มต้นจากตัวอย่างที่ง่ายที่สุดและฝึกฝนเพียงพอ ดังนั้นจึงเป็นประโยชน์เสมอที่จะประดิษฐ์วงล้อไม่ใช่เพราะมันเพิ่มคุณค่าให้กับความสำเร็จ แต่เพราะมันทำให้นักประดิษฐ์สามารถสร้างความเข้าใจที่จำเป็นเกี่ยวกับธรรมชาติของสิ่งประดิษฐ์ได้
Fat32

3
ฉันเห็นด้วยอย่างยิ่งกับสิ่งนั้น อย่างไรก็ตามใน 99% ของโครงการที่ฉันทำไปแล้วไม่มีเวลาที่จะคิดค้นวงล้อใหม่ ในทางตรงกันข้ามเมื่อฉันทำสิ่งที่บ้านของตัวเองแล้วใน 99% ของกรณีที่ฉันอีกครั้งคิดค้นล้อเพื่อเรียนรู้และปรับปรุงเครื่องมือปัจจุบัน
jojek

ในความคิดของฉันการใช้ห้องสมุดที่มีอยู่นั้นเป็นสิ่งที่ไม่เป็นระเบียบไม่ใช่ว่าคุณมีพวกเขาทั้งหมดในกรอบเดียวคุณต้องพึ่งพาแต่ละคนและด้วย DSP คุณมักจะมีอินพุตที่แตกต่างกันและสิ่งต่าง ๆ มากมาย ซับซ้อนแล้วเพียงกล่องดำที่ทำเช่นนี้และที่
Curnelious

@ เหตุการณ์ที่น่าสนใจแม้คุณมีสิทธิ์ในระดับหนึ่ง (และสำหรับห้องสมุดบางแห่ง) ฉันไม่สามารถยอมรับได้ว่าห้องสมุดที่มีอยู่ทั้งหมดนั้นเป็นระเบียบ และเราต้องยอมรับว่าเราทุกคนใช้พวกเขา ประเด็นคือเกี่ยวกับปรัชญามากกว่าความเป็นจริง
Fat32

ข้อดีข้อหนึ่งของการใช้ห้องสมุดที่มีชื่อเสียงคือผู้ใช้สามารถมั่นใจได้ว่ารหัสนั้นมีการตรวจสอบจริง บ่อยครั้งอาจมีบางกรณีที่ผู้คนจะไม่คิดว่าจะเป็นปัญหาในบางสถานการณ์ ฉันไม่สามารถนึกถึงตัวอย่าง DSP ได้ในตอนนี้ แต่ตัวอย่างปัญหาที่พบได้ทั่วไปหนึ่งตัวอย่างกำลังพยายามคำนวณจำนวนนาทีจากวันที่แน่นอนในอดีตจนถึงปัจจุบัน ในตอนแรกมันดูเรียบง่ายเพียงแค่รับจำนวนวัน แต่เมื่อเวลานาฬิกาและการเปลี่ยนแปลงปฏิทินเข้ามาเล่นมันจะซับซ้อนมาก
AndrejaKo

7

ฉันอยากจะแนะนำการประมวลผลสัญญาณเบื้องต้นโดย SJ Orfanidis มันเป็นหนังสือที่ยอดเยี่ยมที่มีทั้งทฤษฎีและการปฏิบัติที่ดีและมันยังมีตัวอย่างโค้ดใน C และ Matlab เมื่อคุณทำงานผ่านแล้วคุณจะรู้ว่าพอที่จะดำเนินการด้วยตัวเอง


0

PM PM - C อัลกอริทึมภาษาสำหรับการประมวลผลสัญญาณดิจิตอล

มีประโยชน์ในงาน MSC ของฉันในการสร้างตัวกรอง ... แม้ว่าคุณจะสามารถสร้างส่วนหัวด้วย Matlab coder .... ฉันมีปัญหากับการติดตั้ง fft ของเขาซึ่งมีจำนวนเชิงซ้อนแทนถ้าตรีโกณมิติซึ่งง่ายต่อการใช้งานในชีวิตจริง .


-1

คุณสามารถดูรหัสต้นฉบับของฟังก์ชั่นการประมวลผลสัญญาณ openSAL และระดับแปดเสียง Matlab (ไม่ใช่ C แต่มีประโยชน์) นี่คือสิ่งที่ฉันทำ


นี้เป็นขั้นตอนที่มีความเสี่ยง .... รหัส Matlab รวมถึงฟังก์ชั่นที่ซ้อนกันจำนวนมากและมันเป็นอย่างมากมีแนวโน้มที่จะจบวิศวกรรมย้อนกลับรหัส .... ฉันพยายามนี้ในอดีตที่ผ่านมาและไม่ฉันอาศัยคิดเป็นสามเณรควรทำเช่นนี้
Brethlosze
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.