คำถามติดแท็ก stft

2
อัลกอริทึมการแปลงฟูริเยร์ในช่วงเวลาสั้น ๆ ที่อธิบายไว้ในคำพูด
ฉันพยายามเข้าใจแนวคิดว่าเกิดอะไรขึ้นเมื่อมีการใช้การแปลงฟูริเยร์ช่วงเวลาสั้น ๆ (STFT) ไปข้างหน้าและผกผันกับสัญญาณโดเมนเวลาแบบไม่ต่อเนื่อง ฉันได้พบกระดาษคลาสสิกโดย Allen และ Rabiner ( 1977 ) รวมถึงบทความ Wikipedia ( ลิงก์ ) ผมเชื่อว่ายังมีอีกบทความที่ดีที่จะพบได้ที่นี่ ฉันสนใจในการคำนวณการแปลง Gabor ซึ่งไม่มีอะไรมากไปกว่า STFT ด้วยหน้าต่างแบบเกาส์เซียน นี่คือสิ่งที่ฉันเข้าใจเกี่ยวกับSTFT ไปข้างหน้า : ลำดับย่อยจะถูกเลือกจากสัญญาณซึ่งประกอบด้วยองค์ประกอบโดเมนเวลา ลำดับย่อยจะถูกคูณด้วยฟังก์ชันหน้าต่างโดยใช้การคูณแบบจุดต่อจุดในโดเมนเวลา ลำดับย่อยคูณจะถูกนำเข้าสู่โดเมนความถี่โดยใช้ FFT ด้วยการเลือกลำดับย่อยที่ทับซ้อนกันอย่างต่อเนื่องและทำซ้ำขั้นตอนข้างต้นเราจะได้เมทริกซ์ที่มีแถวmและคอลัมน์n แต่ละคอลัมน์เป็นลำดับย่อยที่คำนวณในเวลาที่กำหนด นี้สามารถใช้ในการคำนวณ spectrogram อย่างไรก็ตามสำหรับผกผัน STFT เอกสารพูดคุยเกี่ยวกับผลรวมของส่วนการวิเคราะห์ที่ทับซ้อนกัน ฉันพบว่ามันท้าทายมากที่จะเห็นภาพว่าเกิดอะไรขึ้นที่นี่ ฉันต้องทำอย่างไรจึงจะสามารถคำนวณSTFT ผกผัน (เรียงลำดับตามขั้นตอนข้างต้น) ได้ ส่งต่อ STFT ฉันได้สร้างภาพวาดที่แสดงสิ่งที่ฉันคิดว่าเกิดขึ้นสำหรับ STFT ไปข้างหน้า สิ่งที่ฉันไม่เข้าใจคือวิธีการรวบรวมแต่ละลำดับย่อยเพื่อที่ฉันจะได้กลับไปตามลำดับเวลาเดิม ใครสามารถแก้ไขภาพวาดนี้หรือให้สมการที่แสดงวิธีการย่อยลำดับจะถูกเพิ่ม? การแปลงผกผัน นี่คือสิ่งที่ฉันเข้าใจเกี่ยวกับการแปลงผกผัน …

3
STFT และ DWT (เวฟเล็ต)
STFT สามารถใช้กับข้อมูลเสียงได้สำเร็จ (พร้อมด้วยไฟล์. wav soundfile) เพื่อทำการปรับเปลี่ยนโดเมนความถี่บางอย่าง (ตัวอย่าง: กำจัดเสียงรบกวน) ด้วยN=441000(เช่น 10 วินาทีในอัตราการสุ่มตัวอย่างfs=44100) windowsize=4096, overlap=4, STFT ผลิต approximatively 430x4096อาร์เรย์ (ตอนแรกประสานงาน: กรอบเวลาสองประสานงานความถี่ bin) การแก้ไขสามารถทำได้ในอาเรย์นี้และการสร้างใหม่สามารถทำได้ด้วยoverlap-add (*) มันเป็นวิธีการที่เป็นไปได้ที่จะทำสิ่งที่คล้ายกันกับแสง ? (DWT) คือรับรูปร่างที่คล้ายกันa x bโดยมีaกรอบเวลาและbถังขยะความถี่ทำการปรับเปลี่ยนบางอย่างในอาเรย์นี้และในตอนท้ายการกู้คืนสัญญาณหรือไม่ ได้อย่างไร เวฟเล็ตเทียบเท่ากับการทับซ้อนกันคืออะไร ฟังก์ชั่น Python เกี่ยวข้องกับอะไร (ฉันไม่พบตัวอย่างง่ายๆของการดัดแปลงเสียงด้วยpyWavelets... )? (*): นี่คือกรอบ STFT ที่สามารถใช้ได้: signal = stft.Stft(x, 4096, 4) # x is the input modified_signal …
12 fft  wavelet  dft  python  stft 

