স্বরে ফেটে যাওয়ার সূত্রপাতের সময় অনুমান করা কি শব্দে ফেটে যায়?


14

শোনার সংকেতে সাইনোসয়েডাল টোন ফেটে যাওয়ার সূত্রপাতের সময়টি অনুমান করার জন্য কোন কৌশলগুলি ব্যবহার করতে পারে?

ধরুন টোন ফেটে একটি নির্দিষ্ট স্থির ফ্রিকোয়েন্সি রয়েছে (তবে অজানা ধাপ) এবং খুব তীব্র উত্থানের সময় রয়েছে এবং লক্ষ্যটি হ'ল অর্ধের উত্থানের সময়ের চেয়ে আরম্ভের সময়টি এবং / অথবা সুরের ফ্রিকোয়েন্সিটির একটি সময়কাল অনুমান করা , যদি সম্ভব হয়. যদি এস / এন অনুপাত খুব কম হয় (1 এর চেয়ে অনেক কম) অনুমানের কৌশলগুলি কীভাবে পরিবর্তিত হতে পারে?

যোগ করা হয়েছে: ধরে নিন টোন ফেটানো অজানা দৈর্ঘ্যের, তবে উত্থানের সময় এবং ফ্রিকোয়েন্সি সময়কালের একটি ছোট একাধিকের চেয়ে বেশি দীর্ঘ।

যুক্ত: একটি ডিএফটি / এফএফটি একটি স্বরের খুব সম্ভাব্য অস্তিত্ব দেখায়। সমস্যাটি হুবহু অনুধাবন করা হচ্ছে যেখানে এফএফটি উইন্ডোটিতে টোনটি (বা একই ফ্রিক্যুয়েন্সিটির একাধিক স্বর ফেটে যেতে পারে) এফএফটি উইন্ডোটির মধ্যে শুরু হয়ে থাকতে পারে, বা নির্ধারণ করে যে বর্তমান টোনটি ডিএফটি উইন্ডোটির বাইরে শুরু হয়েছে কিনা, যদি আমার সমস্ত কিছু থাকে অতিরিক্ত সময় ডোমেন ডেটা।

রাডার পালস সনাক্তকরণের নির্ভুলতাটি আমার প্রয়োজনীয় রেজোলিউশনের কাছাকাছি, আমার কেবল একটি কিনারা ব্যতীত, কারণ স্বনটি অজানা দৈর্ঘ্যের, এবং, জ্ঞাত উত্থানের সময় ব্যতীত অন্যরকম। সংকীর্ণ ব্যান্ড পাস ফিল্টারগুলি উত্থানের সময়টিকে বিকৃত করে এবং এভাবে প্রান্ত আগমন অনুমানের রেজোলিউশনকে হত্যা করে।


1
আমরা কি গোলমাল সম্পর্কে কিছু অনুমান করতে পারি? এটি কি স্থির? এটি কোনও বিতরণ অনুসরণ করে?
ফোনন

2
আপনার ডিটেক্টর থেকে মিথ্যা অ্যালার্মগুলি কি অনাকাঙ্ক্ষিত? প্রতিটি নাড়ি সঠিকভাবে সনাক্ত করার সম্ভাবনা সম্পর্কে আপনার কি স্পেসিফিকেশন রয়েছে? এটি ফ্রন্ট-এন্ড রাডার সিগন্যাল প্রসেসিংয়ের (এর একটি সরলীকৃত সংস্করণ) সাথে খুব মিল; শব্দে এম্বেড করা এবং তাদের পরামিতিগুলি অনুমান করে (সম্ভবত সম্ভাব্য-সংশোধিত) ডালগুলি সনাক্ত করা।
জেসন আর

1
আপনার কি আসল সময়ে এটি করা দরকার, না এটি একটি অফলাইন বিশ্লেষণ?
নিবোট

2
@ hotpaw2: আপনার সম্পর্কে কী ভালো লাগে নি Goertzel অ্যালগরিদম অনুযায়ী এই তাই উত্তর ?
পিটার কে।

1
গোয়ার্তজেল অ্যালগরিদমটি স্বন সনাক্তকরণের জন্য ব্যবহৃত হয়, যা মনে হয় আপনি পরে যাচ্ছেন। ফিল্টারটির আউটপুটটি যে ফ্রিকোয়েন্সিটির জন্য সুর করা হয় তার সিগন্যালের "শক্তি" এর একটি অনুমান। একটি চৌম্বক চয়ন করুন। যদি ফিল্টার আউটপুট এর উপরে থাকে তবে আপনি একটি টোন সনাক্ত করেছেন। আপনার থ্রোসোল্ডটি যথাযথভাবে সেট করুন এবং আপনি আগে স্বরটির সূচনা সনাক্ত করতে পারেন (এবং আরও ভুয়া অ্যালার্মের ঝুঁকিতে পড়তে পারেন)।
পিটার কে।

উত্তর:


6

যেহেতু আমরা মন্তব্যে আলোচনা করছি, গোর্তজেল অ্যালগরিদম হ'ল শব্দের সুরটি সনাক্ত করার স্বাভাবিক উপায়। আলোচনার পরেও, আমি নিশ্চিত নই যে আপনি যা করছেন তা হ'ল (আপনি এটি চান) শুরু করার সময়টি ) তবে গোর্তজেল অ্যালগরিদম আপনার সমস্যার ক্ষেত্রে কীভাবে প্রয়োগ করা যেতে পারে তা নিয়ে বিভ্রান্তি দেখা দিয়েছে বলে আমি ভেবেছিলাম এখানে.

