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

Python เป็นภาษาโปรแกรมทั่วไปที่มีการตีความระดับสูง Python มีไลบรารี / แพ็กเกจเชิงตัวเลขและทางวิทยาศาสตร์ที่เป็นที่นิยมโดยเฉพาะอย่างยิ่งตัวเลขและ scipy แพ็คเกจ scipy.signal เป็นชุดซอฟต์แวร์ประมวลผลสัญญาณที่มีประสิทธิภาพ แท็กนี้ครอบคลุมการใช้แพ็คเกจ numpy, scipy และ Python อื่น ๆ ที่มักใช้สำหรับการคำนวณ SP

7
การค้นหาช่องสี่เหลี่ยมในรูปภาพ
ฉันต้องการค้นหาสี่เหลี่ยมในรูปภาพโดยใช้ OpenCV (ไม่มีปัญหาใน MATLAB หรืออื่น ๆ โดยทั่วไปสิ่งที่ฉันคาดหวังคือความคิดบางอย่าง) พิจารณาภาพทดสอบด้านล่าง: ฉันต้องการค้นหาสี่เหลี่ยมสีเหล่านั้นในภาพด้านบนอย่างถูกต้อง (ไม่ใช่แถบยาวสีขาว) สิ่งที่ฉันได้ทำ: ฉันใช้วิธีการทั่วไป (ซึ่งมาพร้อมกับตัวอย่าง OpenCV) คือค้นหารูปทรงในระนาบสีทั้งหมดประมาณค่าและตรวจสอบจำนวนองค์ประกอบ = 4 มันทำงานเพื่อขยายบางส่วนที่ตรวจพบไม่กี่สี่เหลี่ยมโดยเฉพาะอย่างยิ่งที่มืด ขั้นตอนต่อไปที่ผมทำก็คือการทำนาย คือข้อตกลงนี้ได้รับการแก้ไข ดังนั้นหากได้รับบางอย่างฉันสามารถทำนายสิ่งที่เหลืออยู่ได้ มันยังทำงานเพื่อขยายเพิ่มเติม แต่ความแม่นยำนั้นแย่มาก แต่ฉันรู้สึกว่าการทำนายไม่ใช่วิธีที่ดีที่นี่และมันก็ไม่ได้ให้คำตอบที่ถูกต้องเสมอไปตามขั้นตอนแรก สิ่งที่ฉันต้องการ : 1) มีวิธีอื่นใดที่ดีกว่าในการตรวจสอบกำลังสองเหล่านี้อย่างแม่นยำมากขึ้น หรือหลายวิธี? จุดหนึ่งที่สำคัญก็คือว่าเวลาไม่ได้เป็นปัญหาที่นี่ อัลกอริทึมอาจช้ามันไม่สำคัญ แต่ความแม่นยำเป็นเกณฑ์สำคัญ บางครั้งภาพอาจเบลอมากขึ้น และหนึ่งในปัญหาสำคัญที่ฉันเผชิญคือสี่เหลี่ยมบางอันมีสีเกือบเหมือนกันกับพื้นหลัง (ตรวจสอบคอลัมน์ 3 คอลัมน์แรกและสี่เหลี่ยมที่สอง) กำลังมองหาแนวคิดขอบคุณล่วงหน้า อัปเดต: ด้านล่างเป็นผลลัพธ์ที่แม่นยำที่สุดที่ฉันได้รับ: แน่นอนภาพผลลัพธ์จะถูกปรับขนาดเล็กน้อย อัปเดต 2: ฉันได้รับคำตอบที่ดีกว่านี้ในคำตอบของฉันด้านล่าง: https://dsp.stackexchange.com/a/7526/818

3
การเลือกตัวกรองที่ถูกต้องสำหรับข้อมูลมาตรวัดความเร่ง
ฉันค่อนข้างใหม่สำหรับ DSP และได้ทำการวิจัยบางอย่างเกี่ยวกับตัวกรองที่เป็นไปได้สำหรับการทำให้ข้อมูล accelerometer ใน python ราบรื่นขึ้น ตัวอย่างประเภทของข้อมูลที่ป่วยจะเห็นได้ในภาพต่อไปนี้: โดยพื้นฐานแล้วฉันกำลังมองหาคำแนะนำในการทำให้ข้อมูลนี้ราบรื่นในที่สุดเพื่อแปลงเป็นความเร็วและการกระจัด ฉันเข้าใจว่า accelerometers จากโทรศัพท์มือถือมีเสียงดังมาก ฉันไม่คิดว่าฉันสามารถใช้ตัวกรองคาลมานได้ในขณะนี้เพราะฉันไม่สามารถถืออุปกรณ์เพื่ออ้างอิงเสียงที่เกิดจากข้อมูลได้ (ฉันอ่านว่าจำเป็นที่จะต้องวางอุปกรณ์ให้แบนและหาเสียงจากการอ่านเหล่านั้นหรือไม่) FFT ให้ผลลัพธ์ที่น่าสนใจ หนึ่งในความพยายามของฉันคือ FFT สัญญาณการเร่งความเร็วจากนั้นแสดงความถี่ต่ำให้มีค่า FFT สัมบูรณ์เป็น 0 จากนั้นฉันใช้เลขคณิตโอเมก้าและผกผัน FFT เพื่อให้ได้พล็อตเรื่องความเร็ว ผลการวิจัยพบว่า นี่เป็นวิธีที่ดีในการไปต่าง ๆ หรือไม่? ฉันกำลังพยายามลบลักษณะโดยรวมของสัญญาณรบกวน แต่ต้องมีการระบุจุดสูงสุดอย่างชัดเจนเช่นประมาณ 80 วินาที ฉันยังเหนื่อยกับการใช้ low pass filter กับข้อมูล accelerometer ดั้งเดิมซึ่งทำได้ดีมากในการทำให้เรียบ แต่ฉันไม่แน่ใจว่าจะไปจากที่นี่ได้อย่างไร คำแนะนำเกี่ยวกับสถานที่ที่จะไปจากที่นี่จะเป็นประโยชน์จริง ๆ ! แก้ไข: รหัสเล็กน้อย: for i in range(len(fz)): …
28 fft  python 

1
ตัวกรองความถี่ต่ำและ FFT สำหรับผู้เริ่มต้นด้วย Python
ฉันใหม่กับการประมวลผลสัญญาณและโดยเฉพาะอย่างยิ่งกับ FFT ดังนั้นฉันไม่แน่ใจว่าฉันกำลังทำสิ่งที่ถูกต้องที่นี่และฉันสับสนเล็กน้อยกับผลลัพธ์ ฉันมีฟังก์ชั่นจริงที่ไม่ต่อเนื่อง (ข้อมูลการวัด) และต้องการตั้งค่าตัวกรองความถี่ต่ำผ่านในนั้น เครื่องมือที่เลือกคือ Python พร้อมแพ็คเกจ numpy ฉันทำตามขั้นตอนนี้: คำนวณค่า fft ของฟังก์ชั่นของฉัน ตัดความถี่สูง ดำเนินการ fft ผกผัน นี่คือรหัสที่ฉันใช้: import numpy as np sampling_length = 15.0*60.0 # measured every 15 minutes Fs = 1.0/sampling_length ls = range(len(data)) # data contains the function freq = np.fft.fftfreq(len(data), d = sampling_length) fft = …

2
การใช้ตัวกรองใน scipy.signal: ใช้ lfilter หรือ filtfilt หรือไม่
ผมเห็นในSO ด้ายข้อเสนอแนะเพื่อการใช้งานfiltfiltที่มีประสิทธิภาพไปข้างหลัง / lfilterข้างกรองแทน อะไรคือแรงจูงใจในการใช้เทคนิคหนึ่งเทียบกับเทคนิคอื่น?

