คำถามติดแท็ก software-implementation

3
การเรียงลำดับส่วน biquad สำหรับตัวกรองคำสั่งซื้อที่สูงขึ้นทำงานอย่างไร
ฉันกำลังพยายามใช้ตัวกรอง IIR อันดับที่ 8 และบันทึกย่อของแอปพลิเคชันและหนังสือทุกเล่มที่ฉันได้อ่านบอกว่ามันเป็นการดีที่สุดที่จะใช้ตัวกรองลำดับที่สองมากกว่านั้นเป็นส่วนที่สอง ฉันใช้tf2sosMATLAB เพื่อรับค่าสัมประสิทธิ์สำหรับส่วนที่สองซึ่งทำให้ฉันมีค่า 6x4 coeffs สำหรับส่วนของคำสั่งที่สอง 4 ตามที่คาดไว้ ก่อนการใช้งานเป็น SOS ตัวกรองลำดับที่ 8 จำเป็นต้องเก็บค่าตัวอย่าง 7 ค่าก่อนหน้า (และค่าเอาต์พุตด้วย) ตอนนี้เมื่อดำเนินการตามลำดับส่วนที่สองโฟลว์ทำงานอย่างไรจากอินพุตไปยังเอาต์พุตฉันต้องเก็บค่าตัวอย่างก่อนหน้านี้เพียง 2 ค่าหรือไม่ หรือผลลัพธ์ของตัวกรองตัวแรกป้อนเช่นเดียวx_inกับตัวกรองที่สองและอื่น ๆ ?
20 filters  filter-design  infinite-impulse-response  biquad  audio  image-processing  distance-metrics  algorithms  interpolation  audio  hardware  performance  sampling  computer-vision  dsp-core  music  frequency-spectrum  matlab  power-spectral-density  filter-design  ica  source-separation  fourier-transform  fourier-transform  sampling  bandpass  audio  algorithms  edge-detection  filters  computer-vision  stereo-vision  filters  finite-impulse-response  infinite-impulse-response  image-processing  blur  impulse-response  state-space  linear-systems  dft  floating-point  software-implementation  oscillator  matched-filter  digital-communications  digital-communications  deconvolution  continuous-signals  discrete-signals  transfer-function  image-processing  computer-vision  3d 

7
ฉันจะใช้งานโอเพ่นซอร์สของอัลกอริธึมการออกแบบตัวกรอง FIR ที่เหมาะสมกับ Parks-McClellan ได้อย่างไร
ความเป็นมา:บ่อยครั้งที่ฉันทำงานการประมวลสัญญาณบางอย่างที่ต้องใช้ตัวกรองที่ไม่ซ้ำใคร ปกติจะอยู่ที่จุดนี้ผมไปที่ MATLAB และสร้างตัวกรองที่ไม่ซ้ำกันใหม่โดยใช้f ฉันr p m( )firpm()\tt firpm() ) firpm()ฟังก์ชันMATLAB ใช้อัลกอริทึม Parks-McClellan ตอนนี้ฉันมีตัวกรองและใส่ตัวกรองลงในอาร์เรย์ฮาร์ดโค้ด แต่นี่คือปัญหาที่ฉันมีตัวกรอง hardcoded ซึ่งใช้ได้กับสถานการณ์เดียวเท่านั้น ปัญหา:ตอนนี้ฉันสามารถแก้ปัญหาการประมวลผลสัญญาณของฉันได้สองทาง ... แต่สำหรับอัตราตัวอย่างเดี่ยวที่เฉพาะเจาะจงมากหรือสถานการณ์เฉพาะ เป้าหมาย:ฉันต้องการที่จะสามารถที่จะเรียกf ฉันr p m( )firpm()\tt firpm()จากรหัส C หรือบางส่วนภาษาอื่น ๆ และให้รหัสการประมวลผลสัญญาณของฉันทั่วไปมากขึ้น ฉันไม่พบการใช้โอเพ่นซอร์สของfirpm()! ฉันจะใช้งานโอเพ่นซอร์สของอัลกอริทึมการออกแบบตัวกรอง FIRของParks-McClellan ที่เหมาะสมได้อย่างไร (aka f ฉันr p m( )firpm()\tt firpm()ใน MATLAB) ป.ล.ฉันทราบว่าฉันสามารถออกแบบตัวกรองต่างกันโดยใช้หน้าต่างหรืออย่างอื่น ... อย่าลังเลที่จะพูดถึงพวกเขาในความคิดเห็น แต่ประเด็นของคำถามนี้ไม่ได้ถามว่า "เทคนิคการออกแบบตัวกรองอื่น ๆ คืออะไร" จุดคือการหาการดำเนินการเปิดแหล่งที่มาของที่ดีมีประโยชน์มากf …

3
วิธีการใช้ออสซิลเลเตอร์ดิจิตอล
ฉันมีระบบประมวลผลสัญญาณดิจิตอลแบบลอยตัวที่ทำงานที่อัตราตัวอย่างคงที่ที่ฉs= 32768ฉs=32768f_s = 32768ตัวอย่างต่อวินาทีที่ใช้งานโดยใช้โปรเซสเซอร์ x86-64 สมมติว่าระบบ DSP ถูกล็อคแบบซิงโครนัสกับสิ่งใดก็ตามวิธีที่ดีที่สุดในการใช้ออสซิลเลเตอร์ดิจิตอลในความถี่ฉฉfคืออะไร? โดยเฉพาะผมต้องการที่จะสร้างสัญญาณ: Y( t ) = บาป( 2 πฉt )Y(เสื้อ)=บาป⁡(2πฉเสื้อ)y(t) = \sin(2\pi f t) ที่ จำนวนตัวอย่างn nt = n / fsเสื้อ=n/ฉst=n/f_snnn แนวคิดหนึ่งคือการติดตามเวกเตอร์ที่เราหมุนตามมุมในแต่ละรอบนาฬิกา( x , y)(x,Y)(x,y)Δ ϕ = 2 πฉ/ fsΔφ=2πฉ/ฉs\Delta\phi = 2\pi f/f_s ในฐานะที่เป็น Matlab pseudocode การใช้งาน (การใช้งานจริงใน C): %% Initialization code f_s …

1
การลบแสงจ้าจากรูปภาพ
คำเตือน: ฉันไม่มีส่วนร่วมในการประมวลผลสัญญาณ แค่อยากรู้อยากเห็นมาก ... คำถามก็คือง่ายมาก: เป็นไปได้หรือไม่ที่จะใช้การประมวลผลซอฟต์แวร์กับภาพเพื่อลบหรือลดแสงจ้าของไฟหน้า? มันจะเป็นภาพเช่นนี้: หากเป็นไปได้จะมีห้องสมุดซอฟต์แวร์ให้บริการนี้หรือไม่? ฉันไม่สนใจภาษาใดฉันแค่ต้องการความสามารถ Slash ไม่มีใครรู้ว่ามีการวิจัยในปัจจุบันเกี่ยวกับเรื่องนี้?

2
มีแบบฟอร์มการใช้งานมาตรฐานสำหรับตัวกรอง Butterworth ที่ปรับค่าได้หรือไม่?
หนึ่งในวิธีมาตรฐานในการนำตัวกรอง Butterworth ไปใช้นั้นมีส่วนเรียงลำดับที่สองเรียงซ้อนกันซึ่งสอดคล้องกับเสาคู่ที่ซับซ้อน สำหรับตัวกรองลำดับที่สี่เช่นจะมีสองส่วนลำดับที่สอง หากเราพิจารณาว่าสถานที่ตั้งของเสาสำหรับตัวกรอง lowpass เปลี่ยนในระนาบ z เป็นส่วนทางลัดได้รับการออกแบบให้ใกล้กับ 0hz ถึงใกล้ Nyquist เส้นทาง "กวาดออก" โดยแต่ละคู่ของเสาตรงกับคู่ของส่วนโค้งภายในวงกลมหน่วย ดังแสดงในรูปต่อไปนี้ [สำหรับตัวกรองลำดับที่สี่]: เมื่อพิจารณาว่าตัวกรองเหล่านี้ยาวแค่ไหนและจากข้อเท็จจริงที่ว่า "ส่วนโค้ง" เหล่านี้ตรงกับเส้นตรงในระนาบ s มันก็มีเหตุผลว่ามีคนพัฒนาแบบฟอร์มการนำไปปฏิบัติด้วยพารามิเตอร์เดียวซึ่งสามารถกวาดเสาได้ ตามส่วนโค้งที่ "เวลาทำงาน" [ซึ่งตรงข้ามกับ "เวลาออกแบบ"] อย่างไรก็ตามฉันยังไม่เจออะไรแบบนั้น มันค่อนข้างตรงไปตรงมาที่จะเกิดขึ้นกับวิธีการทำสิ่งต่าง ๆ โดยเฉพาะอย่างยิ่งในส่วนของช่วงและมีความตั้งใจที่จะโยนการคำนวณพิเศษเล็กน้อยที่มัน สิ่งที่ฉันสงสัยคือต่อไปนี้: มีวิธีมาตรฐานในการติดตั้งตัวกรอง Butterworth ที่ปรับค่าได้ของคำสั่งที่กำหนดว่า 1) มีคุณสมบัติที่ดีที่สุด (เช่นประสิทธิภาพความทนทาน) และ 2) ครอบคลุมช่วงทั้งหมดหรือไม่? หรือนี่เป็นเพียงปัญหาง่าย ๆ ที่ไม่มีใครรบกวนให้พูดถึง หากเป็นกรณีนี้ดูเหมือนว่าจะปรากฏในโปรแกรมออกแบบตัวกรองถัดจากตัวเลือกสำหรับการออกแบบ "คงที่" ฉันพบสิ่งนี้: ตัวกรอง Butterworth เอนกประสงค์ที่มีความถี่คัตออฟผันแปรแต่ในตอนแรกGooglingดูเหมือนจะไม่มีข้อมูลมากนักเกี่ยวกับสิ่งที่อยู่ในนั้น อัปเดต …

