کلیدستان

نسخه‌ی کامل: تبدیل فوریه دوگانه در متلب
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام. میخوام از یک تابع دو بعدی بر حسب x و y تبدیل فوریه بگیرم. یعنی انتگرال دوگانه!!!
چه جوری باید فوریه دوگانه بگیرم؟
آیا باید برنامشو خودم بنویسم؟
آیا باید حتما متغیرها syms باشند؟؟
با تشکر
 
سلام.
در سوالتان گفته بودید ((انتگرال دوگانه)) که فکر کنم منظورتان همان ((تبدیل فوریه دوگانه)) می باشد.
معمولا در شبیه سازی ها، ما مقادیر تابع برای x و y های مختلف را به صورت یک ماتریس دو بعدی داریم. در نرم افزار متلب، دستور fft برای گرفتن تبدیل فوریه از مقادیر گسسته به کار می رود. اما این کار را تنها در یک جهت مشخص انجام می دهد، بنابراین ما باید از ماتریس مورد نظر، یک بار در جهت x و یک بار هم در جهت y ، با دستور fft ، تبدیل فوریه بگیریم.
بنابراین یک بار از دستور fft استفاده کنید، سپس برای اینکه در جهت دیگر نیز تبدیل فوریه بگیریم، با علامت ' جای ستون ها و سطرها را عوض می کنیم و سپس با دستور fft تبدیل فوریه می گیریم و در آخر، نتیجه را با علامت ' به گونه ای تغییر می دهیم که جای ستون ها و  سطرها دوباره مثل اول شود. در مورد علامت ' که برای محاسبه ترانهاده یک ماتریس به کار می رود، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=86

البته دستور fft2 نیز وجود دارد، بنابراین نگاهی هم به آن بیندازید و ببینید که کدامیک مد نظرتان می باشد.

ممنون از جوابتون ولی دوتا سوال: اول اینکه خب بعد برا ترکیب دوتا جواب باید چیکار کنم؟!!!!!!!
پس دستور fft2 اینجا کاربرد نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنون
باید موردی که بنده ذکر کردم و همچنین دستور fft2 را بررسی کنید و ببینید که کدامیک مد نظر بوده است. زیرا ممکن است که برای هر دو، لفظ ((تبدیل فوریه دوگانه)) به کار برود (در صورتیکه ممکن است متفاوت باشند --> تصحیح : در پایان این موضوع مشخص شد که متفاوت نیستند). دستور ffft2 برای ((تبدیل فوریه دو بعدی)) می باشد.

 
فک کنم تازه متوجه شدم چی شد!یعنی تبدیل فوریه دوبعدی با دوگانه فرق داره؟!!!!!
طبق چیزی که گفتید، برای همین، جوابی که میخوام بدست نمیاد اما من فرق این دوتا رو کاملا درک نمیکنم.انگار از نظر ریاضی تفاوتی ندارن!!!!.
من یه تابع دومتغیره دارم که بهم یه ماتریس داده، حالا در ادامه باید از معادلم تبدیل فوریه ای بگیرم که بر حسب x و y باشه(یعنی دوگانه.درسته؟؟؟؟).گیج شدم خب الان که دیگه یه ماتریس عددی از xو y بدست اومده!!!!!!!!!!!!!!چیکار کنم؟اگر اشتباه نکنم روش اولی که گفتید مضمون چیزیه که میخوام.درسته؟؟
برای بررسی متفاوت بودن یا نبودن این دو روش، کدهای متلب زیر را می نویسیم (3 حالت را بررسی می کنیم) :

کد:
clear all
close all
clc

A=[1 2 3; 4 5 6; 7 8 9; 10 11 12]

A_1=fft(A);
A_1=(fft(A_1'))'

A_2=(fft(A'))';
A_2=fft(A_2)


A_3=fft2(A)

نتیجه اجرای کد متلب بالا :

کد:
A =

     1     2     3
     4     5     6
     7     8     9
    10    11    12


A_1 =

  78.0000            -6.0000 - 3.4641i  -6.0000 + 3.4641i
-18.0000 +18.0000i        0                  0          
-18.0000                  0                  0          
-18.0000 -18.0000i        0                  0          


A_2 =

  78.0000            -6.0000 - 3.4641i  -6.0000 + 3.4641i
-18.0000 +18.0000i        0                  0          
-18.0000                  0                  0          
-18.0000 -18.0000i        0                  0          


A_3 =

  78.0000            -6.0000 + 3.4641i  -6.0000 - 3.4641i
-18.0000 +18.0000i        0                  0          
-18.0000                  0                  0          
-18.0000 -18.0000i        0                  0

مشاهده می کنید که در هر 3 حالت، نتایج یکسان شده است. بنابراین تفاوتی ندارند.

(۱۳۹۳/۰۷/۱۱, ۰۷:۵۳ ب.ظ)shahri8890@yahoo.com نوشته: [ -> ]با سلام. میخوام از یک تابع دو بعدی بر حسب x و y تبدیل فوریه بگیرم. یعنی انتگرال دوگانه!!!
چه جوری باید فوریه دوگانه بگیرم؟
آیا باید برنامشو خودم بنویسم؟
آیا باید حتما متغیرها syms باشند؟؟
با تشکر
 

من خوندم نظرات دوستان رو، خیلی به نظرم مفید بود. البته خودم هم امروز میگشتم به این "سایت" برخوردم به نظرم بد نگفته بود. نه خیلی ولی یه کمک هایی بهم کرد.