بالنظر إلى مجرى الصوت ، تجد عندما يقرع الباب (مستوى ضغط الصوت حساب؟)

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

سؤال

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

الاستماع: http://ubasics.com/so/van_driver_door_closing.wav

انظر:
image of waveform shows steady line, then sudden disruption, settling down to steady line

إنه أخذ العينات في 16bits 4khz, وأود أن تجنب الكثير من معالجة أو تخزين العينات.

عندما ننظر في الأمر في الجرأة أو آخر الموجي أداة انها مميزة جدا, و دائما تقريبا مقاطع بسبب الزيادة في ضغط الصوت في السيارة - حتى عند النوافذ و الأبواب الأخرى المفتوحة:

الاستماع: http://ubasics.com/so/van_driverdoorclosing_slidingdoorsopen_windowsopen_engineon.wav

انظر:
alt text

أتوقع هناك نسبيا خوارزمية بسيطة من شأنها أن تأخذ قراءات في 4kHz, 8 بت, وتتبع 'حالة مستقرة'.عندما الخوارزمية بالكشف عن زيادة كبيرة في مستوى الصوت سيكون علامة الفور.

  • ما هي أفكارك ؟
  • كيف يمكنك الكشف عن هذا الحدث ؟
  • هل هناك أمثلة التعليمات البرمجية من مستوى ضغط الصوت العمليات الحسابية التي يمكن أن تساعد ؟
  • هل يمكنني الحصول على بعيدا مع أقل تواترا أخذ العينات (1 كيلو هرتز أو حتى أبطأ؟)

تحديث: اللعب مع اوكتاف (مفتوحة المصدر التحليل العددي - على غرار Matlab) ورؤية ما إذا كان جذر متوسط مربع سوف تعطيني ما أنا في حاجة (الذي ينتج في شيء مشابه جدا SPL)

Update2: حساب RMS يجد الباب يغلق بسهولة في حالة بسيطة:
alt text alt text
الآن أنا فقط بحاجة إلى أن ننظر في الحالات الصعبة (الراديو, حرارة الهواء على ارتفاع ، إلخ).من اعداد متطلبات ومواد ال تبدو مثيرة للاهتمام حقا - أنا أعلم أنني سوف تضطر إلى استخدام التكيف الخوارزمية و اعداد متطلبات ومواد ال يناسب بالتأكيد مشروع القانون.

-آدم

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

المحلول

ابحث في الصور من مصدر الملفات الصوتية, واحد طريقة بسيطة للكشف عن التغير في مستوى الصوت قد يكون القيام التكامل العددي العينات لمعرفة "الطاقة" الموجة في وقت محدد.

الخام خوارزمية ليكون:

  1. تقسيم العينات إلى أقسام
  2. حساب الطاقة من كل قسم
  3. تأخذ نسبة من الطاقات بين النافذة السابقة و الحالية نافذة
  4. إذا كانت نسبة يتجاوز عتبة تحديد أن كان هناك ضجيج عال مفاجئ.

شبة الكود

samples = load_audio_samples()     // Array containing audio samples
WINDOW_SIZE = 1000                 // Sample window of 1000 samples (example)

for (i = 0; i < samples.length; i += WINDOW_SIZE):
    // Perform a numerical integration of the current window using simple
    // addition of current sample to a sum.
    for (j = 0; j < WINDOW_SIZE; j++):
        energy += samples[i+j]

    // Take ratio of energies of last window and current window, and see
    // if there is a big difference in the energies. If so, there is a
    // sudden loud noise.
    if (energy / last_energy > THRESHOLD):
        sudden_sound_detected()

    last_energy = energy
    energy = 0;

وأود أن أضيف تنويه التي لم تكن قد حاولت هذه.

هذه الطريقة ينبغي أن يكون من الممكن أن يتم بدون وجود عينات سجلت جميعها الأولى.طالما هناك العازلة من بعض طول (WINDOW_SIZE في المثال) ، التكامل العددي لا يمكن أن يؤديها لحساب الطاقة من قسم الصوت.هذا لا يعني مع ذلك ، أنه سيكون هناك تأخير في معالجة تعتمد على طول WINDOW_SIZE.تحديد طول جيدة قسم من الصوت هو مصدر قلق آخر.

كيفية تقسيمها إلى أقسام

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

على سبيل المثال ، إذا كان التكامل نافذة 0.5 ثانية ، و أول نافذة تغطي 0.25 ثوان من الصمت و 0.25 ثانية من إغلاق الباب و النافذة الثانية كانت تغطي 0.25 ثانية من إغلاق الباب و 0.25 ثانية من الصمت ، قد يبدو أن قسمين من صوت له نفس المستوى من الضجيج ، ولذلك ، ليس مما اثار الكشف عن الصوت.أتصور وجود نافذة قصيرة من شأنه التخفيف من حدة هذه المشكلة إلى حد ما.

ومع ذلك ، وجود نافذة قصيرة جدا يعني أن الارتفاع في الصوت قد لا تناسب تماما في نافذة واحدة ، و قد apppear أن هناك القليل من الفرق في الطاقة بين الفروع المجاورة ، والتي يمكن أن تسبب الصوت ينبغي تفويتها.

أعتقد WINDOW_SIZE و THRESHOLD على حد سواء يجب أن يكون تحديد تجريبيا الصوت التي سوف يتم الكشف عن.

من أجل تحديد كيفية العديد من العينات أن هذه الخوارزمية سوف تحتاج إلى الاحتفاظ بها في الذاكرة ، دعنا نقول ، WINDOW_SIZE هو 1/10 من صوت إغلاق الباب ، وهي عبارة عن 0.025 ثانية.في معدل أخذ العينات من 4 كيلو هرتز ، 100 العينات.يبدو أن الكثير من متطلبات الذاكرة.باستخدام 16 بت العينات 200 بايت.

مزايا وعيوب

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

وهناك زوجين من المشاكل التي أستطيع أن أفكر في هذا النهج:

  1. إذا الضوضاء الخلفية بصوت عال جدا, الفرق في الطاقة بين الضوضاء في الخلفية و إغلاق الباب لن يكون تمييزها بسهولة, و قد لا تكون قادرة على الكشف عن إغلاق الباب.
  2. أي مفاجئة الضوضاء ، مثل التصفيق ، يمكن اعتبار الباب يغلق.

ولعل الجمع بين الاقتراحات في إجابات أخرى ، مثل محاولة تحليل التردد التوقيع إغلاق الباب باستخدام تحليل فورييه ، مما يتطلب إجراء المزيد من عمليات المعالجة ولكن قد يجعلها أقل عرضة للخطأ.

انها على الارجح الى اتخاذ بعض التجارب قبل العثور على طريقة لحل هذه المشكلة.

نصائح أخرى

يجب الاستفادة في الباب أغلق مفاتيح السيارة.تحاول أن تفعل هذا مع الصوت التحليل overengineering.

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

ليس ذلك انها ليست مشكلة مثيرة للاهتمام لحل dsp الخبراء ، ولكن من الطريقة التي كنت تسأل هذا السؤال ، فإنه من الواضح أن الصوت المعالجة ليست الطريق التي تريد أن تأخذ.وسوف يكون مجرد مثل كابوس أن تجعل من العمل.

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

هناك الكثير من الأدبيات ذات الصلة على هذه المشكلة في الرادار العالم (هذا يسمى نظرية الكشف).

قد يكون لديك نظرة على "خلية المتوسط اعداد متطلبات ومواد ال" (ثابت معدل انذار كاذب) الكشف.ويكيبيديا لديها القليل هنا.فكرتك هي مشابهة جدا لهذا ، يجب أن تعمل!:)

حظا سعيدا!

وأود أن تبدأ من خلال النظر في الطيفي.أنا فعلت هذا على اثنين من الملفات الصوتية أعطيته, و يبدو أن هناك بعض التشابه يمكن أن تستخدمها.على سبيل المثال الفرق الرئيسي بين اثنين يبدو أن حوالي 40-50 هرتز.بلدي .02.

التحديث

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

alt text
(المصدر: charlesrcook.com)

%% Test Script (Matlab)
clear
hold all %keep plots open
dt=.001

%% Van driver door
data = wavread('van_driver_door_closing.wav');

%Frequency analysis
NFFT = 2^nextpow2(length(data));
Y = fft(data(:,2), NFFT)/length(data);
freq = (1/dt)/2*linspace(0,1,NFFT/2);
spectral = [freq'  2*abs(Y(1:NFFT/2))];

plot(spectral(:,1),spectral(:,2))

%% Repeat for van sliding door
data = wavread('van_driverdoorclosing.wav');

%Frequency analysis
NFFT = 2^nextpow2(length(data));
Y = fft(data(:,2), NFFT)/length(data);
freq = (1/dt)/2*linspace(0,1,NFFT/2);
spectral = [freq'  2*abs(Y(1:NFFT/2))];

plot(spectral(:,1),spectral(:,2))

عملية إيجاد متميزة ارتفاع في الإشارات الصوتية يسمى الكشف عابرة.التطبيقات مثل سوني حمض و ابلتون لايف استخدام الكشف عابرة تجد يدق في الموسيقى من أجل القيام فاز مطابقة.

متميزة ارتفاع ترى في الموجي أعلاه يسمى عابرة, و هناك عدة خوارزميات جيدة للكشف عن ذلك.ورقة عابر الكشف عن التصنيف في شؤون الطاقة يصف 3 طرق للقيام بذلك.

أتصور أن التردد والسعة أيضا تختلف من سيارة إلى أخرى.أفضل طريقة لتحديد ما من شأنه أن يكون أخذ عينة في المدنية مقابل سيارات الدفع الرباعي الكبيرة.ربما يمكن أن يكون المستخدم إغلاق الباب في "التعلم" واسطة للحصول على السعة والتردد التوقيع.ثم يمكنك استخدام ذلك لمقارنة عندما تكون في وضع الاستخدام.

هل يمكن أن تنظر أيضا في استخدام تحليل فورييه للقضاء على الضوضاء الخلفية التي لا ترتبط مع إغلاق الباب.

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

على مسألة أقل تواترا أخذ العينات ، وهو أعلى تردد الصوت التي يمكن التقاطها من نصف معدل أخذ العينات.وبالتالي ، إذا كان باب السيارة الصوت كان أقوى في 1000Hz (على سبيل المثال) ثم معدل أخذ العينات أدناه 2000Hz سوف يفقدون ذلك الصوت تماما

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

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