ما هي أفضل طريقة لتخزين الرسم البياني الطيفي كتبشتر بيانات يمكن مقارنته؟

StackOverflow https://stackoverflow.com/questions/3128836

سؤال

لقد أنشأت عملية مشابهة لشازام تخلق أ الطيفية من مقطع صوت معين. أحاول اكتشاف طريقة لتخزين هذه البيانات في قاعدة بيانات حتى أتمكن من إجراء مقارنات عليها. (لا أحتاج إلى رمز حقيقي ، فقط مساعدة مفاهيمية في العملية).

بالنسبة لأولئك الذين ليسوا على دراية باستخدام طيف ، فإنه رسم بياني للوقت على المحور السيني والتردد على المحور ص. أحتاج إلى طريقة لحفظ هذه البيانات بطريقة يمكنني تشغيل المقارنات. أيضًا ، لا يمكنني ببساطة إنشاء مجموعة طويلة من قيم التردد من اليسار إلى اليمين لأن ذلك يصبح مشكلة تعقيد الوقت عند محاولة البحث ضده مع مجموعات بيانات كبيرة (أساسًا مقارنة بين N^2).

في الأساس ، كنت أفكر في إنشاء نوع من التجزئة على مقطع الصوت وحفظ البيانات كشجرة تري أو لاحقة من التجزئة ، لكنني لست متأكدًا من كيفية إجراء مقارنة لذلك.

اي افكار يمكن ان تكون رائعه للعرض.

هل كانت مفيدة؟

المحلول

هذا صفيف ثنائي الأبعاد. ربما أ متناثر واحد إذا كانت معظم البيانات هي 0.0.

سأستخدم أ جذر الرسم البياني (قل TH2F) لتجنب الاضطرار إلى إدارة جميع حالات الحافة وما إلى ذلك ، على الرغم من أن أي مكتبة علمية تقريبًا يجب أن تدعم بنية بيانات مناسبة. يدعم الجذر مقاييس تشابه اثنين على الأقل من الرسم البياني (تشي تربيع و Kolmogorov) والتي ستسمح لك بإجراء مقارنات كمية.

نصائح أخرى

يمكنك إما تخزينها كصفيف RAW 2D ، وإلا ستحتاج إلى القيام ببعض استخراج الميزات ذات المستوى الأعلى (تتبع ملامح الملعب وما إلى ذلك) لاستخراج الميزات المهمة التي يمكنك استخدامها بعد ذلك لأغراض المقارنة.

تكمن مشكلة التجزئة في أنك تحتاج إلى مباريات قريبة ، وليس مطابقات دقيقة - كنت أفكر في شيء على طول خطوط استخراج (الوقت ، التكرار) من القمم المحلية في الطيف ثم وضع تلك في أ http://en.wikipedia.org/wiki/spatial_database .

للبحث ، يمكنك استخراج أعلى قمم (4 - 8؟) ثم ابحث عن أقرب قمم في قاعدة البيانات المكانية والعثور على أفضل مباراة ملائمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top