4
คุณสามารถเพิ่มความละเอียดความถี่ของ FFT โดยไม่เพิ่มขนาดหน้าต่างได้หรือไม่
ฉันต้องการใช้ STFT สำหรับการวิเคราะห์แบบหลายจุด ฉันรู้ว่าการตรวจจับชิ้นงานที่มีอยู่ในสัญญาณนั้นเป็นเพียงการเริ่มต้น ยังฉันมีปัญหากับมัน 44100Hzสมมติว่าผมมีสัญญาณที่มีความถี่ตัวอย่าง 'CD' พร้อมหน้าต่างของ1024ตัวอย่างที่ฉันได้รับมติ bin 22500Hz/512=43Hzความถี่ของ นี้ก็พอเพียงที่จะมองเห็นโน้ตเปียโนสูงเช่น: และC5 = 523.251HzC#5 = 554.365 ฉันเคยคิดว่า1024ค่อนข้างเป็นหน้าต่างบานใหญ่ แต่มันอาจจะไม่ใช่และโดยปกติจะใช้หน้าต่างขนาดใหญ่กว่าเพื่อตรวจจับชิ้นงาน? สามารถเพิ่มความละเอียดความถี่ด้วยวิธีอื่นนอกเหนือจากการเพิ่มขนาดหน้าต่างซึ่งการแก้ไขเวลาแย่ลงหรือไม่ ฉันคิดถึงสองวิธี: method1: แบ่งสัญญาณออกเป็นคลื่นความถี่ด้วย bandpassfilters (เช่น0-11.25Hzและ11.25-22.5Hz) Downsample แบนด์ที่สูงขึ้นเพื่อให้ความถี่สูงดั้งเดิมตอนนี้เป็นความถี่ต่ำ (เช่นสำหรับแบนด์ที่สอง11.25-22.5Hz -> 0Hz-22.5Hz) - ไม่แน่ใจว่าเป็นไปได้ ถังขยะที่เกิดขึ้นพร้อมกันตั้งค่าด้วยฉลากที่ปรับ Method2: ใช้ชุดตัวกรอง lowpass พร้อมเพิ่มขีด จำกัด ดำเนินการ FFT เมื่อเพิ่มช่วงความถี่ สำหรับแต่ละความถี่ให้ใช้ความละเอียดที่ดีที่สุด (ถังขยะจาก FFT แรกซึ่งรวมถึงความถี่นี้) สิ่งนี้จะทำให้ความถี่ต่ำมีความละเอียดที่ดีขึ้น แต่ฉันคิดว่ามันโอเคเพราะสำหรับโน้ตที่สูงขึ้นความแตกต่างของความถี่ก็น่ากลัวกว่า ฉันจะขอบคุณข้อสังเกตใด ๆ เกี่ยวกับปัญหานี้ ฉันยังอ่านที่นี่: …
12 filters  fft  pitch  stft 

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

2
การตรวจจับระดับพิทช์แบบเรียลไทม์
ฉันพยายามใช้เกมร้องเพลงที่จะวิเคราะห์อินพุตไมโครโฟนดิบและบอกผู้เล่นว่าเขาร้องเพลงดีแค่ไหน ที่ต้องทำในเวลาจริง ฉันได้เจอหัวข้อมากมายที่ถามคำถามเดียวกัน แต่ฉันก็ยังไม่ได้ทำเพราะอาจขาดประสบการณ์และความรู้พื้นฐานทางคณิตศาสตร์ ฉันใช้อัลกอริทึมตามบทความของ pitch shift ของเว็บไซต์ DSPDimension: http://www.dspdimension.com/admin/pitch-shifting-using-the-ft/ ฉันแยกความถี่และขนาดที่แท้จริงเหมือนกับที่อธิบายในบทความ แต่ฉันไม่รู้ว่าพบความถี่พื้นฐานด้วยสิ่งนี้ ฉันพยายามที่จะรับถังที่มีขนาดใหญ่ที่สุด แต่ให้ผลลัพธ์ที่ถูกต้องสำหรับสัญญาณพิทช์ที่สูงขึ้นมันไม่สำคัญว่าปัจจัยการสุ่มตัวอย่างใดที่ฉันใช้ฉันยังคงได้รับข้อมูลที่ไม่ดีสำหรับสัญญาณความถี่ต่ำ วิธีนี้ผิดหรือฉันอยู่ในเส้นทางที่ถูกต้อง แต่เพิ่งพลาดบางอย่าง ขอบคุณล่วงหน้า, แก้ไข: ฉันลืมที่จะพูดถึงว่าฉันเพียง แต่สนใจในระดับสนามดังนั้นมันก็โอเคถ้าพื้นฐานหายไป แต่ฉันมีเสียงที่ดังมากในตัวอย่าง EDIT2: ขอบคุณทุกคนฉันเพิ่งทำอัลกอริทึมรุ่นที่ใช้งานได้อย่างมีเสน่ห์ ปัญหาการประมาณระดับเสียงต่ำเกิดจากการทดสอบอินพุตของฉัน เมื่อฉันร้องโน้ตมันตรงกันอย่างถูกต้อง นอกจากนี้ฉันกำลังพิจารณาฮาร์มอนิกทั้งหมดตอนนี้ไม่ใช่แค่ยอดเขาสูงสุด

