Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear()
- clc()
- xdel(winsid()) //zamkniecie okien
- fs=1024; //czestotliwosc probkowania
- N=1024; //liczba probek
- dt=1/fs; //odstep probkowania
- T=N*dt; //czas obserwacji sygnalu
- t=0:dt:T-dt; //wekot czasu
- df=fs/N;
- f=0:df:(fs-df);
- //parametry syganlow
- A1=20;
- f1=8;
- A2=10;
- f2=32;
- A3=5;
- f3=128;
- //Parametry filtru dolnoprzepustowego:
- order=6; //rząd filtru
- fcutoff=60; //częstotliwość graniczna [Hz]
- fcutoffn=(2*fcutoff)/fs; //znormalizowana częstotliwość graniczna [π rad/próbkę]
- //Sygnał modulujący
- x1=A1*sin(2*%pi*f1*t);
- x2=A2*sin(2*%pi*f2*t);
- x3=A3*sin(2*%pi*f3*t);
- x=x1+x2+x3;
- X=fft(x);
- fig0=scf();
- subplot(311);
- plot(t,x);
- xlabel('Czas');
- ylabel('Amplituda');
- title('Sygnał modulujący (informacyjny)');
- xgrid;
- subplot(312);
- plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(X(N/2+1:N)), abs(X(1:N/2))]/N); //przeskalowanie osi
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Widmo amplitudowe dwustronne');
- xgrid;
- subplot(313);
- plot(f(1:32),abs(X(1:32))/fs);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Fragment widma amplitudowego dwustronnego');
- xgrid;
- //Sygnał modulowany
- y=60*cos(2*%pi*f3*4*t);
- Y=fft(y);
- fig1=scf();
- subplot(311);
- plot(t,y);
- xlabel('Czas');
- ylabel('Amplituda');
- title('Sygnał modulowany (nośny)');
- xgrid;
- subplot(312);
- plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(Y(N/2+1:N)), abs(Y(1:N/2))]/N);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Widmo amplitudowe dwustronne');
- xgrid;
- subplot(313);
- plot(f(48:80),abs(Y(48:80))/fs);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Fragment widma amplitudowego dwustronnego');
- xgrid;
- //DWUWSTĘGOWA MODULACJA SYGNAŁU
- z=x.*y; // sygnał zmodulowany
- Z=fft(z);
- fig2=scf();
- subplot(311);
- plot(t,z);
- xlabel('Czas');
- ylabel('Amplituda');
- title('Sygnał zmodulowany');
- xgrid;
- subplot(312);
- plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(Z(N/2+1:N)), abs(Z(1:N/2))]/N);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Widmo amplitudowe dwustronne');
- xgrid;
- subplot(313);
- plot(f(40:100),abs(Z(40:100))/fs);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Fragment widma amplitudowego dwustronnego');
- xgrid;
- //DEMODULACJA SYGNAŁU
- demod=z.*y; //sygnał zdemodulowany
- //projektowanie filtru
- hz=iir(order,'lp','butt',[fcutoffn/2,0],[.1 .1]); //filtr dolnoprzepustowy Butterwortha
- // Odpowiedź częstotliwościowa filtru
- [frq,repf]=repfreq(hz,0:0.001:0.5);
- fig3=scf();
- subplot(211);
- plot(t,demod);
- xlabel('Czas');
- ylabel('Amplituda');
- title('Sygnał po demodulacji przed filtracją');
- xgrid;
- subplot(212);
- plot2d(fs*frq,abs(repf),rect=[0,0,fs/2,max(abs(repf))]);
- xlabel('Częstotliwość [Hz]');
- ylabel('Amplituda');
- title('Charakterystyka częstotliwościowa filtru dolnopasmowego');
- xgrid;
- //filtracja
- demodfiltered = flts(demod,hz); //sygnał po demodulacji i filtracji
- demodfiltered=2*demodfiltered/(A2^2);
- fig4=scf();
- subplot(311);
- plot(t,demodfiltered);
- xlabel('Czas');
- ylabel('Amplituda');
- title('Sygnał po demodulacji i filtracji');
- xgrid;
- D=fft(demodfiltered);
- subplot(312);
- plot([f(N/2+1:N)-fs,f(1:N/2)],[abs(D(N/2+1:N)), abs(D(1:N/2))]/N);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Widmo amplitudowe dwustronne sygnału po demodulacji');
- xgrid;
- subplot(313);
- plot(f(1:32),abs(D(1:32))/fs);
- xlabel('Częstotliwość');
- ylabel('Amplituda');
- title('Fragment widma amplitudowego dwustronnego');
- xgrid;
- fig5=scf();
- plot(t,x,'r'), plot(t,demodfiltered,'b');
- xlabel('Czas');
- ylabel('Amplituda');
- title('Sygnał modulujący i zdemodulowany');
- xgrid;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement