বিঃদ্রঃ
আমার পূর্ববর্তী উত্তর (এই সম্পাদনার আগে) স্যাভিটস্কি-গোলে (এসজি) ফিল্টারটিকে ননলাইনার হিসাবে চিহ্নিত করে, সময়-পরিবর্তিত ইনপুট ডেটা নির্ভর করে ভুল ছিল, কারণ একটি সাভিটস্কি-গোলে (এসজি) ফিল্টার তার আউটপুটটি কীভাবে গণনা করে তার অকাল-ভুল ব্যাখ্যা দ্বারা সরবরাহিত উইকি লিঙ্ক অনুযায়ী। সুতরাং এখন আমি তাদের সুবিধার জন্য এটি সংশোধন করছি যারা এফআইআর-এলটিআই ফিল্টারিংয়ের মাধ্যমে এসজি ফিল্টারগুলি কীভাবে কার্যকর করা যায় তাও দেখতে পাবেন। @ ম্যাটলকে ধন্যবাদ তার সংশোধন করার জন্য, তিনি যে মহান লিঙ্কটি দিয়েছেন এবং এই সমস্যাটির তদন্তের সময় তিনি যে ধৈর্য ধারণ করেছিলেন (যা আমি কখনই প্রদর্শন করতে পারতাম না) যদিও আমি সত্যনিষ্ঠভাবে আরও ভার্বোজ আপত্তিটি পছন্দ করি যা তবুও স্পষ্টভাবে প্রয়োজনীয় নয়। এছাড়াও দয়া করে মনে রাখবেন যে সঠিক উত্তরটি অন্যটি, এটি কেবলমাত্র এসজি ফিল্টারগুলির এলটিআই সম্পত্তি সম্পর্কিত আরও স্পষ্টতার জন্য।
এখন অবাক হওয়ার মতো কিছু নেই যে যখন কেউ (যারা এই ফিল্টারগুলি আগে কখনও ব্যবহার করেননি) প্রদত্ত ডেটাতে নিম্নতর অর্ডার এলএসই পলিনোমিয়াল ফিট হিসাবে এসজি ফিল্টারের সংজ্ঞার মুখোমুখি হন তিনি তত্ক্ষণাত এই সিদ্ধান্তে পৌঁছবেন যে সেগুলি ডেটা নির্ভরশীল, ননলাইনার এবং সময় (শিফট) বিভিন্ন, অভিযোজক ফিল্টার।
তবুও, বহুপক্ষীয় ফিটিং পদ্ধতিটি চতুরতার সাথে এসজি দ্বারা ব্যাখ্যা করা হয়, যেমন এটি সম্পূর্ণ ডেটা স্বাধীন, সময়-আক্রমণকারী, লিনিয়ার ফিল্টারিং সম্ভব করে তোলে, তাই এসজিকে একটি নির্দিষ্ট এলটিআই-এফআইআর ফিল্টার হিসাবে তৈরি করে।
নীচে ম্যাটএল দ্বারা সরবরাহিত লিঙ্কটি থেকে একটি সংক্ষিপ্তসার সংক্ষিপ্তসার রয়েছে। অনুপস্থিত মনে হয় এমন যে কোনও বিবরণের জন্য দয়া করে মূল নথির সাথে পরামর্শ করুন বা স্পষ্ট করে বলতে বলুন। তবে আমি এখানে পুরো দস্তাবেজটি পুনরায় উত্পাদন করতে চাই না।
2 এম+ 1x [ - এম] , এক্স [ - এম+ + 1 ] , । । । , x [ 0 ] , এক্স [ 1 ], । । । , এক্স [ এম]n = 0পি [ এন ]এনn = - এম, - এম+ + 1 , । । । , - 1 , 0 , 1 , । । । এম
পি [ এন ] = ∑কে = 0এনএকটিটএনট= ক0+ ক1n + a2এন2+ । । । + কএনএনএন
একটিটএনt hপি [ এন ]
ই= ∑- এমএম( পি [ এন ] - এক্স [ এন ] )2
x = [ x [ - এম] , এক্স [ - এম+ + 1 ] , । । । , এক্স [ 0 ] , এক্স [ 1 ] , । । । , এক্স [ এম] ]টি
একটিটই
∂ই∂একটিআমি= 0 , জন্য আমি = 0 , 1 , । । , এন (1)
এখন যারা এলএসই পলিটফিট পদ্ধতির সাথে পরিচিত তাদের জন্য আমি ফলস্বরূপ ম্যাট্রিক্স সমীকরণটি (লিঙ্ক থেকে) লিখব যা সর্বোত্তম সহগ সেটটি সংজ্ঞায়িত করে:
a = ( ক)টিক )- 1একজনটিx = এইচএক্স(2)
এক্স( 2 এম+ 1 ) × 1এইচ2 এম+ 1এনএকজনএনএকজনএইচএকজন
এ = [ αn , i] = ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢( - এম)0( - এম+ 1 )0( 0 )0( এম)0( - এম)1( - এম+ 1 )1। । ।( 0 )1। । ।( এম)1। । ।। । ।। । ।। । ।( - এম)এন( - এম+ 1 )এন( 0 )এন( এম)এন⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
এখন এক মুহুর্তের জন্য ফিরে ঝুঁকুন এবং এখানে একটি বিন্দু নিয়ে আলোচনা করুন।
একজনএইচএনএকটিটএমএনএক্স [ এন ]একটিট2n d
... এই (এলএসই পলিটফিট) প্রতিটি ইনপুট প্রতিটি নমুনায় পুনরাবৃত্তি করা যেতে পারে, প্রতিটি সময় একটি নতুন বহুপদী এবং আউটপুট ক্রম y এর একটি নতুন মান উত্পাদন করে ...
তাহলে আমরা কীভাবে এই বিস্ময়কর বিস্ময়টি কাটিয়ে উঠব? এসজি ফিল্টার আউটপুটকে নিম্নলিখিত হিসাবে ব্যাখ্যা এবং সংজ্ঞা দিয়ে:
এনএনএক্স [ এন ]Y[ এন ]পি [ এন ]n = 0
Y[ n ] = y[ 0 ] = ∑মি = 0এনএকটিমিএনমি= ক0
2 এম+ 1এক্স [ এন ]n = dY[ এন ]একটি0পি [ এন ]এক্স [ এন ]n = dY[ d]x [ d- এম] , এক্স [ ডি- এম+ + 1 ] , । । । , এক্স [ ডি- 1 ] , এক্স [ ডি] , এক্স [ ডি+ + 1 ] , । । । x [ d+ এম]
একটি0এক্স [ এন ]Y[ এন ]এক্স [ এন ]এনএক্স [ এন ]এইচ [ এন ]। তবে তারপরে, এই এসজি ফিল্টারটির ফিল্টার সহগগুলি কী কী? দেখা যাক.
একটিট
a = এইচএক্স
⎡⎣⎢⎢⎢⎢একটি0একটি1⋮একটিএন⎤⎦⎥⎥⎥⎥= ⎡⎣⎢⎢⎢⎢এইচ ( 0 , 0 )এইচ ( 1 , 0 )h ( এন), 0 )এইচ ( 0 , 1 )এইচ ( 1 , 1 )। । ।এইচ ( 0 , 1 )। । ।। । ।। । ।এইচ ( 0 , 2 এম))এইচ ( 1 , 2 এম))এইচ ( 0 , 2 এম))⎤⎦⎥⎥⎥⎥⋅ ⎡⎣⎢⎢⎢⎢x [ - এম]x [ - এম+ 1 ]। । ।x [ এম]⎤⎦⎥⎥⎥⎥
একটি0এইচএক্স
একটি0= এইচ( 0 , n ) ⋅ x = ∑ এইচ( 0 , কে ) x [ কে ] = এইচ( 0 , - এন ) ⋆ এক্স [ এন ]
h [ n ] = এইচ( 0 , - এন )
এন2 এম+ 1
Y[ এন ]2 এম+ 1এক্স [ এন ]এলজএন[ এন ]
Y[ এন ] = এক্স [ এন ] ⋆ এইচএন[ এন ]
মন্তব্য
একটিটএইচ [ এন ]Y[ এন ]এক্সa = এইচএক্সএকটিটপি [ এন ]একটিটএইচ [ এন ]
ম্যাটল্যাব / অ্যাক্টভি কোড
এইচ [ এন ]এইচ [ এন ]
% Savitzky-Golay Filter
%
clc; clear all; close all;
N = 3; % a0,a1,a2,a3 : 3rd order polynomial
M = 4; % x[-M],..x[M] . 2M + 1 data
A = zeros(2*M+1,N+1);
for n = -M:M
A(n+M+1,:) = n.^[0:N];
end
H = (A'*A)^(-1)* A'; % LSE fit matrix
h = H(1,:); % S-G filter impulse response (nancausal symmetric FIR)
figure,subplot(2,1,1)
stem([-M:M],h);
title(['Impulse response h[n] of Savitzky-Golay filter of order N = ' num2str(N), ' and window size 2M+1 = ' , num2str(2*M+1)]);
subplot(2,1,2)
plot(linspace(-1,1,1024), abs(fftshift(fft(h,1024))));
title('Frequency response magnitude of h[n]');
আউটপুটটি হ'ল:
আশা করি এটি বিষয়টি পরিষ্কার করে দিয়েছে।