2
การปรับปรุงความละเอียด spectrogram ใน Python?
ฉันใช้specgram()ฟังก์ชั่นในmatplotlibการสร้างไฟล์คลื่นเสียงพูดใน Python แต่ผลลัพธ์นั้นมีคุณภาพด้อยกว่าอย่างมากสำหรับซอฟท์แวร์ถอดรหัสปกติของฉัน Praat สามารถสร้างได้ ตัวอย่างเช่นสายต่อไปนี้: specgram( fromstring(spf.readframes(-1), 'Int16'), Fs=framerate, cmap=cm.gray_r, ) สร้างสิ่งนี้: ขณะที่ Praat ทำงานกับตัวอย่างเสียงเดียวกันด้วยการตั้งค่าต่อไปนี้: ระยะการมอง: 0-8000Hz ความยาวหน้าต่าง: 0.005 วินาที ช่วงแบบไดนามิก: 70dB ขั้นตอนเวลา: 1,000 ขั้นตอนความถี่: 250 รูปร่างหน้าต่าง: Gaussian สร้างสิ่งนี้: ผมทำอะไรผิดหรือเปล่า? ฉันได้ลองเล่นซอกับspecgram()พารามิเตอร์ทั้งหมดแต่ดูเหมือนว่าไม่มีอะไรที่จะปรับปรุงความละเอียด ฉันแทบไม่มีประสบการณ์กับ FFT

