จะใช้รหัส FFT นี้กับขนาดคลื่นไซน์แปรผันและจำนวนเต็มแทนที่จะเป็นกางเกงขาสั้นได้อย่างไร

http://www.koders.com/java/fid168F68D8D019CF9A4F17CA8AFEE102F8BE3B2C28.aspx?s=FFT#L21

คำถาม 2 ส่วนจริงๆ ความเข้าใจของฉันเกี่ยวกับ FFT นั้นค่อนข้างกว้าง

1) รหัสดูเหมือนตรงไปตรงมาเพียงพอ แต่โซลูชันที่ฉันกำลังมองหาต้องใช้ขนาดอาร์เรย์ข้อมูลแบบแปรผัน (ยังคงเป็นกำลัง 2) แล้วผมจะเปลี่ยนคลื่นไซน์ที่ใช้ตรงนี้ได้อย่างไร? ฉันเห็นว่ามันเป็นคลื่นไซน์ขนาด 1,024 แบบคงที่ที่กำหนดไว้อย่างชัดเจน ฉันจะใช้ขนาดไดนามิกของอาร์เรย์ข้อมูลจริงเพื่อสร้างคลื่นไซน์ที่เหมาะสมได้อย่างไร

2) นอกจากนี้ วิธีแก้ปัญหาที่ฉันกำลังมองหาต้องใช้ ints แทนการใช้ short เหมือนตัวอย่างที่เชื่อมโยง เช่นเดียวกับในอาร์เรย์ข้อมูลอินพุตจะเป็นอาร์เรย์ของ ints จำเป็นต้องแก้ไขโค้ดนี้อะไรบ้าง?

ขอขอบคุณล่วงหน้าสำหรับความช่วยเหลือทั้งหมดของคุณ


person Mountain Man    schedule 12.07.2012    source แหล่งที่มา


คำตอบ (1)


  1. หากคุณต้องการอาร์เรย์ขนาดตัวแปร เพียงใช้ ArrayList เพื่อแทรกค่าของคุณ รหัสควรปรับเปลี่ยนได้ง่ายเพื่อรองรับสิ่งนี้

  2. หากต้องการเปลี่ยนจาก short เป็น int เพียงเปลี่ยนทั้งหมดเป็น int short เป็นเพียงจำนวนเต็ม 2 ไบต์ แทนที่จะเป็น int ซึ่งก็คือ 4 ไบต์

person Rob Wagner    schedule 12.07.2012