PDA

نسخه کامل مشاهده نسخه کامل : سوال درمورد تبدیل فوریه گرفتن در متلب



mahsa.a.j
21-11-2013, 11:49
با سلام
میشه در مورد اینکه دستور fft در متلب چه طوری تبدیل فوریه میگیره با یه مثال جزئیاتش رو توضیح بدید؟ مثلا من از بردار x که ابعادش [18 1] هست تبدیل فوریه میگیرم به صورت زیر:
X_f=fft(x)

مگه نباید ابعاد بردار حاصل همون [18 1] بشه؟ پس چرا حاصل چهار بعدی میشه با ابعاد زیر:
[15 10 5 1]
ممنون میشم اگه راهنماییم کنید.

mahsa.a.j
21-11-2013, 17:30
مشکل از برنامه نویسیم بود حل شد! ابعاد حاصل هم 1 در 18 هست!
ولی یه سوال دیگه؟ بعضی موقع ها در دستور fft از یک عدد هم استفاده میکنیم مثل:
Y=fft(x,256) در اینجا 256 دقیقا چی رو نشون میده؟

Iron
21-11-2013, 19:44
من تو انجمن فیزیک جواب دادم دیدم اینجام پست گزاشتید. خوب خدا رو شکر که درست شد. اون عدد دوم، همونطوریکه تو help اومده، طول برداری هست که ازش تبدیل میگیرید. اگر طول بردار x کمتر 256 این باشه مابقی صفر درنظر گرفته میشن. اگر بیشتر باشه فقط 256 تای اول درنظر گرقته میشن.

mahsa.a.j
21-11-2013, 22:46
من تو انجمن فیزیک جواب دادم دیدم اینجام پست گزاشتید. خوب خدا رو شکر که درست شد. اون عدد دوم، همونطوریکه تو help اومده، طول برداری هست که ازش تبدیل میگیرید. اگر طول بردار x کمتر 256 این باشه مابقی صفر درنظر گرفته میشن. اگر بیشتر باشه فقط 256 تای اول درنظر گرقته میشن.
ممنون از راهنماییتون
یه سوال دیگه؟ دادن این عدد چه موقع هایی نیازه؟ دلیل خاصی داره؟

Iron
22-11-2013, 06:55
اول از همه اینکه مطمئن نیستم که پاسخ من به این سوال کامل باشه.
ممکنه شما بخواین فقط از قسمتی از سیگنال تبدیل بگیرین بخصوص که فکر می کنم اگر طول بردار توانی از دو باشه الگوریتمی استفاده میشه که یا دقیقتره یا سریعتر.
اما اگر این عدد بیشتر از طول بردار باشه و به انتهاش صفر اضافه بشه، رزلوشن دنباله ی فرکانسی که تبدیل فوریه بهتون میده کوچکتر خواهد بود. فرض کنید ما از یه سیگنال با طول 10 ثانیه تبدیل فوریه بگیریم. خوب رزلوشن میشه 0.1 هرتز. حالا اگر از سیگنالی با طول 20 ثانیه تبدیل بگیریم این رزلوشن میشه 0.05 هرتز. به این کار zero padding گفته میشه. البته در نظر داشته باشید بسته به اینکه تبدیل فوریه چطور تعریف شده باشه، (1 تقسیم بر N تو تبدیل فوریه باشه یا تبدیل فوریه معکوس) ممکنه با افزایش صفر، خروجی تبدیل فوریه با نسبت طول اصلی سیگنال به طول درنظرگرفته شده، کوچکتر بشه. در این حالت باید یه ضریب تصحیح هم بکار ببرید که فکر نمی کنم تو matlab نیازی باشه ولی بهتره تست کنید.

mahsa.a.j
23-11-2013, 02:12
ممنون از راهنماییهای مفیدتون
موفق باشید :»