Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all; close all;
- dx = (2*pi)/100;
- x = 0 : dx : 4*pi;
- N = length(x);
- y = sin(x); yr = cos(x);
- d1 = [ -1 1]; d1=fliplr(d1); N1=length(d1);
- d2 = [ -1 0 1]; d2=fliplr(d2); N2=length(d2);
- d3 = 1/12*[1 -8 0 8 -1]; d3=fliplr(d3); N3=length(d3);
- SNR = [240, 80, 50, 30, 20 ];
- for k = 1 : length(SNR)
- k, SNR(k),
- yn = awgn(y,SNR(k));
- yd1 = conv(yn, d1 ) / dx;
- yd2 = conv(yn, d2 ) / (2*dx);
- yd3 = conv(yn, d3 ) / dx;
- figure
- plot( x,yr,'k', ...
- x(1:N-1)+pi/100,yd1(N1:end-N1+1),'r' ...
- ,x(2:N-1),yd2(N2:end-N2+1),'g', ...
- x(3:N-2),yd3(N3:end-N3+1),'b');
- end
- x1 = zeros(1,100);
- x2 = zeros(1,99);
- for i=1:100
- x1(i) = x(i);
- end
- for i=1:99
- x2(i) = x(i);
- end
- y1 = sin(x);
- y1 = awgn(y1, 20);
- y2 = cos(x);
- P = zeros(1,101);
- wstecz = zeros(1,100);
- centralny = zeros(1,99);
- for i=1:100
- wstecz(i) = (y1(i+1)-y1(i))/(x(i+1)-x(i));
- end
- for i=2:100
- centralny(i-1) = (y1(i+1)-y1(i-1))/(x(i+1)-x(i-1));
- end
- fir = firls(4, [0 0.5 0.7 1], [0 0.5*pi 0 0], 'differentiator');
- filtr = filter(fir, 1, y1);
- plot(x,y2,'r', x1,wstecz,'b', x2,centralny,'g');
- %plot();
- %plot(x2,centralny,'g');
- MM = [10,25,50,100];
- dx = (2*pi)/200;
- x = 0 : dx : 8*pi;
- N = length(x);
- y = sin(x); yr = cos(x);
- for k = 1 : length(MM)
- k, MM(k)
- %yn=y;
- yn = awgn(y,20);
- % zaszumienie
- M=MM(k);
- m=-M:1:M;
- h = cos(pi*m)./m;
- h(M+1)=0; % odp. impulsowa filtru r�nicz.
- w = blackman(2*M+1)';
- h = h .* w; % opcjonalne wyg�adzenie brzeg�w
- yd4 = conv(yn, h)/dx; % operacja splotu (filtracji)
- figure
- plot(x,yn,'b', x,yr,'k',x(M+1:N-M),yd4(2*M+1:end-2*M),'r'); grid
- %plot(x,yn,'b', x,yr,'k',x,yd4,'r'); grid
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement