MATLAB এ FFT কি করে?

Matlab E Fft Ki Kare



দ্য ফাস্ট ফুরিয়ার ট্রান্সফর্ম (FFT) এর একটি অত্যন্ত অপ্টিমাইজ করা সংস্করণ বোঝায় ডিসক্রিট ফুরিয়ার ট্রান্সফর্ম (DFT) যা সময় ডোমেনের মাধ্যমে বিচ্ছিন্ন সংকেতকে ফ্রিকোয়েন্সি ডোমেনে রূপান্তরিত করে। ফ্রিকোয়েন্সি বিষয়বস্তু, ফেজ, এবং সিগন্যালের অন্যান্য দিকগুলি এর মাধ্যমে পর্যবেক্ষণ করা যেতে পারে এফএফটি গণনা

এই নিবন্ধটি আমাদের কাজ সম্পর্কে শেখাতে যাচ্ছে এফএফটি ম্যাটল্যাবে।

এফএফটি বোঝা

দ্য ফাস্ট ফুরিয়ার ট্রান্সফর্ম (FFT) বিশেষ কৌশল উপস্থাপন করে যা আমাদেরকে বিভিন্নভাবে সংকেত বুঝতে সাহায্য করে। সাধারণত, সংকেতগুলিকে সংখ্যার ক্রম হিসাবে দেখানো হয় যা সময়ের সাথে পরিবর্তিত হয়, কিন্তু সাথে FFT, আমরা দেখতে পারি যে সিগন্যালে বিভিন্ন ফ্রিকোয়েন্সি রয়েছে এবং সেগুলি কতটা শক্তিশালী। এটি তার বাদ্যযন্ত্রের নোটগুলিতে একটি সংকেত ভেঙে ফেলা এবং প্রতিটি নোট কতটা জোরে তা দেখার মতো।







দ্য এফএফটি অ্যালগরিদম সিগন্যাল ডেটাতে অনেক জটিল গণিত করে। এটি সংকেত নেয় এবং এটিকে ছোট অংশে বিভক্ত করে, তারপর প্রতিটি অংশের জন্য ফ্রিকোয়েন্সি এবং তাদের শক্তি গণনা করে। অবশেষে, এটি সমস্ত ফলাফলকে একত্রিত করে আমাদেরকে সিগন্যালের ফ্রিকোয়েন্সি বিষয়বস্তু, ফেজ সম্পর্ক এবং অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্যের একটি ছবি দেয়।



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



কিভাবে MATLAB এ FFT ব্যবহার করবেন

MATLAB একটি বিল্ট-ইন ফাংশন প্রদান করে যাকে বলা হয় fft যে আমাদের সঞ্চালন করতে পারবেন ফাস্ট ফুরিয়ার ট্রান্সফর্ম (FFT) সংকেত গণনা। এই ফাংশনটি ব্যবহার করা সহজ এবং ফ্রিকোয়েন্সি ডোমেনে সংকেত বিশ্লেষণ এবং ম্যানিপুলেট করার জন্য বিভিন্ন বিকল্প অফার করে:





ব্যবহার করার জন্য সিনট্যাক্স এফএফটি MATLAB-এর ফাংশনগুলি নীচে দেওয়া হল:

চ = fft ( এক্স )

চ = fft ( x, n )

চ = fft ( x, n, dim )

এখানে:



F= fft(x) এর হিসাব পাওয়া যায় ডিসক্রিট ফুরিয়ার ট্রান্সফর্ম (DFT) x ব্যবহার করে ফাস্ট ফুরিয়ার ট্রান্সফর্ম (FFT) অ্যালগরিদম

  • যদি x একটি ভেক্টর প্রতিনিধিত্ব করে, fft(x) ভেক্টরের ফুরিয়ার ট্রান্সফর্ম প্রদান করে।
  • যদি x একটি ম্যাট্রিক্স প্রতিনিধিত্ব করে, fft(x) প্রতিটি কলামকে ভেক্টর হিসাবে বিবেচনা করে প্রতিটি কলামের ফুরিয়ার রূপান্তর প্রদান করে।

F = fft(x,n) n-পয়েন্ট DFT প্রদান করে। কোন মান প্রদান করা না হলে F-এর আকার x হিসাবে অভিন্ন।

  • যদি x একটি ভেক্টর হয় এবং এর দৈর্ঘ্য n-এর চেয়ে কম হয়, তাহলে x অনুগামী শূন্য সহ প্যাডিং পায় যতক্ষণ না এটি n এ পৌঁছায়।
  • যদি x একটি ভেক্টর হয় এবং এর দৈর্ঘ্য n-এর বেশি হয়, তাহলে এটি n দৈর্ঘ্যে কাটা হয়।
  • যদি x একটি ম্যাট্রিক্স হয়, প্রতিটি কলাম একটি ভেক্টর কেস হিসাবে বিবেচিত হয়।

F = fft(x,n,dim) প্রদত্ত ডাইমেনশন ডিম বরাবর ফুরিয়ার ট্রান্সফর্ম ফলন। চল বলি, fft(x, n, 2) প্রতিটি সারির জন্য n-পয়েন্ট ফুরিয়ার রূপান্তর দেয় যদি x একটি ম্যাট্রিক্সকে উপস্থাপন করে।

নিম্নলিখিত উদাহরণগুলি এর কাজ চিত্রিত করে এফএফটি ম্যাটল্যাবে ফাংশন।

উদাহরণ 1

আমরা ব্যবহার করতে পারি এফএফটি ম্যাটল্যাবে নির্দিষ্ট ফ্রিকোয়েন্সি উপাদান এবং এলোমেলো শব্দ সহ একটি সংকেত তৈরি এবং বিশ্লেষণ প্রদর্শন করতে।

উদাহরণ স্বরূপ:

ls = 2000 ;

fs = 1500 ;

ts = 1 /fs;

টিভি = ( 0 :ls- 1 ) *ts;

f = 0.6 * ছাড়া ( 2 * পাই * পঞ্চাশ *টেলিভিশন ) + 3 * randn ( আকার ( টেলিভিশন ) ) + ছাড়া ( 2 * পাই * 120 *টেলিভিশন ) ;

পটভূমি ( 1000 *টেলিভিশন ( 1 : পঞ্চাশ ) , চ ( 1 : পঞ্চাশ ) )

xlabel ( 'টিভি (এমএস)' )

ylabel ( 'f(TV)' )

শিরোনাম ( 'জিরো-মিন র্যান্ডম নয়েজ সহ দূষিত সংকেত' )

চ = fft ( ) ;

PS2 = abs ( চ/ ls ) ;

PS1 = PS2 ( 1 : ls / 2 + 1 ) ;

PS1 ( 2 :শেষ- 1 ) = 2 *PS1 ( 2 :শেষ- 1 ) ;

f = fs* ( 0 : ( ls / 2 ) ) / ls ;

পটভূমি ( f, PS1 )

শিরোনাম ( 'এফ(টি) এর জন্য প্রশস্ততা বর্ণালী (একক-পার্শ্বযুক্ত) PS1' )

xlabel ( 'f(Hz)' )

ylabel ( '|PS1(f)|' )

প্রদত্ত কোডটি এর দৈর্ঘ্য সহ একটি সংকেত তৈরি করে 2000 নমুনা (লস) , একটি নমুনা ফ্রিকোয়েন্সি 1500 Hz (fs) , এবং ক নমুনার সময়কাল (ts) . দ্য সময় ভেক্টর (টিভি) এই পরামিতিগুলির উপর ভিত্তি করে তৈরি করা হয়। সংকেত 50 Hz এবং 120 Hz-এ সাইনোসয়েডাল উপাদানের সংমিশ্রণে গঠিত হয়, সাথে শূন্য-মান র্যান্ডম নয়েজ। তারপর এটি প্রথম 50টি নমুনার একটি অংশ দিয়ে প্লট করা হয়। কোডটি আরও গণনা করে এফএফটি সংকেত এবং গণনা প্রশস্ততা বর্ণালী (PS1) . অবশেষে, প্রশস্ততা বর্ণালী হার্জে সংশ্লিষ্ট ফ্রিকোয়েন্সি (f) এর বিরুদ্ধে প্লট করা হয়েছে।

উদাহরণ 2

এখানে আরেকটি উদাহরণ যা ব্যবহার করে এফএফটি টাইম ডোমেনের মাধ্যমে ফ্রিকোয়েন্সি ডোমেনে গাউসিয়ান পালস রূপান্তরের জন্য ম্যাটল্যাবে ফাংশন।

fs = 500 ;

ts = - 0.5 : 1 /fs: 0.5 ;

ls = দৈর্ঘ্য ( ts ) ;

f = 1 / ( 4 * sqrt ( 2 * পাই * 0.02 ) ) * ( exp ( -ts.^ 2 / ( 2 * 0.02 ) ) ) ;

পটভূমি ( ts,f )

xlabel ( 'সময় (টি)' )

ylabel ( 'f(t)' )

শিরোনাম ( 'টাইম ডোমেন' )

যেমন = 2 ^পরবর্তী 2 ( ls ) ;

f = fs* ( 0 : ( যেমন/ 2 ) ) /যেমন;

চ = fft ( f,np ) ;

পিএফ = abs ( F/np ) ;

পটভূমি ( f,PF ( 1 :যেমন/ 2 + 1 ) )

xlabel ( '(চ)' )

ylabel ( '|PF(f)|' )

শিরোনাম ( 'কম্পাঙ্ক এলাকা' )

প্রদত্ত কোডটি সময় ডোমেনে একটি গাউসিয়ান পালস সংকেত তৈরি করে এবং এর ফ্রিকোয়েন্সি বিষয়বস্তু বিশ্লেষণ করে ফাস্ট ফুরিয়ার ট্রান্সফর্ম (FFT) ম্যাটল্যাবে। সময় ডোমেইন সংকেত প্লট করা হয়, এবং তারপর এফএফটি ফ্রিকোয়েন্সি ডোমেন উপস্থাপনা প্রাপ্ত করার জন্য সঞ্চালিত হয়. ফলে প্রশস্ততা বর্ণালী অনুরূপ ফ্রিকোয়েন্সি বিরুদ্ধে প্লট করা হয়.

উদাহরণ 3

নিম্নলিখিত উদাহরণটি বিভিন্ন ফ্রিকোয়েন্সি সহ তিনটি সাইনোসয়েডাল সংকেত তৈরি করে এবং তাদের ব্যবহার করে সময় ডোমেনে প্লট করে এফএফটি ম্যাটল্যাবে ফাংশন।

fs = 2500 ;

ts = 1 /fs;

ls = 3000 ;

t = ( 0 :ls- 1 ) *ts;

r1 = ছাড়া ( 3 * পাই * 60 *টি ) ;

r2 = ছাড়া ( 3 * পাই * 140 *টি ) ;

r3 = ছাড়া ( 3 * পাই * 350 *টি ) ;

f = [ r1; r2; r3 ] ;

জন্য k = 1 : 3

সাবপ্লট ( 3 , 1 ,k )

পটভূমি ( t ( 1 : 250 ) , চ ( k, 1 : 250 ) )

শিরোনাম ( [ 'সারি নং' , num2str ( k ) , '(টাইম ডোমেন)' ] )

শেষ

যেমন = 2 ^পরবর্তী 2 ( ls ) ;

d = 2 ;

চ = fft ( f,np,d ) ;

PS2 = abs ( চ/ ls ) ;

PS1 = PS2 ( :, 1 :যেমন/ 2 + 1 ) ;

PS1 ( :, 2 :শেষ- 1 ) = 2 *PS1 ( :, 2 :শেষ- 1 ) ;

জন্য k= 1 : 3

সাবপ্লট ( 3 , 1 ,k )

পটভূমি ( 0 : ( fs/np ) : ( fs/ 2 -fs/np ) ,PS1 ( k, 1 :যেমন/ 2 ) )

শিরোনাম ( [ 'সারি নং' , num2str ( k ) , '(কম্পাঙ্ক এলাকা)' ] )

শেষ

উপরের কোডে, টাইম ডোমেনের আউটপুট উইন্ডোতে তিনটি সাইনোসয়েডাল তরঙ্গ, r1, r2 এবং r3 প্রদর্শিত হয়। ফ্রিকোয়েন্সি ডোমেন সিগন্যাল 'PS1' তৈরি করা হয় FFT ফাংশন ব্যবহার করে তরঙ্গের প্রতিটি পৃথক একক-পার্শ্বের প্রশস্ততা বর্ণালী গণনা করার জন্য।

উপসংহার


দ্য এফএফটি এটি একটি মূল্যবান টুল যা আমাদেরকে তাদের ফ্রিকোয়েন্সি বিষয়বস্তু বিশ্লেষণ করে সিগন্যালকে ভিন্নভাবে বুঝতে সাহায্য করে। MATLAB-এর অন্তর্নির্মিত ফাংশন, fft, পারফর্ম করছে এফএফটি সংকেত গণনা সুবিধাজনক হয়ে ওঠে. এই ফাংশনটি টাইম ডোমেন থেকে ফ্রিকোয়েন্সি ডোমেনে ডেটা রূপান্তর করে বিভিন্ন ফ্রিকোয়েন্সি এবং সেই ফ্রিকোয়েন্সিগুলির আপেক্ষিক তীব্রতা সম্পর্কে গুরুত্বপূর্ণ বিশদ জানতে সক্ষম করে। উপরের নির্দেশিকাটি সিগন্যালের বৈশিষ্ট্য সম্পর্কে গভীরভাবে বোঝার জন্য এবং বিভিন্ন অ্যাপ্লিকেশনে জ্ঞাত সিদ্ধান্ত নেওয়ার জন্য অত্যন্ত গুরুত্বপূর্ণ।