Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- clc
- %pod a) pomocu Parks-McClellanovog algoritma FIR NF filtar
- %Ucestanost odabiranja u sistemu
- fsr = 11200;
- %Specifikacija NF filtra
- fp = 3500;
- fs = 4000;
- ap = 1;
- as = 40;
- %Projektovanje NF filtra
- f = [fp fs];
- a = [1 0];
- dev = [(10^(ap/20)-1)/(10^(ap/20)+1) 10^(-as/20)];%odredjivanje dozvoljenih odstupanja za svaki opseg
- [n, fo, ao, w] = firpmord (f, a, dev, fsr);
- b_nf = firpm (n, fo, ao, w);
- %pod b) pomocu Parks-McClellanovog algoritma FIR VF filtar
- %Specifikacija VF filtra
- fp = 2500;
- fs = 1500;
- ap = 1;
- as = 40;
- %Projektovanje VF filtra
- f = [fs fp];
- a = [0 1];
- dev = [10^(-as/20) (10^(ap/20)-1)/(10^(ap/20)+1)];%odredjivanje dozvoljenih odstupanja za svaki opseg
- [n, fo, ao, w] = firpmord (f, a, dev, fsr);
- b_vf = firpm (n, fo, ao, w);
- %pod c) pomocu Parks-McClellanovog algoritma FIR PO filtar
- %Specifikacija PO filtra
- fp1 = 1500;
- fp2 = 2500;
- fs1 = 1200;
- fs2 = 2800;
- ap = 1;
- as1 = 40;
- as2 = 40;
- %Projektovanje PO filtra
- f = [fs1 fp1 fp2 fs2];
- a = [0 1 0];
- %odredjivanje dozvoljenih odstupanja za svaki opseg
- dev = [10^(-as1/20) (10^(ap/20)-1)/(10^(ap/20)+1) 10^(-as2/20)];
- [n, fo, ao, w] = firpmord (f, a, dev, fsr);
- b_po = firpm (n, fo, ao, w);
- %pod d) pomocu Parks-McClellanovog algoritma FIR NO filtar
- %Specifikacija NO filtra
- fp1 = 3500;
- fp2 = 4500;
- fs1 = 3800;
- fs2 = 4100;
- ap1 = 1;
- ap2 = 1;
- as = 40;
- %Projektovanje NO filtra
- f = [fp1 fs1 fs2 fp2];
- a = [1 0 1];
- %odredjivanje dozvoljenih odstupanja za svaki opseg
- dev = [(10^(ap1/20)-1)/(10^(ap1/20)+1) 10^(-as/20) (10^(ap2/20)-1)/(10^(ap2/20)+1)];
- [n, fo, ao, w] = firpmord (f, a, dev, fsr);
- b_no = firpm (n, fo, ao, w);
- %Odredjivanje amplitudskih karakteristika
- N_fft = 1024;
- B_nf = fft (b_nf, N_fft);
- B_vf = fft (b_vf, N_fft);
- B_po = fft (b_po, N_fft);
- B_no = fft (b_no, N_fft);
- Ba_nf = abs(B_nf(1:N_fft/2));
- Ba_vf = abs(B_vf(1:N_fft/2));
- Ba_po = abs(B_po(1:N_fft/2));
- Ba_no = abs(B_no(1:N_fft/2));
- Bb_nf = angle(B_nf(1:N_fft/2));
- Bb_vf = angle(B_vf(1:N_fft/2));
- Bb_po = angle(B_po(1:N_fft/2));
- Bb_no = angle(B_no(1:N_fft/2));
- %crtanje amplitudskih karakteristika na jednom grafiku
- n = 0:N_fft/2-1;
- w = n*fsr/(2*(N_fft/2-1));
- % pod a) NF
- figure;
- subplot (2, 1, 1); plot (w, Ba_nf); axis ([0 fsr/2 0 1.2]);
- title ('Amplitudska k-ka NF filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- subplot (2, 1, 2); plot (w, Bb_nf);
- title ('Fazna k-ka NF filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- % pod b) VF
- figure;
- subplot (2, 1, 1); plot (w, Ba_vf); axis ([0 fsr/2 0 1.2]);
- title ('Amplitudska k-ka VF filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- subplot (2, 1, 2); plot (w, Bb_vf);
- title ('Fazna k-ka VF filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- % pod c) PO
- figure;
- subplot (2, 1, 1); plot (w, Ba_po); axis ([0 fsr/2 0 1.2]);
- title ('Amplitudska k-ka PO filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- subplot (2, 1, 2); plot (w, Bb_po);
- title ('Fazna k-ka PO filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- % pod d) NO
- figure;
- subplot (2, 1, 1); plot (w, Ba_no); axis ([0 fsr/2 0 1.2]);
- title ('Amplitudska k-ka NO filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- subplot (2, 1, 2); plot (w, Bb_no);
- title ('Fazna k-ka NO filtra projektovanog koriscenjem Parks-McClellan algoritma', 'FontSize', 14);
- %ulaz
- x = cos(2*pi*1000/11200*n) + cos(2*pi*3000/11200*n) + cos(2*pi*5000/11200*n);
- figure;
- subplot (3, 2, 1),stem (n, x),title('Pobuda');
- y1 = conv(x,b_nf);
- subplot (3, 2, 2),stem (0:length(y1)-1, y1),title('Odziv,kroz NF filtar');
- y2 = conv(x,b_vf);
- subplot (3, 2, 3),stem (0:length(y2)-1, y2),title('Odziv,kroz VF filtar');
- y3 = conv(x,b_po);
- subplot (3, 2, 4),stem (0:length(y3)-1, y3),title('Odziv,kroz PO filtar');
- y4 = conv(x,b_no);
- subplot (3, 2, 5),stem (0:length(y4)-1, y4),title('Odziv,kroz NO filtar');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement