میں MATLAB میں دو سگنلوں کے مابین مرحلے کے فرق کو کیسے گن سکتا ہوں؟


جواب 1:

اشاروں کے بارے میں کیا عام ہے کہ اس مرحلے میں اختلافات جانچنے کے لئے مفید پیرامیٹر ثابت ہوں گے؟ میں فرض کر رہا ہوں کہ ہم مرحلے کی پروفائل کو تعدد کی ایک تقریب کے طور پر دیکھ رہے ہیں۔ ایک مثال جو ذہن میں آتی ہے وہ ہے ڈیزائن کے تین مختلف معیاروں کے لئے فلٹر تسلسل کے ردعمل کے اسپیکٹرم کا مرحلہ موازنہ۔ کم سے کم مرحلہ ، لکیری مرحلہ ، اور زیادہ سے زیادہ مرحلہ کہیں۔ ہم بالکل اسی طرح کے لاگ طول و عرض کے جواب کے ساتھ لیکن تین مختلف مرحلے کے جوابات کے ساتھ ایف آئی آر فلٹر ڈیزائن کرسکتے ہیں۔ میں یہ تب کرتا ہوں جب میں فلٹر ڈیزائن سکھاتا ہوں اور طلبا کو یہ احساس دلاتا ہوں کہ لکیری مرحلے کے مقابلے میں کم سے کم مرحلہ کیا ہے… زیادہ سے زیادہ مرحلہ مکمل ہونے کے لئے ہے۔ میں پارکس میک لیلن (ریمیز) الگورتھم کے ساتھ ایک کم پاس فلٹر ڈیزائن کرتا ہوں اور پھر یونٹ کے دائرے سے باہر زیروز کو گنا اندرونی صفر کے اندر جوڑ دیتا ہوں تاکہ کم سے کم فیز فلٹر تشکیل دیا جاسکے اور جب اس کے برعکس ہوجائے تو اندر کی صفر کو بیرونی زیرو پر فولڈر کر کے بنائیں۔ زیادہ سے زیادہ مرحلہ فلٹر. اس کے بعد میں ان تینوں فلٹرز کے تسلسل کا ردعمل ، ہر ایک کی ورنکرمی شدت اور لپٹی ہوئی مرحلے کا ردعمل (ڈی سی پر منسلک) دکھاتا ہوں۔ اس سے صاف ظاہر ہوتا ہے کہ ان کے اپنے نام کیوں ہیں۔ میں کسی کو بھیجو بھیج سکتا ہوں جو متلاب کوڈ کی مثال چاہتا ہے۔

فریڈ ہیرس


جواب 2:

[corr.lags] = xcorr استعمال کریں؛ کراس کریلینیشن کرنا؛ زیادہ سے زیادہ چوٹی انڈیکس تلاش کریں ، [~، ix] = زیادہ سے زیادہ (کور)؛ تاخیر = lags (ix)؛ اس سے نمونے میں سگنل ٹو کے درمیان فرق ملتا ہے۔ اپنے اشاروں کی مدت کی بنیاد پر ریڈینز (یا جو کچھ بھی) میں تبدیل کریں: اگر N_sig ایک مدت میں نمونے کی تعداد ہے:

فیز_ڈیگ = 2 * pi * تاخیر / N_sig؛ یا 360 * تاخیر / N_sig اگر ڈگری میں ہے۔