Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Długość pojedynczej serii pomiarowej
- nser=1000
- % Dopuszczalny błąd synchronizacji (zakładamy rozkład równomierny)
- njitter=10
- % Liczba uśrednianych realizacji
- nreal=10000
- % Odchylenie standardowe szumu zakłócającego
- nstd=20
- % wygenerujmy sygnał testowy
- % Będzie on złożony z trzech impulsów prostokątnych
- x=zeros(1,600);
- x(1:100)=1;
- x(101:200)=-0.6;
- x(500:510)=2;
- % tego nie potrzebujemy - zamiast tego :
- %tutaj trzeba pobrac sygnal - jest zapisany w zmiennej sig
- % usuńmy składową stałą
- x=sig-mean(sig);
- % wyświetlamy sygnał oryginalny po rozszerzeniu do "nser"
- % i przesunięciu do 100-nej próbki
- xpl=zeros(1,nser);
- xpl(100:699)=x;
- subplot(311)
- plot(xpl)
- grid on
- title("Odpowiedz ukladu")
- % Teraz stworzymy tablicę symulującą kolejne wyniki pomiaru
- % Najpierw wypełniamy ją szumem białym o założonym odch. std.
- pomiar=sqrt(nstd*12)*(rand(nreal,nser)-0.5);
- % Teraz dodajemy nasz sygnał do kolejnych realizacji
- for i=1:nreal
- % Zakładamy, że normalnie powinien od rozpocząć się od 100-nej
- % próbki, jednak dopuszczamy opóżnienie o rozkładzie równomiernym
- % w zakresie 0 do njitter
- nstart=100;
- if njitter>0
- nstart+=randi(njitter+1)-1;
- end
- pomiar(i,nstart+(0:599))+=x;
- end
- % Wyświetlamy pierwszą realizację, żeby było widać jak sygnał ukryty jest w szumie
- subplot(312)
- plot(pomiar(1,:))
- grid on
- title("Odpowiedz ukryta w szumie")
- % Uśredniamy - używamy szybkich operacji macierzowych
- xsr=mean(pomiar);
- % Obliczamy odchylenie standardowe średniej (dzieląc odchylenie standardowe danych przez
- % pierwiastek z liczby uśrednień)
- xsrstd=std(pomiar)/sqrt(nreal);
- subplot(313)
- plot(1:nser,xsr,'k',1:nser,xsr+xsrstd,'y',1:nser,xsr-xsrstd,'b')
- grid on
- title("Odpowiedz wydobyta przez usrednianie realizacji")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement