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

การสอดแทรกเป็นวิธีการสร้างจุดข้อมูลใหม่ภายในช่วงของชุดจุดข้อมูลที่ไม่ต่อเนื่องกัน

6
การคำนวณ PDF ของรูปคลื่นจากตัวอย่าง
เมื่อไม่นานมานี้ฉันได้ลองวิธีต่างๆในการวาดรูปคลื่นดิจิตอลและหนึ่งในสิ่งที่ฉันได้ลองก็คือแทนที่จะเป็นภาพเงามาตรฐานของซองขนาดแอมพลิจูดเพื่อแสดงมันเหมือนออสซิลโลสโคป นี่คือลักษณะของไซน์และคลื่นสแควร์: วิธีที่ไร้เดียงสาในการทำเช่นนี้คือ: แบ่งไฟล์เสียงเป็นก้อนเดียวต่อพิกเซลแนวนอนในภาพออก คำนวณฮิสโตแกรมของแอมพลิจูดของตัวอย่างสำหรับแต่ละอัน พล็อตฮิสโตแกรมโดยความสว่างเป็นคอลัมน์ของพิกเซล มันสร้างบางสิ่งเช่นนี้ วิธีนี้ใช้งานได้ดีหากมีตัวอย่างจำนวนมากต่อชิ้นและความถี่ของสัญญาณไม่เกี่ยวข้องกับความถี่ในการสุ่มตัวอย่าง แต่ไม่เช่นนั้น หากความถี่สัญญาณเป็นตัวอย่างที่แน่นอนของความถี่การสุ่มตัวอย่างตัวอย่างจะเกิดขึ้นที่แอมพลิจูดเดียวกันในแต่ละรอบและฮิสโทแกรมจะมีเพียงไม่กี่จุดแม้ว่าสัญญาณที่สร้างขึ้นจริงจะอยู่ระหว่างจุดเหล่านี้ ชีพจรไซน์นี้ควรราบเรียบเท่าที่อยู่ด้านบนซ้าย แต่ไม่ใช่เพราะมันคือ 1 kHz และตัวอย่างจะเกิดขึ้นรอบ ๆ จุดเดียวกันเสมอ: ฉันพยายามอัปแซมปลิงเพื่อเพิ่มจำนวนคะแนน แต่มันไม่สามารถแก้ปัญหาได้เพียงช่วยให้สิ่งต่าง ๆ ราบรื่นในบางกรณี สิ่งที่ฉันชอบคือวิธีการคำนวณPDF ที่แท้จริง(ความน่าจะเป็นเทียบกับแอมพลิจูด) ของสัญญาณที่สร้างใหม่อย่างต่อเนื่องจากตัวอย่างดิจิทัล (แอมพลิจูดเทียบกับเวลา) ฉันไม่รู้ว่าจะใช้อัลกอริธึมอะไรสำหรับเรื่องนี้ โดยทั่วไปรูปแบบไฟล์ PDF ของฟังก์ชั่นเป็นอนุพันธ์ของฟังก์ชันผกผัน PDF ของ sin (x): ddxarcsinx=11−x2√ddxarcsin⁡x=11−x2\frac{d}{dx} \arcsin x = \frac{1}{\sqrt{1-x^2}} แต่ฉันไม่ทราบวิธีคำนวณสิ่งนี้สำหรับคลื่นที่อินเวอร์สเป็นฟังก์ชันหลายค่าหรือวิธีที่รวดเร็ว แยกมันออกเป็นกิ่งไม้และคำนวณค่าผกผันของแต่ละตัวนำอนุพันธ์มารวมกัน แต่มันค่อนข้างซับซ้อนและอาจเป็นวิธีที่ง่ายกว่า "PDF ของข้อมูลที่ถูกสอดแทรก" นี้ยังใช้กับความพยายามที่ฉันทำเพื่อประมาณความหนาแน่นของเคอร์เนลของแทร็ก GPS มันควรจะเป็นรูปวงแหวน แต่เนื่องจากมันเป็นเพียงการดูตัวอย่างและไม่พิจารณาจุดแทรกระหว่างตัวอย่าง KDE จึงดูคล้ายกับโคกมากกว่าวงแหวน หากตัวอย่างเป็นสิ่งที่เรารู้แล้วนี่คือสิ่งที่ดีที่สุดที่เราสามารถทำได้ …

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 

2
ช่องว่างภายในศูนย์โดเมน - การดูแลเป็นพิเศษของ X [N / 2]
สมมติว่าเราต้องการแก้ไขสัญญาณเป็นระยะด้วยจำนวนตัวอย่างที่สม่ำเสมอ (เช่น N = 8) โดยการเติมเต็มศูนย์ในโดเมนความถี่ ให้ DFT X=[A,B,C,D,E,F,G,H] ตอนนี้ขอแผ่นมันถึง 16 Yตัวอย่างที่จะให้ ทุกตัวอย่างในตำราและกวดวิชาออนไลน์ที่ฉันได้เห็นแทรกศูนย์ที่ให้ (จากนั้นเป็นสัญญาณที่ถูกแก้ไข)[Y4...Y11] Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]y = idft(Y) ทำไมไม่ใช้แทน Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]? เท่าที่ฉันสามารถบอกได้ (ความรู้ทางคณิตศาสตร์ของฉันมี จำกัด ): มันลดพลังงานทั้งหมด มันทำให้มั่นใจได้ว่าหากxเป็นมูลค่าที่แท้จริงดังนั้นจึงเป็นy yยังคงตัดกันxทุกจุดตัวอย่างตามที่ต้องการ (ฉันคิดว่านี่เป็นความจริงสำหรับทุกpที่Y=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H]) เหตุใดจึงไม่ทำเช่นนี้? แก้ไข : xไม่จำเป็นต้องเป็นมูลค่าจริงหรือ จำกัด วง

2
ฉันจะออกแบบตัวกรองการแก้ไขของ Nyquist ด้วยอัลกอริทึม Parks-McClellan ได้อย่างไร
เราสามารถออกแบบตัวกรองการแก้ไขที่ปฏิบัติตามข้อ จำกัด ความถี่โดเมนบางอย่างได้อย่างง่ายดายโดยใช้อัลกอริทึมParks-McClellan อย่างไรก็ตามยังไม่ชัดเจนว่าจะบังคับใช้ข้อ จำกัด ของโดเมนเวลาได้อย่างไร โดยเฉพาะอย่างยิ่งฉันสนใจที่จะสร้างตัวกรอง Nyquist ดังนั้นถ้าฉัน oversampling โดยปัจจัยของNผมต้องการตัวกรองที่จะมีศูนย์นํ้าที่kNสำหรับที่ไม่ใช่ศูนย์จำนวนเต็มk(เพื่อให้แน่ใจว่ากลุ่มตัวอย่างที่เข้ากับ interpolator ของฉันจะปรากฏในลำดับการส่งออก) ผมเคยเห็นแฮร์ริส1N=2พูดคุยเกี่ยวกับเทคนิคการออกแบบฟิลเตอร์ครึ่งวงคือกรณีพิเศษที่ มีวิธีแก้ปัญหาทั่วไปสำหรับสิ่งนี้หรือไม่? (ฉันรู้ว่าเราสามารถออกแบบตัวกรองได้อย่างง่ายดายด้วยวิธีหน้าต่าง แต่นั่นไม่ได้ให้ตัวควบคุมเดียวกันกับเรา) [1] การประมวลผลสัญญาณหลายระดับสำหรับระบบสื่อสาร , หน้า 208-209

2
ความแตกต่างระหว่างการกรองและการถดถอยพหุนามเป็นไปอย่างราบรื่นหรือไม่
อะไรคือความแตกต่างระหว่างการกรอง low-pass แบบคลาสสิก (กับ IIR หรือ FIR) และ "การปรับให้เรียบ" โดยการถดถอยพหุนามระดับ Nth ในระดับท้องถิ่นและ / หรือการแก้ไข (ในกรณีของการสุ่มตัวอย่าง) โดยเฉพาะในกรณีที่ N มากกว่า 1 แต่น้อยกว่าจำนวนจุดที่ใช้ในการถดถอย

2
มูลค่าจริงเมื่อเสียงเรียกเข้าเป็นศูนย์เมื่อระยะห่างในช่องว่าง FFT คี่
ดังนั้นฉันจึงพยายามเขียน interpolator โดเมนความถี่ที่ zero-pads ตอบสนองความถี่ของสัญญาณและการแปลงผกผัน มีสองกรณีที่ฉันต้องจัดการกับ: การตอบสนองแบบยาว - ต้องแยกถังขยะเพราะมันไม่ชัดเจน ดังนั้นฉันจึงคัดลอกส่วนลบของสเปกตรัมและเพิ่มศูนย์ในระหว่างFs/2Fs/2F_s/2n*(interp-1)-1 การตอบกลับที่มีความยาวแปลก ๆ - ไม่มีดังนั้นเพียงแยกความถี่บวก / ลบและแทรกศูนย์ระหว่างพวกเขาFs/2Fs/2F_s/2n*(interp-1) รหัสที่ทำให้เกิดช่องว่างภายในสามารถดูได้ที่นี่ // Copy negative frequency components to end of buffer and zero out middle // inp - input buffer of complex floats // n - transform size // interp - interpolation amount void zero_pad_freq(cfloat_t …
13 fft  interpolation  c 

2
ภาพพิกเซลย่อยขยับโดยใช้ DFT อย่างไร
ฉันพยายามประเมินคุณภาพของวิธีการแก้ไขภาพหลายวิธีสำหรับแอปพลิเคชันที่เกี่ยวข้องกับการสร้างภาพที่เลื่อนพิกเซลย่อย ฉันคิดว่าฉันสามารถเปรียบเทียบผลลัพธ์ของการเลื่อนระดับพิกเซลย่อยโดยใช้ตัวแปรการประมาณค่าเหล่านี้ทั้งหมดกับภาพที่เลื่อนได้อย่างสมบูรณ์ แต่อาจเป็นไปไม่ได้ที่จะได้รับมัน (สิ่งใดที่จำเป็นสำหรับการแก้ไข) ฉันกำลังคิดเกี่ยวกับการใช้ DFT + ในโดเมนความถี่และฉันไม่แน่ใจว่ามันใช้งานได้จริงอย่างไรเมื่อเปรียบเทียบกับการสอดแทรกภาพอย่างชัดเจน (โดยใช้ bilinear, bicubic ฯลฯ ... ) ฉันแน่ใจว่ามันไม่สามารถสร้างภาพที่เลื่อนได้อย่างสมบูรณ์แต่ฉันไม่สามารถวางนิ้วลงบนมันได้ พิกเซลย่อยขยับด้วย DFT เทียบเท่ากับการใช้การประมาณค่าและถ้าใช่ใช้อันไหน อคติของค่าพิกเซลในภาพที่ได้รับโดยใช้วิธีนี้คืออะไร? ขอบคุณ! แก้ไข: หลังจากคิดเรื่องไปแล้วฉันคิดว่าเนื่องจาก FFT เป็นการประมาณ (ยิ่ง DFT) ของฟังก์ชันดั้งเดิมในแง่ของฮาร์โมนิก (ฟังก์ชันไซน์) ว่ามันจะเท่ากับการประมาณตรีโกณมิติบางประเภท ฉันจำสูตร "การแก้ไขอนุกรมฟูริเยร์" สำหรับข้อมูลที่ไม่ต่อเนื่องซึ่งเป็นการแก้ไขตรีโกณมิติ แต่ไม่แน่ใจว่ามันเชื่อมต่ออยู่หรือไม่

1
ฉันจะจำแนกสัญญาณที่วัดได้ที่ตำแหน่งต่าง ๆ โดยอัตโนมัติได้อย่างไร
ฉันมีไมโครโฟนที่วัดเสียงเมื่อเวลาผ่านไปในหลาย ๆ ตำแหน่งในอวกาศ เสียงที่ถูกบันทึกทั้งหมดมาจากตำแหน่งเดียวกันในอวกาศ แต่เนื่องจากเส้นทางที่แตกต่างจากจุดต้นทางไปยังไมโครโฟนแต่ละตัว สัญญาณจะถูกเปลี่ยน (เวลา) และผิดเพี้ยน ความรู้เบื้องต้นได้ถูกนำมาใช้เพื่อชดเชยเวลาที่ดีที่สุดเท่าที่จะทำได้ แต่ก็ยังมีการเปลี่ยนแปลงเวลาอยู่ในข้อมูล ยิ่งตำแหน่งการวัดใกล้เคียงกับสัญญาณมากเท่าไหร่ ฉันสนใจที่จะจำแนกยอดเขาโดยอัตโนมัติ ด้วยสิ่งนี้ฉันหมายความว่าฉันกำลังมองหาอัลกอริทึมที่ "มอง" ที่สัญญาณไมโครโฟนสองตัวในพล็อตด้านล่างและ "จดจำ" จากตำแหน่งและรูปคลื่นที่มีสองเสียงหลักและรายงานตำแหน่งเวลาของพวกเขา: sound 1: sample 17 upper plot, sample 19 lower plot, sound 2: sample 40 upper plot, sample 38 lower plot ในการทำเช่นนี้ฉันวางแผนที่จะทำการขยาย Chebyshev รอบจุดสูงสุดแต่ละจุดและใช้เวกเตอร์ของสัมประสิทธิ์ Chebyshev เป็นอินพุตไปยังอัลกอริธึมคลัสเตอร์ (k-mean?) ดังตัวอย่างต่อไปนี้เป็นส่วนหนึ่งของสัญญาณเวลาที่วัดที่ตำแหน่งใกล้เคียงสอง (สีน้ำเงิน) ประมาณ 5 ชุดโดย Chebyshev มากกว่า …

1
ฉันสามารถใช้วิธีการแก้ไขใดเพื่อให้ได้เส้นโค้งที่แน่นที่สุด
ฉันกำลังทำงานกับภาพ MRI ของสมองที่มีบางพื้นที่ทำเครื่องหมายด้วยมือเหมือนและ ฉันพยายามที่จะเกิดขึ้นกับฟังก์ชั่น interpolating ที่จะช่วยให้ผมอธิบายเส้นโค้งดังกล่าวเพื่อที่จะสามารถใช้เครื่องเรียนรู้เทคนิคการสร้างเครื่องหมายดังกล่าวในภาพป้ายเช่นโดยอัตโนมัติและ ฉันได้พิจารณาการใช้การประมาณลูกบาศก์ spline เพื่อประมาณเส้นโค้ง แต่เท่าที่ฉันรู้ฉันจะต้องแยกเส้นโค้งออกเป็นหลายส่วนเพื่อแก้ไข ฉันอยู่ในเส้นทางที่ถูกต้องหรือมีวิธีอื่นที่ดีกว่านี้ไหม?

2
การหาจุดสูงสุดในท้องถิ่นระหว่างตัวอย่าง
ฉันมี nnn ตัวอย่างที่ไม่ต่อเนื่องของสัญญาณคลื่นไหวสะเทือน Y[ n ]y[n]y[n]: ฉันต้องการค้นหา maxima ท้องถิ่นในสัญญาณ การทดสอบที่ไร้เดียงสาสำหรับถ้า Y[ n ]y[n]y[n] สูงสุดคือ: Y[ n ] : m a x i m a ถ้า y[ n ] > y[ n - 1 ] และ y[ n ] > y[ n + 1 ]y[n]:maxima if y[n]>y[n−1] and y[n]>y[n+1]y[n]: maxima \textbf{ …

1
การประมาณลูกบาศก์อิสระจะดีกว่าการประมาณพหุนาม
พล็อตต่อไปนี้เป็นตัวอย่างเล็กน้อยในหนังสือข้อความ ผู้เขียนใช้ตัวอย่างนี้เพื่อแสดงให้เห็นว่าพหุนามการสอดแทรกระหว่างตัวอย่างที่เว้นระยะเท่ากันมีการแกว่งใหญ่ใกล้ปลายของช่วงการประมาณค่า แน่นอนว่าการประมาณด้วยคิวบ์สปินช่วยให้การประมาณดีตลอดช่วงเวลา เป็นเวลาหลายปีที่ฉันคิดว่าการแก้ไขพหุนามสูงมากสำหรับตัวอย่างที่เว้นระยะเท่ากันควรหลีกเลี่ยงด้วยเหตุผลที่แสดงไว้ที่นี่ อย่างไรก็ตามเมื่อไม่นานมานี้ฉันได้พบตัวอย่างของสัญญาณไม่ จำกัด จำนวนซึ่งการโพลีโนเมียลลำดับสูงจะให้ความคลาดเคลื่อนน้อยกว่าการประมาณแบบลูกบาศก์ลูกบาศก์ โดยทั่วไปแล้วการประมาณค่าพหุนามมีความแม่นยำมากกว่าตลอดช่วงการประมาณค่าทั้งหมดเมื่ออัตราตัวอย่างสูงพอสมควร สิ่งนี้ดูเหมือนว่าจะเก็บไว้เมื่อตัวอย่างเว้นระยะเท่ากันโดยมีอัตราตัวอย่างอย่างน้อย 3 เท่าของความถี่ Nyquist ของสัญญาณ นอกจากนี้ความได้เปรียบเหนือการประมาณค่าเฉลี่ยของลูกบาศก์อิสระจะเพิ่มขึ้นเมื่อ (อัตราตัวอย่าง) / (ความถี่ Nyquist) เพิ่มขึ้น ยกตัวอย่างเช่นฉันเปรียบเทียบการประมาณลูกบาศก์ - อิสระกับโพลิโนเมียลแบบสอดแทรกสำหรับคลื่นไซน์ที่มีความถี่ Nyquist เป็น 2 Hz และอัตราตัวอย่าง 6.5 Hz ระหว่างจุดตัวอย่างนั้นพหุนามการประมาณค่าจะมีลักษณะเหมือนกับสัญญาณจริง ด้านล่างฉันเปรียบเทียบข้อผิดพลาดในการประมาณสองค่า เช่นเดียวกับตัวอย่างแรกการประมาณค่าพหุนามนั้นแย่ที่สุดใกล้จุดเริ่มต้นและจุดสิ้นสุดของช่วงเวลาตัวอย่าง อย่างไรก็ตามพหุนามการสอดแทรกมีข้อผิดพลาดน้อยกว่าลูกบาศก์อิสระในช่วงเวลาตัวอย่างทั้งหมด พหุนามการสอดแทรกยังมีข้อผิดพลาดน้อยลงเมื่อประมาณในช่วงเวลาสั้น ๆ ฉันค้นพบความจริงที่รู้จักกันดีหรือไม่? ถ้าเป็นเช่นนั้นฉันจะอ่านได้ที่ไหน

3
Zero, First, Second … Hold -th Hold
ฟังก์ชันสี่เหลี่ยมถูกนิยามเป็น: r e c t (t)=⎧⎩⎨⎪⎪⎪⎪0121ถ้า | t | &gt;12ถ้า | t | =12ถ้า | t | &lt;12.rect(t)={0if |t|&gt;1212if |t|=121if |t|&lt;12.\mathrm{rect}(t) = \begin{cases} 0 & \mbox{if } |t| > \frac{1}{2} \\ \frac{1}{2} & \mbox{if } |t| = \frac{1}{2} \\ 1 & \mbox{if } |t| < \frac{1}{2}. \\ \end{cases} ฟังก์ชันสามเหลี่ยมถูกกำหนดเป็น: ไตร( …

1
ฉันจะใช้ตัวกรอง Savitzky Golay เพื่อค้นหา maxima ท้องถิ่น (ระหว่างตัวอย่าง) ในสัญญาณ 1D ที่สุ่มตัวอย่างได้อย่างไร
ฉันมีสัญญาณคลื่นไหวสะเทือน y (i): ที่นี่ฉันได้พบหนึ่งสูงสุด: i = 152.54, y = 222.29 ด้วยตนเองและลงจุดด้วยสีแดง ฉันต้องการค้นหา maxima ทั้งหมดโดยอัตโนมัติ ฉันอ่านว่าตัวกรอง Savitzky Golay (SGF) สามารถใช้ในการหาค่าประมาณที่ราบรื่นของสัญญาณและอนุพันธ์ของมันและข้อดีอย่างหนึ่งของ SGF ก็คือมันสามารถรักษา minima และ maxima ได้ดีกว่าตัวกรองอื่น ๆ มันฟังดูดีสำหรับการใช้งานของฉัน ฉันพบสคริปต์ Matlab ที่สร้างค่าสัมประสิทธิ์ SGF และใช้สิ่งนี้เพื่อหาว่าค่าสัมประสิทธิ์ SGF ลำดับที่ 4 สำหรับอนุพันธ์ ฉันเขียนสคริปต์ Matlab ตัวเล็ก ๆ ค้นหาอนุพันธ์ของสัญญาณโดยการสังสัยสัญญาณด้วยสัมประสิทธิ์ SGF ลำดับที่ 4 สำหรับอนุพันธ์ ค้นหาคู่ของตัวอย่าง (i, i + 1) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.