Matlab Filtereleme örneği
Yine kodları matlab html üreticisi üretti. Üzerini seçerek kodları okuyabilirsiniz.
Burada filter1.mat dosyasını "filter designer" aracıyla ürettim. Elle yapmak mümkün fakat bu elle yaptıklarımızı otomatikleştirmek zaman kazandırıyor ve ne yaptığını farkına varıyorsun.fs=1000; t=0:1/fs:1; y1=sin(2*pi*t*50); y2=sin(2*pi*t*100); modulated=y1.*y2; figure('Name','Orjinal Signal and fft') subplot(3,1,1); hold on; plot(t,modulated) title('signal'); ylabel('amplitude'); xlabel('zaman sn') % 2 order = 10; fcutlow = 100; fcuthigh = 200; [b,a] = butter(order,[fcutlow,fcuthigh]/(fs/2), 'bandpass'); filtered = filter(b,a,modulated); plot(t,filtered) % 3 load filter1.mat filtered_kaiser = filter(filter1,modulated); plot(t,filtered_kaiser) hold off; legend('orjinal modulated','butter filtered','kaiser filtered(order=10, beta=0.3)'); subplot(3,1,2); hold on; L=length(t); sfft=fft(modulated); sfft_abs=abs(sfft/L); sfft_abs = sfft_abs(1:fix(L/2)+1); sfft_abs(2:end-1) = 2*sfft_abs(2:end-1); f = fs*(0:(L/2))/L; % fft vektörü plot(f,sfft_abs) title('fft'); ylabel('amplitude birim'); xlabel('frequency Hz') % 2 L=length(t); sfft=fft(filtered); sfft_abs=abs(sfft/L); sfft_abs = sfft_abs(1:fix(L/2)+1); sfft_abs(2:end-1) = 2*sfft_abs(2:end-1); f = fs*(0:(L/2))/L; % fft vektörü plot(f,sfft_abs) % 3 L=length(t); sfft_kaiser=fft(filtered_kaiser); sfft_abs_kaiser=abs(sfft_kaiser/L); sfft_abs_kaiser = sfft_abs_kaiser(1:fix(L/2)+1); sfft_abs_kaiser(2:end-1) = 2*sfft_abs_kaiser(2:end-1); f = fs*(0:(L/2))/L; % fft vektörü plot(f,sfft_abs_kaiser) hold off; legend('orjinal modulated','butter filtered','kaiser filtered(order=10, beta=0.3)'); subplot(3,1,3); hold on plot(f,10*log10(sfft_abs)) title('spectrum'); ylabel('DB'); xlabel('frequency Hz') % 2 plot(f,10*log10(sfft_abs)) % 3 plot(f,10*log10(sfft_abs_kaiser)) hold off; legend('orjinal modulated','butter filtered','kaiser filtered(order=10, beta=0.3)');
Filter designer aracı ile ürettiğim filtreleri birçok farklı platforma aktarabiliyorum ve fixed point designer ile double kullanmayarak minimum ihtiyaçlara göre düzenliyorum ve az hafıza kullanıyorum. Oldukça hızlandırıyor.
Yorumlar
Yorum Gönder