Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% Skrypt do wykreślania widma sygnału z pliku syg.mat
- Y= fft(syg);
- L=length(syg);
- Fs=500;
- P2 = abs(Y/L);
- P1 = P2(1:L/2+1);
- P1(2:end-1) = 2*P1(2:end-1);
- f = Fs*(0:(L/2))/L;
- figure(1)
- plot(f,P1)
- xlabel('f (Hz)')
- ylabel('|P1(f)|')
- xlim([0 250])
- ylim([0 0.06])
- title("Widmo sygnału z pliku syg")
- %% Projekt filtru butterwortha filtrowanie częstotliwości powyżej 100 Hz
- Wpb = 100/(0.5*Fs);
- Wsb = 130/(0.5*Fs);
- Rp = 3;
- Rs = 40;
- [nb,Wnb] = buttord(Wpb,Wsb,Rp,Rs)
- [bb,ab] = butter(nb,Wnb);
- Gb=tf(bb,ab,1/Fs)
- options = bodeoptions;
- options.FreqUnits = 'Hz';
- options.FreqScale = 'linear'
- figure(2)
- hold on
- bode(G_b,options, 'b')
- xlim([0 500])
- %% Filtr Czebyszewa
- Wpc = [49.99999 50.00001]/(0.5*Fs);
- Wsc = [49.75 50.25]/(0.5*Fs);
- [nc,Wnc] = cheb2ord(Wpc,Wsc,Rp,Rs)
- [bc,ac] = cheby2(nc,Rs,Wnc,'stop');
- Gc=tf(bc,ac,1/Fs)
- options = bodeoptions;
- options.FreqUnits = 'Hz';
- options.FreqScale = 'linear'
- figure(3)
- hold on
- bode(G_c,options, 'b')
- xlim([0 500])
- %% sygnał wejściowy przed odfiltrowaniem zakłóceń:
- figure(4)
- t=0:1:numel(syg)-1;
- plot(t,syg)
- title("Sygnał przed odfiltrowaniem zakłóceń")
- %% Filtrowanie sygnału:
- filtr1=filter(bb,ab,syg);
- filtr2=filter(bc,ac,filtr1);
- figure(5)
- plot(t,filtr2)
- xlim([0 3000])
- title("Sygnał po odfiltrowaniu zakłóceń")
- %% widmo sygnału po odfiltrowaniu zakłóceń
- Y2= fft(filtr2);
- L2=length(filtr2);
- P22 = abs(Y2/L2);
- P12 = P22(1:L/2+1);
- P12(2:end-1) = 2*P12(2:end-1);f2 = Fs*(0:(L2/2))/L2;
- figure(6)
- plot(f2,P12)
- xlabel('f (Hz)')
- ylabel('|P1(f)|')
- xlim([0 250])
- ylim([0 0.06])
- title("Widmo sygnału po odfiltrowaniu zakłóceń")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement