অডিও সংকেতগুলির সময় বিলম্ব পরিমাপ করা


9

কেউ আমাকে চিত্কার করার আগে আমি পুরোপুরি বুঝতে পারি যে এই প্রশ্নটি বহুবার জিজ্ঞাসা করা হয়েছে। আমি আপনাকে আশ্বস্ত করি যে আমি বিদ্যমান প্রশ্নোত্তরগুলি পড়েছি তবে সমস্যার একটি অংশ সম্পর্কে আমি এখনও বিভ্রান্ত।

আমার কাছে একটি শব্দ উত্স আছে যা বন্ধ পরিবেশে সংগীত (এ) বাজায়। আমার কাছে একটি মাইক রয়েছে যা আমি এ রেকর্ড করতে ব্যবহার করছি আমার কাছে দুটি ওয়াভ ফাইল রয়েছে যা একই বৈশিষ্ট্য এবং দৈর্ঘ্য (নমুনার সংখ্যা) ভাগ করে নিয়েছে।

আমার লক্ষ্যটি হ'ল এটিকে মাইকে পৌঁছাতে যে সময় লেগেছে তা গণনা করা।

আমি ক্রস-পারস্পরিক সম্পর্ক (নমপি) ব্যবহার করে গণনা সম্পাদনের চেষ্টা করছি:

# Delay estimation
corr = numpy.convolve(original_audio, recorded_audio, 'full')
delay = int(len(corr)/2) - numpy.argmax(corr)
distance = delay / sample_rate * 343 # sample_rate == 22050, m/s = speed of sound
print("Distance full: %.2f cm" % (distance * 100))

আমি ধারাবাহিকভাবে 300,000 সেমি পরিসীমা মান পেতে। স্পিকার এবং মাইকের মধ্যে দূরত্ব প্রায় 2 ফুট।

এটি আমার কাছে সব থেকে নতুন নতুন তাই আমি নিশ্চিত যে আমি স্পষ্ট কিছু মিস করছি।

আগাম ধন্যবাদ.


3
আপনি কি numpy.correlateতার পরিবর্তে ব্যবহার করা উচিত না তা নিশ্চিত numpy.convolve? বিলম্ব অনুমান করার জন্য, আপনি নিজের সংকেতগুলি সংযুক্ত না করে আন্তঃসম্পর্কিত করতে চান। কনভলভ করে আপনি সম্ভবত আরও বড় বিলম্বের সাথে শেষ করবেন।
পিটার কে।

পিটারকে সম্ভবত সঠিক। দ্রষ্টব্য যে আপনি সময়কে উল্টিয়ে এবং প্রথমে ইনপুটগুলির সংযোগ দিয়ে সমঝোতার মাধ্যমে পারস্পরিক সম্পর্ক বাস্তবায়ন করতে পারেন। এটি আপনাকে পারস্পরিক সম্পর্কের জন্য দ্রুত কনভোলিউশন অ্যালগরিদমগুলি (ওভারল্যাপ-সংরক্ষণের মতো) ব্যবহার করতে দেয়।
জেসন আর

উত্তর:


8

আপনি কি numpy.correlateতার পরিবর্তে ব্যবহার করা উচিত না তা নিশ্চিত numpy.convolve? বিলম্ব অনুমান করার জন্য, আপনি নিজের সংকেতগুলি সংযুক্ত না করে আন্তঃসম্পর্কিত করতে চান। কনভলভ করে আপনি সম্ভবত আরও বড় বিলম্বের সাথে শেষ করবেন।

সাধারণ কিছু চেষ্টা করে দেখুন:

x = [1, 0, 0, 0, 0 ];
y = [0, 0, 0, 0, 1 ];
conv = numpy.convolve(x,y); 
conv
array([0, 0, 0, 0, 1, 0, 0, 0, 0])
corr = numpy.correlate(x,y,"full");
corr
array([1, 0, 0, 0, 0, 0, 0, 0, 0])

3
আমি ঠিক এটিই খুঁজছিলাম। আর একটি উদাহরণ যা আমি ব্যবহারের সমাবর্তন দেখেছি এবং এটি আমার কাছে ঘটেছিল না যে সরাসরি পারস্পরিক সম্পর্ক সঠিক পছন্দ হবে। ধন্যবাদ.
কেম্যানএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.