3
อะไรคือความแตกต่างระหว่างการแปลงเวฟเล็ต Gabor-Morlet และการแปลง Q แบบคงที่
ภาพรวมการแปลงฟูริเยร์คงที่ Q และการแปลงเวฟเล็ต Gabor-Morletที่ซับซ้อนก็ดูเหมือนกัน ทั้งคู่เป็นตัวแทนความถี่ - เวลาตามตัวกรองค่าคงที่ -Q, ไซนัสด์แบบหน้าต่าง, ฯลฯ แต่อาจมีความแตกต่างที่ฉันขาดไปหรือไม่? กล่องเครื่องมือแปลง Q อย่างต่อเนื่องสำหรับการประมวลผลเพลงพูดว่า: CQT หมายถึงการเป็นตัวแทนเวลาความถี่ที่ถังขยะความถี่มีการเว้นระยะทางเรขาคณิตและปัจจัย -Q (อัตราส่วนของความถี่กลางถึงแบนด์วิดท์) ของถังขยะทั้งหมดจะเท่ากัน การวิเคราะห์ระดับเวลาพูดว่า: นั่นคือการคำนวณ CWT ของสัญญาณที่ใช้ Morlet เวฟเป็นเช่นเดียวกับการส่งผ่านสัญญาณผ่านชุดของตัวกรอง bandpass ศูนย์กลางที่f=5/2πaf=5/2πaf = \frac{5/2\pi}{a}กับ Q คงที่ของ5/25/2π5/2π5/2\pi

3
Chroma-Subsampling: วิธีการคำนวณอัตราข้อมูลอย่างถูกต้อง
ฉันมีความยากลำบากในการทำความเข้าใจวิธีการคำนวณอัตราข้อมูลเมื่อยกระดับการสุ่มตัวอย่างด้วยสีในตัวอย่างของภาพ Y'UV: ฉันมีตัวอย่างต่อไปนี้สำหรับการคำนวณ: ความละเอียดของภาพ: 352*288 ความถี่: 25 fps สำหรับ(4: 4: 4)การคำนวณตัวอย่างจะเป็นดังนี้: (352px * 288px) * 3 color channels * 25 fps * 8 bit = 60 825 600 bit/s จนถึงตอนนี้ดีมาก แต่ตอนนี้มาถึง(4: 2: 0) : (352px*288px) * 1.5 color channels * 25 * 8 = 30 412 800 bit/s ตอนนี้พยายามที่จะถ่ายโอนตัวอย่างนี้ไปยังเช่น(4: 1: …

1
อะไรคือความละเอียดความถี่สูงสุดสำหรับการใช้งาน STFT Spectrogram () ของ Matlab?
spectrogram()ฟังก์ชั่นของ Matlab จะคำนวณ STFT ของสัญญาณ มันอธิบายNFFTข้อโต้แย้งของมันดังนี้ S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)ระบุจำนวนจุดความถี่ที่ใช้ในการคำนวณการแปลงฟูริเยร์แบบแยก หากNFFTไม่ได้ระบุNFFTจะใช้ค่าเริ่มต้น ฉันจะแก้ไขให้ถูกต้องหรือไม่ที่NFFTเป็นการแลกเปลี่ยนระหว่างความละเอียดความถี่และจำนวนการคำนวณเท่านั้น สำหรับการทำงานออฟไลน์ของฉันไม่จำเป็นต้องบันทึกรอบ มีข้อ จำกัด สูงสุดสำหรับการNFFTกำหนดเช่นจากการรั่วไหลของสเปกตรัมหรือปัญหาอื่น ๆ ที่ฉันควรรู้หรือฉันสามารถตั้งค่าอาร์กิวเมนต์ให้สูงที่สุดเท่าที่จะเป็นไปได้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.