2
แพ็คเกจการระบุระบบ
ฉันกำลังมองหาทางเลือกอื่นสำหรับเครื่องมือระบุตัวตนของ Matlab แต่ความธรรมดาสามัญของคำว่า "ระบบ" และ "ตัวตน" กำลังทำให้การค้นหาสับสน มีห้องสมุดแบบสแตนด์อโลนที่เขียนขึ้นเพื่อจุดประสงค์นี้หรือไม่? (ใน C ++, C #, Python และอื่น ๆ )

3
“ ตัวกรองสัญญาณความถี่ต่ำ” ในบริบทของซอฟต์แวร์ที่ไม่ใช่ EE
ฉันเป็นวิศวกรซอฟต์แวร์ที่มีประสบการณ์และกำลังทำงานกับเซ็นเซอร์ของสมาร์ทโฟน ฉันใช้คลาส EE พื้นฐานใน DSP และพยายามใช้ความรู้ของฉัน ฉันเชื่อว่าฉันเข้าใจการแปลงฟังก์ชั่นถ่ายโอนการแปลง z เป็นต้นฉันรู้เล็กน้อยเกี่ยวกับตัวกรอง FIR และ IIR ตอนนี้เมื่ออ่าน API ของซอฟต์แวร์และเอกสารฉันเห็นผู้คนกำลังใช้ LPF กับข้อมูลเซ็นเซอร์ในโดเมนเวลา ฉันรู้ว่าคุณทำอย่างนั้นผ่านการใช้สมการความแตกต่าง (เช่น y [i] = y [i-1] + 2 * x [i]) แต่ฉันเรียนรู้ในชั้นเรียน EE ของฉันที่ LPF มักจะนำมาใช้ผ่านการดำเนินการสังวัตนา โดยที่คุณสามารถสังเกตุสัญญาณเวลาด้วยค่าสัมประสิทธิ์ของคลื่น sinc (ตัวอย่าง) และมีความถี่ตัดเฉพาะ ดังนั้นการใช้งานภาษาพูดของ "ตัวกรองความถี่ต่ำ" จึงไม่แน่นอนสำหรับฉัน ตัวอย่างเช่น Google Android API มีเอกสารนี้: http://developer.android.com/reference/android/hardware/SensorEvent.html#values public void onSensorChanged(SensorEvent …

5
เมื่อใดที่ต้องพิจารณาจุดลอยตัวคู่ (64 บิต) สำหรับเสียง
เมื่อทำการสังเคราะห์และประมวลผลเสียงบนตัวประมวลผลที่ทันสมัยใครจะพิจารณาใช้สิ่งอื่นนอกเหนือจากจุดลอยตัวที่มีความแม่นยำ (32 บิต) เดี่ยว เห็นได้ชัดว่าเสียงที่เข้ามาและออกไปสู่โลกแห่งความจริงคือ 16/24 บิตดังนั้นฉันแค่พูดถึงความแม่นยำของสัญญาณ (ทั้งเสียงและสิ่งต่าง ๆ เช่นค่าสัมประสิทธิ์ตัวกรอง) ในซอฟต์แวร์ สมมติว่า: CPU / DSP มีจุดลอยฮาร์ดแวร์รองรับทั้งความแม่นยำเดี่ยวและคู่ ลำดับความสำคัญคือเสียงที่มีคุณภาพไม่ได้ประสิทธิภาพสูง ตัวอย่างเช่นความแม่นยำสองเท่าจะได้รับการพิจารณาหากนำเสนอคุณภาพที่ดีขึ้น (การรับรู้)

4
ช่วยสมการสำหรับซองจดหมาย ADSR แบบเลขชี้กำลัง
ด้วยรหัสแอปพลิเคชันฉันได้ติดตั้งซอง ADSR แบบเส้นตรงเพื่อสร้างแอมพลิจูดของเอาต์พุตออสซิลเลเตอร์ พารามิเตอร์สำหรับการโจมตีการสลายตัวและระยะเวลาการปล่อยเช่นเดียวกับระดับการรักษาสามารถตั้งค่าบนซองจดหมายและทุกอย่างทำงานตามที่คาดไว้ อย่างไรก็ตามฉันต้องการปรับแต่งรูปร่างของทางลาดให้คล้ายกับสิ่งที่ซินธิไซเซอร์ส่วนใหญ่ใช้สำหรับการตอบสนองที่เป็นธรรมชาติมากขึ้น: ผกผันเลขชี้กำลังสำหรับการโจมตีและเลขชี้กำลังสำหรับการสลายตัวและการปลดปล่อย ฉันมีปัญหาในการทำให้สูตรถูกต้องสำหรับการคำนวณค่าผลลัพธ์ของซองจดหมายสำหรับรูปร่างของทางลาดประเภทนี้ ในการคำนวณทางลาดเชิงเส้นฉันใช้รูปแบบสองจุดเสียบค่าเริ่มต้น / สิ้นสุด /ซึ่งได้มาจากค่าพารามิเตอร์อินพุตการโจมตี / การสลายตัว / การคงอยู่ / การปล่อย ฉันไม่สามารถหาสูตรที่ถูกต้องสำหรับทางลาดแบบเอ็กซ์โปเนนเชียล (แบบมาตรฐานและแบบผกผัน) โดยใช้ค่าจุดเริ่มต้น / สิ้นสุด /เดียวกันxxxYyyxxxYyy ฉันบันทึกเซสชั่นเครื่องคิดเลขกราฟ Desmosที่แสดงให้เห็นถึงวิธีการทางลาดเชิงเส้นที่ฉันอธิบายไว้ข้างต้น หากใครสามารถช่วยชี้ให้ฉันในทิศทางที่ถูกต้องมันจะได้รับการชื่นชมมาก

1
สอนเกี่ยวกับเวฟเล็ตรุ่นที่ 2 (พร้อมยก)
สำหรับการทดลอง denoising และ deconvolution ฉันต้องการใช้การแปลงเวฟเล็ตรุ่นที่ 2 (โดยใช้ขั้นตอนการยก ) กับรูปภาพ ฉันรู้ว่ามีหลายการใช้งานที่มีอยู่ แต่ส่วนใหญ่ของพวกเขาใช้ MATLAB ในขณะที่ฉันต้องการที่จะทำงานในC ++กับOpenCV เนื่องจากไม่มีการแปลงเวฟเล็ตในตัวใน OpenCV 2.x ฉันจึงวางแผนที่จะใช้งานด้วยตัวเอง (บวกจะทำให้การออกกำลังกายที่ดีสำหรับฉัน) หลังจากการวิจัยบางอย่างฉันสามารถค้นหาบทความต้นฉบับเกี่ยวกับการแปลงเจนเนอเรชั่นที่ 2 แต่ฉันยังสับสนอยู่เล็กน้อยเกี่ยวกับวิธีการทำงานของอัลกอริทึม สำหรับการอ้างอิงหลักกระดาษ [1] โดย Sweldens: The Lifting scheme: การสร้างเวฟเล็ตรุ่นที่สองฉันยังคงสับสนกับคำจำกัดความของชุดดัชนีK(j)K(j)\mathcal{K}(j)ขนาดของพวกเขาคืออะไร? พวกเขาสร้างอย่างไร ... ดังนั้นคำถามของฉัน: ไม่มีใครรู้เกี่ยวกับทรัพยากรบางอย่างเกี่ยวกับการแปลงเวฟเล็ตรุ่นที่ 2 (เอกสาร, บทเรียน, สไลด์ ... ) ที่อยู่ในรูปแบบการสอนที่คล้ายกันหรือให้มุมมองอัลกอริทึมมากกว่า (มากกว่าคณิตศาสตร์) ซึ่งจะช่วยฉันออกแบบการใช้งานของฉันเอง? ขอบคุณล่วงหน้า. อ้างอิง การอ้างอิงหลักของฉันคือ: [1] Sweldens, W. (1998) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.