3
เกิดอะไรขึ้นกับรหัสนี้สำหรับการสร้างภาพโทโมกราฟีใหม่โดยวิธีฟูริเยร์
ฉันได้เล่นกับอัลกอริทึมการสร้างใหม่ tomographic เมื่อเร็ว ๆ นี้ ฉันมีการใช้งานที่ดีของ FBP, ART, รูปแบบการวนซ้ำแบบ SIRT / SART และแม้กระทั่งการใช้พีชคณิตเชิงเส้นแบบตรง (ช้า!) คำถามนี้ไม่เกี่ยวกับการใด ๆ ของเทคนิคเหล่านั้น ; คำตอบของแบบฟอร์ม "ทำไมทุกคนจะทำอย่างนั้นนี่คือรหัส FBP บางส่วนแทน" ไม่ใช่สิ่งที่ฉันกำลังมองหา สิ่งต่อไปที่ฉันต้องการจะทำกับโปรแกรมนี้คือ " ทำให้ครบชุด " และใช้ " วิธีการสร้างใหม่ฟูเรียร์ " ความเข้าใจของฉันเกี่ยวกับเรื่องนี้เป็นพื้นฐานที่คุณใช้ 1D FFT กับ "การสัมผัส" แบบไซน์จัดเรียงสิ่งเหล่านั้นในรูปแบบ "ซี่ล้อ" ในรัศมี 2D ในพื้นที่ฟูริเยร์ 2D (ซึ่งนี่เป็นสิ่งที่มีประโยชน์ที่ต้องทำดังนี้โดยตรงจาก สอดแทรกจากจุดเหล่านั้นไปยังตารางปกติในพื้นที่ 2D นั้นและจากนั้นควรจะสามารถแปลงฟูริเยร์เพื่อแปลงเป้าหมายสแกนต้นฉบับได้ ฟังดูง่าย แต่ฉันไม่ได้โชคดีเลยที่จะมีไทคอนซึ่งมีลักษณะเหมือนเป้าหมายดั้งเดิม รหัส Python …

1
การตอบสนองของเฟสและขนาดของสัญญาณรบกวนสีขาวคืออะไร?
ฉันต้องการสร้างเสียงรบกวนสีขาวในโดเมนความถี่แล้วแปลงเป็นโดเมนเวลาโดยใช้ python เพื่อทำความเข้าใจกับปัญหาฉันเพียงแค่สร้างเสียงรบกวนสีขาวในโดเมนเวลาและเปลี่ยนเป็นโดเมนความถี่: import scipy.signal as sg import numpy as np import matplotlib.pyplot as plt e = np.random.normal(0,1,1e3) E = sg.fft(e) plt.figure("Bode plot") plt.subplot(211) plt.title("Magitude") plt.plot(abs(E)) plt.subplot(212) plt.title("Phase") plt.plot(np.angle(E)) plt.show() ฉันไม่ได้ดูอย่างที่คาด: คำถาม: เสียงสีขาวไม่ควรที่จะตอบสนองขนาดแบนหรือไม่? (จำนวนเท่ากันสำหรับทุกความถี่) อะไรคือความสัมพันธ์ระหว่างค่าเบี่ยงเบนมาตรฐาน (1 ในตัวอย่างของฉัน) และขนาดและเฟส ขอบคุณล่วงหน้า!
16 fft  noise  python 

5
วิธีเขียนตัวกรอง lowpass สำหรับสัญญาณตัวอย่างใน Python
ฉันมีสัญญาณที่สุ่มตัวอย่างแต่ละ 1 ns (1e-9 วินาที) และมีสมมุติ 1e4 คะแนน ฉันต้องการกรองความถี่สูงจากสัญญาณนี้ สมมติว่าฉันต้องกรองความถี่ที่สูงกว่า 10 MHz ฉันต้องการที่สำหรับความถี่ต่ำกว่าสัญญาณความถี่ cutoff จะถูกส่งผ่านไม่เปลี่ยนแปลง มันหมายถึงการเพิ่มขึ้นของตัวกรองจะเป็น 1 สำหรับความถี่ที่ต่ำกว่าความถี่การตัด ฉันต้องการระบุลำดับตัวกรอง ฉันหมายถึงตัวกรองคำสั่งแรกมีความชัน 20 เดซิเบล / ทศวรรษ (กำลังม้วนออก) หลังจากความถี่ตัดตัวกรองลำดับที่สองมีความลาดชัน 40 เดซิเบล / เด ธ หลังจากความถี่ตัดออกและอื่น ๆ รหัสประสิทธิภาพสูงเป็นสิ่งสำคัญ

4
การนับจำนวนกลุ่ม 1s ในแผนที่บูลีนของ numpy.array
ตอนนี้ฉันกำลังจัดการกับการประมวลผลภาพใน Python ผ่าน PIL (Python Image Library) เป้าหมายหลักของฉันคือการนับจำนวนเซลล์สีในภาพอิมมูโนวิทยา ฉันรู้ว่ามีโปรแกรมห้องสมุดฟังก์ชั่นและบทแนะนำที่เกี่ยวข้องและฉันตรวจสอบเกือบทั้งหมด เป้าหมายหลักของฉันคือการเขียนโค้ดด้วยตนเองตั้งแต่เริ่มต้นให้มากที่สุด ดังนั้นฉันพยายามหลีกเลี่ยงการใช้ไลบรารีและฟังก์ชันภายนอกมากมาย ฉันเขียนโปรแกรมส่วนใหญ่แล้ว ดังนั้นนี่คือสิ่งที่เกิดขึ้นทีละขั้นตอน: โปรแกรมใช้เวลาในไฟล์ภาพ: และประมวลผลสำหรับเซลล์สีแดง (โดยทั่วไปแล้วจะปิดค่า RGB ต่ำกว่าเกณฑ์ที่กำหนดสำหรับสีแดง): และสร้างแผนที่บูลีนของมัน (จะวางส่วนหนึ่งของมันเพราะมันใหญ่) ซึ่งโดยทั่วไปแล้วจะวาง 1 ทุกที่ที่มันพบกับพิกเซลสีแดงในภาพที่สองที่ประมวลผลข้างต้น 22222222222222222222222222222222222222222 20000000111111110000000000000000000000002 20000000111111110000000000000000000000002 20000000111111110000000000000000000000002 20000000011111100000000000000000001100002 20000000001111100000000000000000011111002 20000000000110000000000000000000011111002 20000000000000000000000000000000111111002 20000000000000000000000000000000111111102 20000000000000000000000000000001111111102 20000000000000000000000000000001111111102 20000000000000000000000000000000111111002 20000000000000000000000000000000010000002 20000000000000000000000000000000000000002 22222222222222222222222222222222222222222 ฉันตั้งใจสร้างเฟรมนั้นคล้าย ๆ กับเส้นขอบด้วย 2s เพื่อช่วยฉันในการนับจำนวนกลุ่ม 1s ในแผนที่บูลีนนั้น คำถามของฉันสำหรับพวกคุณคือทำไมฉันจะนับจำนวนเซลล์ (กลุ่ม 1s) ได้อย่างมีประสิทธิภาพในแผนที่บูลีนแบบนั้น? ฉันพบhttp://en.wikipedia.org/wiki/Connected-component_labelingซึ่งดูมีความเกี่ยวข้องและคล้ายคลึงกันมาก …
16 python 

4
Scipy - การประมวลผลเสียง
ฉันกำลังมองหาเครื่องมือที่ดีสำหรับการประมวลผลสัญญาณเสียง เช่นการวิเคราะห์คำพูดและดนตรีการระบุภาษาอัตโนมัติ ฯลฯ ห้องสมุด Scipy มีฟังก์ชั่นสำหรับการประมวลผลเสียงหรือไม่? มันมีเครื่องมือที่ดีสำหรับการประมวลผลสัญญาณเสียงหรือไม่? คุณช่วยแนะนำเครื่องมือสำหรับสิ่งนี้ได้ไหม?

3
การเข้ารหัสการประมวลผลภาพ
ฉันสงสัยว่าภาษาใดดีที่สุดสำหรับการประมวลผลภาพ ฉันรู้ว่า MATLAB มีห้องสมุดและชุมชนผู้ใช้ที่ดี ฉันไม่ได้ตรวจสอบมันมีสำหรับหลามเช่นกัน ภาษาที่มีประสิทธิภาพที่สุดสำหรับสิ่งนี้คืออะไร?

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 

3
ไม่สามารถแยกสัญญาณเสียงโดย FastICA จากการบันทึกในโลกแห่งความจริง
ฉันได้เขียนโปรแกรมเพื่อทำการ FastICA บนไฟล์สเตอริโอ WAV โดยใช้รหัสในตัวอย่าง Python MDP FastICA ด้วยตัวอย่างเสียงฉันได้ผลลัพธ์ที่ดีมาก จากนั้นฉันพยายามบันทึกโลกแห่งความจริงโดยใช้ไมโครโฟนโมโนคอมพิวเตอร์สองเครื่องเชื่อมต่อกับไมโครโฟนสเตอริโอในพีซีของฉันโดยเชื่อมต่อ mic 1 ถึง L channel และ mic 2 ถึง R channel ฉันทดสอบด้วยการเล่นดนตรีที่พื้นหลังขณะที่ฉันกำลังพูดคุยในห้องที่เงียบสงบ อย่างไรก็ตามการรัน FastICA ไม่ได้เป็นการแยกสัญญาณเลย เป็นไปได้หรือไม่ที่คุณภาพของไมโครโฟนต่ำเกินไป? ฉันต้องทำสิ่งใดกับไฟล์ WAV ที่บันทึกไว้ (16 บิต, PCM ที่ลงนาม, 44100Hz) ก่อนที่จะเรียกใช้ FastICA หรือไม่ คุณสามารถดาวน์โหลดบันทึกที่นี่
12 ica  python 

1
การจดจำข้อมูลที่ทำคลัสเตอร์เป็นรูปร่าง
ฉันกำลังทำงานในโครงการใน Python เพื่อตรวจจับและจำแนกเพลงนกบางเพลงและฉันพบว่าตัวเองอยู่ในตำแหน่งที่ฉันต้องการแปลงไฟล์คลื่นเป็นความถี่เทียบกับข้อมูลเวลา นี่ไม่ได้มีปัญหามากนัก แต่เพื่อให้สามารถจำแนกพยางค์ที่แตกต่างกันออกเป็นกลุ่มฉันต้องเขียนสิ่งที่จะตรวจจับเมื่อกลุ่มข้อมูลเป็นรูปร่างที่แน่นอน เพื่อให้คุณเห็นภาพว่าข้อมูลเป็นอย่างไรต่อไปนี้เป็นภาพที่แสดงข้อมูลเมื่อมีการพล็อต: ฉันต้องการวิธีที่จะทำให้แต่ละพยางค์ (แต่ละรูปร่างมีการแยกทั้งสองข้าง) และบันทึกไว้ในตัวแปรหรือไฟล์ของตัวเองเพื่อให้ฉันสามารถเรียกใช้ความสัมพันธ์เพียร์สันระหว่างพวกเขาโดยใช้ SciPy นอกจากนี้ฉันชอบ Python แต่ฉันเปิดให้มีการเข้ารหัสในภาษาอื่นถ้าคุณมีวิธีอื่นที่จะทำ ขอบคุณ!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.