গয়ার্তজেল অ্যালগরিদম

Goertzel অ্যালগরিদম ব্যবহার করা ভাল যদি আপনি স্বন আপনি খুঁজছেন ফ্রিকোয়েন্সি জানেন (সেটিতে কল fg ), এবং যদি আপনার গোলমাল স্তর সম্পর্কে একটি যুক্তিসঙ্গত ধারণা থাকে যাতে আপনি একটি উপযুক্ত সনাক্তকরণের চৌম্বকটি নির্বাচন ।

গোয়ার্তজেল অ্যালগরিদমকে সর্বদা এক এফএফটি বিনের আউটপুট গণনা হিসাবে ভাবা যেতে পারে:

y(n)=eȷ2πfgnk=0nx(n)eȷ2πfgk

যেখানে fg হল আপনি যে ফ্রিকোয়েন্সিটি সন্ধান করছেন is

উইকিপিডিয়া পৃষ্ঠা এটি গণনার আরও ভাল উপায় রয়েছে।

এটি বাস্তবায়নের জন্য এখানে একটি (দুর্বল) সাইলেব প্রচেষ্টা:

function [y,resultr,resulti] = goertzel(f_goertzel,x)
realW = 2.0*cos(2.0*%pi*f_goertzel);
imagW = sin(2.0*%pi*f_goertzel);

d1 = 0;
d2 = 0;

for n = 0:length(x)-1,
    y(n+1) = x(n+1) + realW*d1 - d2;
    d2 = d1;
    d1 = y(n+1);
    resultr(n+1) = 0.5*realW*d1 - d2;
    resulti(n+1) = imagW*d1;
end
endfunction

এবং ϕ = 4.4318752 সহ সিগন্যালটি বিবেচনা করুন :f=0.0239074ϕ=4.4318752

x=sin(2πfn+ϕ)+ϵ(n)

ϵ(n)

এই উদাহরণে, সূচকটি 1001 সূচীতে সিগন্যালের এক তৃতীয়াংশ পথ শুরু করে।

fg=f0.001

fg=f

চারটি ট্রেস হ'ল:

  • xyfg=0.0229074
  • resultr2+resulti2
  • xyfg=0.0239074
  • resultr2+resulti2

আপনি দেখতে পাচ্ছেন, যে ক্ষেত্রে আমরা আগ্রহী সেই স্বরটি প্রায় 250 টি শৃঙ্গস্থলে উপস্থিত রয়েছে we যদি আমরা সনাক্তকরণের প্রান্তটিকে এই মান (125) এর অর্ধেক স্থির করে রাখি তবে সনাক্তকরণটি ঘটে (বর্গ-মূলের মানটি 125 এর চেয়ে বেশি হয়) ) টোন শুরু হওয়ার পরে প্রায় 1450 --- 450 নমুনায়।

এই থ্রেশহোল্ড (125) অন্য ক্ষেত্রে (এই রানের জন্য, যাইহোক) সনাক্তকরণের কারণ ঘটবে না, তবে সেই আউটপুটটির সর্বাধিক মান 115.24, আমরা মিথ্যা সনাক্তকরণ না পেয়ে আমরা প্রান্তিকের পরিমাণ খুব বেশি হ্রাস করতে পারি না।

থ্রেশহোল্ডটি 116-এ হ্রাস করা 1401 সূচীতে সত্যিকারের ক্ষেত্রে (এই রানের জন্য) সনাক্তকরণের কারণ হবে ... তবে আমরা আরও মিথ্যা অ্যালার্মের ঝুঁকিটি চালাই।

enter image description here


যদি কোনও স্থির দৈর্ঘ্যের উইন্ডোর মধ্যে কেবল অস্তিত্বের অনুমানের সন্ধান করে তবে চলমান গিয়ারটেল ফিল্টারটি আরও উপযুক্ত। লোকসান / ক্ষয় শব্দ ছাড়া একটি চলমান গের্তজেল তার ব্যান্ডউইথকে তার দৈর্ঘ্যের উপরে পরিবর্তন করে এবং পরে সংকীর্ণ ব্যান্ডউইথ একটি অবনতিমান আগমনের সময়ের অনুমান সরবরাহ করে, শব্দ এবং প্রান্তিক ত্রুটির প্রতি আরও সংবেদনশীল।
হটপাউ

@ হটপাউ 2: সঠিক। গোর্তজেলকে চালিয়ে যেতে আপনি একটি "ভুলে যাওয়ার ফ্যাক্টর" প্রবর্তন করতে পারেন তবে অন্যথায় এটি সমস্ত কিছু মনে রাখে।
পিটার কে

সব মনে আছে? এটি একটি এফআইআর যা পুনরাবৃত্ত আকারে প্রয়োগ করা যেতে পারে। আমি এখানে কি মিস করেছি?
অলিভার চার্লসওয়ার্থ

@ অলি: আপনি যদি সমীকরণটির দিকে তাকান Y(এন)উপরে, আপনি নোট করবেন যে এটি শেষ হয় না। হ্যাঁ, এটি একটি (স্কেলড) ডিএফটি সহগের অনুমান করছে, তবে এটি অবশ্যই এফআইআর নয়।
পিটার কে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.