পিচ এক্সট্রাকশনের জন্য এএমডিএফ ব্যবহার করার সময় কীভাবে নিম্ন মৌলিক সাথে মোকাবিলা করবেন?


11

আধিক পর্যায়ক্রমিক অডিও সংকেতের মৌলিক ফ্রিকোয়েন্সি অনুমান করার জন্য আমি গড় চৌম্বক পার্থক্য ফাংশনটি ব্যবহার করছি । এএমডিএফ হিসাবে সংজ্ঞায়িত করা হয়

Dn=1Nnk=nN1|SkSkn|

যেখানে সংকেতের দৈর্ঘ্য। এই সময়কালের সমান পরিমাণে সংকেত স্থানান্তরিত হলে এই ফাংশনটি সর্বনিম্ন প্রদর্শিত হয়।N

এই কোডটি আমি পিচটি বের করতে ব্যবহার করছি (মতলবতে):

 a = amdf(f);
 a = a/max(a);
 [p l] = findpeaks(-a, 'minpeakprominence', 0.6);
 pitch = round(sample_freq/l(1);

তবে, আমি একটি অডিও সংকেত নিয়ে কাজ করছি যেখানে মৌলিক ফ্রিকোয়েন্সি খুব কম:

অডিও সিগন্যালের বর্ণালী

ফলস্বরূপ, একটি পিচ দ্বিগুণ করার সমস্যা দেখা দেয়: সনাক্ত করা সর্বনিম্ন সংকেতের অর্ধেক সময়ের সাথে মিল (যেমন দ্বিতীয় সুরেলা):

উপরের সিগন্যালের এএমডিএফ

আমি প্রথমটি নয়, সবচেয়ে বড় চূড়াটি বের করার চেষ্টা করেছি, তবে কখনও কখনও এই সমস্যাটি থেকেই যায়। নিম্ন মৌলিক ব্যবহারের জন্য আমি কীভাবে আমার কোড এবং / অথবা এএমডিএফ ফাংশনটি উন্নত করতে পারি?


সাইকো-শাব্দ এবং মানব উপলব্ধি প্রভাবিত পিচ এবং অষ্টভর অনিশ্চয়তা প্রভাবিত করে। বৃহত্তম এএমডিএফ শিখরটি শ্রবণযোগ্য পার্থক্য তৈরি করে কোন পরিস্থিতিতে এটি নির্ধারণের জন্য পরীক্ষার প্রয়োজন হতে পারে।
হটপাউ 2

আপনার ফ্রিকোয়েন্সি কত কম? আমার কি শুনার উদাহরণ আছে?
ইডারওয়ান্ডার

উত্তর:


10

এটি আমরা পিচ-ডিটেকশন বিজে ডেকে আছি, " অষ্টভ সমস্যা "।

প্রথমত, আমি এএমডিএফকে এএসডিএফ এ পরিবর্তন করব। ল্যাগ বাড়ার সাথে সাথে আমি উইন্ডোর আকার হ্রাস করব না। (এছাড়াও, আমি যে বিষয়টিকে আরও প্রচলিত বলে মনে করি তার কাছে আমি স্বরলিপিটি পরিবর্তন করছি ""x[n]"একটি স্বতন্ত্র সময় সংকেত।)

এর গড় স্কোয়ার ডিফারেন্স ফাংশন (এএসডিএফ) x[n] নমুনা পাড়া x[n0] হল:

Qx[k,n0]1Nn=0N1(x[n+n0N+k2]  x[n+n0N+k2+k])2

হল floor()ফাংশন এবং, যদি হয় তবে ।kk2=k+12=k2

এখন, বর্গাকার এবং প্রসারিত কি summations যেমন মত চেহারা বিবেচনা (যে না হয় অনন্ত যাচ্ছে, কিন্তু আপনি একটি ধারণা দিতে যদি বড়)। এএসডিএফ সরাসরি স্বতঃসংশ্লিষ্টতার সাথে সম্পর্কিত। এটি মূলত স্বতঃসংশোধনকে উল্টে ফেলা হয়। এই পদক্ষেপগুলি আমি আপনার কাছে ছেড়ে দেব। এই উত্তর একবার দেখুন।NN N

সুতরাং এখন থেকে সংজ্ঞায়িত এই সসীম দৈর্ঘ্যের "স্বতঃসংশোধন" (নমুনা আশেপাশে ) বিবেচনা করুন:x[n0]

Rx[k,n0]=Rx[0,n0]12Qx[k,n0]

কোথায়

Rx[0,n0]1Nn=0N1(x[n+n0N2])2

যেহেতু এবং সমস্ত , তার মানে সমস্ত ।Qx[0,n0]=0Qx[k,n0]0kRx[k,n0]Rx[0,n0]k

ধরুন এক মিনিটের জন্য পর্যায়ক্রমে (এবং পূর্ণসংখ্যা হিসাবে ঘটে) হয় tox[n]PP

x[n+P]=x[n]n

এবং এবং কোনও পিরিয়ড সংখ্যার জন্য ( একটি পূর্ণসংখ্যা) তাই আপনি যদি একটি শিখর পেতে এবং অন্য কোন একাধিক সমান যদি পর্যাবৃত্ত হয়। তাহলে হয় না পুরোপুরি পর্যাবৃত্ত, আমরা কি আশা করতে পারে এ সবচেয়ে বড় শিখর হল সময়ে আরেকটি শিখর (কিন্তু সামান্য ছোট) বড় গুণিতক জন্য (সময়ের আমরা খুঁজছেন হয় নি) এবং কার্যক্রমে ছোট পীক ।Qx[mP,n0]=0Rx[mP,n0]=Rx[0,n0]Rx[k,n0]mk=0kPx[n]x[n]k=0k=PP

সুতরাং অষ্টক সমস্যাটি বেশ কয়েকটি কারণে আসে। প্রথমত, অগত্যা একটি পূর্ণসংখ্যা নয়। এটি একটি প্রসারণ সমস্যা, বড় বিষয় নয়। P

দ্বিতীয় কারণ এবং আরও কঠিন সমস্যা হ'ল সাবহারমনিক্স । বিবেচনা করুন যে আপনি ঠিক A-440 Hz এ একটি সুন্দর পর্যায়ক্রমিক স্বর শুনছেন এবং এটি একটি A এর মতো শোনাচ্ছে যা মাঝের সি এর চেয়ে 9 টি অর্ধগুণ বেশি Now -220? এটি কী মত এবং গাণিতিকভাবে "সত্য" সময়কাল কী হবে?


পিরিয়ডের জন্য "ডান" শীর্ষস্থান নির্বাচন করা ।

ধরা যাক আপনি ডিসি-ব্লকিং ফিল্টারটির মাধ্যমে আপনার নোটটি চালান, যাতে এর গড়টি শূন্য হয়। দেখা যাচ্ছে যে প্রতিটি জন্য শূন্য হয় (বা বড় হলে এটি কাছাকাছি থাকে )। এর অর্থ প্রায় শূন্য হওয়ার জন্য অবশ্যই (ওভার ) যোগফল হবে যার অর্থ নীচের মতো শূন্যের বেশি পরিমাণ অঞ্চল আছে isx[n]Rx[k,n0]n0NRx[k,n0]k

ঠিক আছে, তাই শক্তি প্রতিনিধিত্ব করে সান্নিধ্যের মধ্যে প্রায় এবং অ নেতিবাচক হতে হবে। কখনই অতিক্রম করে না তবে পর্যায়ক্রমিক হওয়ার পরে এটি যতটা বড় হতে পারে । যদি । সুতরাং যদি পিরিয়ডের সাথে পর্যায়ক্রমিক হয় এবং আপনার কাছে দ্বারা পৃথক পৃথক পৃথক শৃঙ্গ রয়েছে এবং সেই শিখাগুলি কতটা উঁচুতে হবে সে সম্পর্কে আপনার ধারণা রয়েছে। এবং যদি এর ডিসি উপাদানটি শূন্য হয়, যার অর্থ শিখরের মধ্যে রয়েছে, এর অবশ্যই নেতিবাচক মান থাকতে হবে।Rx[0,n0]x[n]n=n0Rx[k,n0]Rx[0,n0]x[n]Rx[P,n0]=Rx[0,n0]x[n+P]=x[n]x[n]PPRx[k,n0]

যদি "অর্ধ-পর্যায়ক্রমিক" হয়, তবে একটি চক্রটি অনেকটা সংলগ্ন চক্রের মতো দেখাবে, তবে সময় অনুসারে আরও চক্রের মতো নয় । তার মানে প্রথম শীর্ষ শিখর বা তৃতীয় চেয়ে দ্বিতীয় হতে হবে । যে কোনও ব্যক্তি সর্বদা সর্বোচ্চ শিখর বাছাই করতে নিয়মটি ব্যবহার করতে পারে এবং সর্বদা সর্বোচ্চ পর্বতটি প্রথম হতে পারে বলে আশা করতে পারে। কিন্তু, শ্রাবণযোগ্য সাবহারমোনিকসের কারণে, কখনও কখনও এটি হয় না। কখনও কখনও দ্বিতীয় বা সম্ভবত তৃতীয় শীর্ষটি ওহ-তাই-কিছুটা বেশি থাকে। এছাড়াও, কারণ সময়ের সম্ভবত নমুনা কিন্তু একটি পূর্ণসংখ্যা সংখ্যা নয় মধ্যেx[n]x[n]x[n]Rx[P,n0]Rx[2P,n0]Rx[3P,n0]PkRx[k,n0]সর্বদা একটি পূর্ণসংখ্যা হয়, সুতরাং প্রকৃত শিখরটি সম্ভবত পূর্ণসংখ্যার মানের মধ্যে থাকে । এমনকি আপনি যখন বিভক্ত হয়েছিলেন যেখানে মসৃণ শিখরটি রয়েছে (যা আমি সুপারিশ করি এবং চতুর্ভুজ প্রান্তকে যথেষ্ট ভাল), এবং এটি সত্যই কতটা পূর্ণসংখ্যার , আপনার প্রক্ষিপ্ত আলগটি শিখরটিকে তুলনামূলকভাবে তুলনায় কিছুটা উঁচু বা কিছুটা কম করতে পারে। সুতরাং যখন আপনি সত্যিই অন্যটি চেয়েছিলেন তখন একেবারে সর্বোচ্চ শিখরটি বেছে নেওয়ার ফলে প্রথম শিখর (বা ভাইস বিপরীতে) থেকে দ্বিতীয়টি বাছাই করা যায়।kk

সুতরাং কোনওভাবেই আপনাকে ক্রমবর্ধমান এ পিকগুলি প্রতিবন্ধক করতে হবে যাতে প্রথম চূড়ায় দ্বিতীয়টির তুলনায় সামান্য সুবিধা হয় এবং দ্বিতীয়টি চতুর্থটির (পরে পরের অক্টেভ ডাউন), ইত্যাদি থাকে আপনি কীভাবে এটি করেন?k

আপনি এটি গুণ করে Rx[k,n0] একটি হ্রাস ফাংশন সঙ্গে k যাতে শীর্ষে k=2P একটি অভিন্ন শৃঙ্গের তুলনায় কিছু উপাদান দ্বারা হ্রাস পেয়েছে k=P। দেখা যাচ্ছে যে পাওয়ার ফাংশন (সূচকীয় নয়) এটি করে। সুতরাং গণনা

kα Rx[k,n0]

তাই যদি x[n] সময়ের সাথে পুরোপুরি পর্যায়ক্রমিক ছিল P, এবং অ-পূর্ণসংখ্যার জন্য ইন্টারপোলেশন বিষয়গুলি উপেক্ষা করে Pতাহলে

Rx[2P,n0]=Rx[P,n0]

কিন্তু

(2P)αRx[2P,n0]=(2P)αRx[P,n0]<PαRx[P,n0]

যে অক্টোবরের চেয়ে কম এক অক্টেভের পিচের শীর্ষগুলি হ্রাস করা হয় তাকে অনুপাত

(2P)αRx[2P,n0]PαRx[P,n0]=(2P)αPα=2α

সুতরাং আপনি যদি নিজের প্রথম শিখরটিকে দ্বিতীয় শিখরের চেয়ে ১% বাড়িয়ে দিতে চান, যার অর্থ আপনি সাব-হারমোনিক পিচ হিসাবে পিচটি বেছে নেবেন না, যদি না সাব-হারমোনিক পিচ অটোকোররিলেশন প্রথমটির চেয়ে কমপক্ষে 1% বেশি থাকে শিখর, আপনি সমাধান করতে হবে α থেকে

2α=0.99

নীচে নীচে subharmonic পিচ অনুরূপ শিখর ওজন বা ডি-জোর দেওয়া বা প্রতিবন্ধকতা অবিচ্ছিন্ন উপায়।

এটি এখনও আপনাকে একটি থ্রোহোল্ডিং ইস্যুতে ফেলেছে। তোমাকে পছন্দ করতে হবেαআমরা হব. কিন্তু এই একটি সামঞ্জস্যপূর্ণ উপায় দ্বিতীয়, যা একটি অষ্টক কম প্রথম শিখর জোর দেওয়া, কিন্তু এত না যে যদি নোট সত্যিই হয় একটি অষ্টক কম, কিন্তু এমনকি সুরবিজ্ঞান সব শক্তি বিজোড় তুলনায় শক্তিশালী ছিল, সুরেলা, এটি এখনও দ্বিতীয় শিখরটি নির্বাচিত হওয়ার সম্ভাবনা ছেড়ে দেবে।


1
আপনার শেষ প্রশ্নের উত্তর দেওয়ার জন্য: আপনি যদি 220 হার্জ প্রশস্ততা যুক্ত করেন তবে পিচটি 220 হার্জ হবে যেখানে মৌলিক (গণিতের সাথে কথা বলার) পরে 440 হার্জ প্রথম সুরেলা হয়। আমার ক্ষেত্রে একই রকম তবে উচ্চতর সুরেলাও রয়েছে, তাই অনুপস্থিত মৌলিকটি উপলব্ধি করার দৃষ্টিকোণ থেকে কোনও সমস্যা নয়। আমি বুঝতে পারছি না যে এএসডিএফের সাথে এএমডিএফ প্রতিস্থাপনের ফলে অষ্টক সমস্যাটি কীভাবে সমাধান হতে পারে
ফারিয়ান

তবে প্রশ্নের অর্ধেকটি হ'ল "এটি কেমন লাগবে"? এর উত্তর দিন এবং তারপরে আপনার পিচ ডিটেক্টরটি কী করতে চান তা দেখুন।
রবার্ট ব্রিস্টো-জনসন

গণনা এবং চক্রান্ত করার চেষ্টা করুন Rx[k,n0]আপনি এএমডিএফের জন্য একই টোন টোন করেছেন। এএমডিএফ-এর মতো কিছু উল্টাপাল্টা হওয়া উচিত।
রবার্ট ব্রিস্টো-জনসন

আপনার যদি অন্য উচ্চতর সুরেলা না থাকে তবে কেবল 440 হার্জ এক এবং 220 হার্জ টোন পর্যাপ্ত পরিমাণে কম থাকে তবে আপনি একটি 440 হার্জ পিচ শুনতে পাবেন। কিছু স্তরের উপরে (আমি জানি না কোনটি), আপনি 220 হার্জেড টোন এবং সুতরাং একটি 220 হার্জ পিচ শুনতে পাবেন।
ফারিয়ান

আমি বলার একটি কারণ আছে -60 ডিবি। এখন আপনি আপনার পিচ ডিটেক্টরটি কী বলতে চান, এটি একটি 220 Hz বা 440 Hz নোট বা অন্য কিছু?
রবার্ট ব্রিস্টো-জনসন 21

0

তাত্ত্বিকভাবে, স্বরযুক্ত বক্তৃতার মৌলিক ফ্রিকোয়েন্সি [70, 400] Hz এর বিরতিতে থাকবে। সুতরাং, প্রথম পদক্ষেপটি হ'ল ব্যান্ডটিকে প্রায় বিচ্ছিন্ন করতে ব্যান্ডপাস ফিল্টার প্রয়োগ করা।

দ্বিতীয়ত, আপনি পাওয়ার স্পেকট্রামে ওয়েট ফাংশন প্রয়োগ করতে পারেন। মৌলিক কাছাকাছি, ওজন 1 এর কাছাকাছি হওয়া উচিত, যখন ব্যান্ডের শেষের কাছাকাছি, ওজন 0 এর কাছাকাছি হওয়া উচিত This অবশ্যই এই ওজনকে স্বাভাবিক করা হয়। আমি সুপার-লিনিয়ার কিছু সুপারিশ করব: চতুষ্কোণ, কোয়ার্টিক ইত্যাদি - সত্যিকার অর্থে অক্টাভসকে মেরে ফেলতে।


আমি কীভাবে ওজন প্রয়োগ করতে পারি? আমি জানি না মৌলিক কোথায়। এছাড়াও, আমার সংকেত একটি উপকরণের নোট, তাই পরিসরটি আরও বড়
20
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.