Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %ZADANIE-1
- clear;
- N=3100; A=2 ; fx=31 ; fp=3100 ; %Parametry sygnału
- dt=1/fp; %Okres próbkowania
- t=dt*(0:N-1); %Wektor chwil próbkowania
- x=A*sin(2*pi*fx*t); %Sygnał
- plot(t,x,'m'); grid; title('Sygnał x(t)'); xlabel('czas [s]'); pause
- % Oblicz wartości parametrów sygnału
- x_sred1=mean(x), x_sred2=sum(x)/N %wartość średnia
- x_max=max(x) %wartość max
- x_min=min(x) %wartość min
- x_std1=std(x), x_std2=sqrt(sum((x-mean(x)).^2)/(N-1)) %odchylenie standardowe
- x_e=dt*sum(x.^2) %energia
- x_moc=(1/N)*sum(x.^2) %moc średnia
- x_sku=sqrt(x_moc) %wartość skuteczna
- % Oblicz i narysuj funkcję autokorelacji R1, R2, R3 sygnału x(n)
- R1=xcorr(x); %nieunormowana
- R2=xcorr(x,'biased'); %unormowaną przez długość /N
- R3=xcorr(x,'unbiased'); %unormowaną przez /(N-abs(k))
- tR=[-fliplr(t) t(2:N)]; plot(tR,R1); grid; title('Autokorelacja'); pause
- %Teraz R3
- %for k=0:N
- % R(k+1)=sum( x(1:N-k).*x(1+k:N))/(N-k);
- %end
- %R=[fliplr(R) R(2:N-1)];
- %plot(tR,R);grid;pause
- % Narysuj część rzeczywistą, urojoną i moduł tych współczynników
- X=fft(x); %szybka dyskretna transformacja Fouriera
- df=1/(N*dt); %częstotliwość podstawowa f0=df=1/T=1/(N*dt)
- f=df*(0:N-1); %kolejne częstotliwości
- subplot(311);plot(f,real(X)); grid; title('Re'); xlabel('Hz'); pause
- subplot(312);plot(f,imag(X)); grid; title('Im'); xlabel('Hz'); pause
- subplot(313);plot(f,abs(X)); grid; title('abs'); xlabel('Hz'); pause
- clf;
- plot(f(1:N/2+1),abs(X(1:N/2+1))/(N/2)); grid; title('Po skalowaniu'); pause
- % Synteza sygnału na podstawie współczynników jego szeregu Fouriera i
- % porównanie z oryginałem
- xs=ifft(X);
- plot(t,real(x-xs)); grid; title('Różnica'); pause
- %Zadanie-2
- s1=rand(1,N); s2=randn(1,N);
- s= s2; %wybór szumu
- R=xcorr(s,'unbiased');
- plot(tR,R); grid; title('Autokorelacja szumu'); pause
- C=xcov(s);
- plot(tR,C); grid; title('Autokowariancja szumu'); pause
- Hs=hist(s,100); %podzielić oś [xmin,xmax] na 100 podprzedziałów
- plot(Hs); title('Histogram szumu'); pause
- S=fft(s);
- plot(f, abs(S)); grid; title('Widmo szumu'); xlabel('f [Hz]'); pause
- [Pss, fss]= psd(s,N/10,fp); %uśrednione widma odcinków sygnału o dł N/10
- plot(fss,Pss); grid; title('Widmo uśrednione'); xlabel('f [Hz]'); pause
- %Zadanie-3
- s = s2 + x;
- plot(t,s, 'm'); grid; title('Suma sygnalow 1 i 2'); pause
- R=xcorr(s, 'unbiased');
- plot(tR,R); grid; title('Autokorelacja sygnalow 1 i 2'); pause
- C=xcov(s);
- plot(tR,C); grid; title('Autokowariancja sygnalow 1 i 2'); pause
- Hs=hist(s,100);
- plot(Hs); title('Histogram sygnalow 1 i 2'); pause
- %Zadanie-4
- s=s2 + x + (2*x);
- plot(t,s, 'm'); grid; title('Suma sygnalow z dodatkowa sinusoida'); pause
- R=xcorr(s, 'unbiased');
- plot(tR,R); grid; title('Autokorelacja sygnalow z dodatkowa sinusoida'); pause
- C=xcov(s);
- plot(tR,C); grid; title('Autokowariancja sygnalow z dodatkowa sinusoida'); pause
- Hs=hist(s,100);
- plot(Hs); title('Histogram sygnalow z dodatkowa sinusoida'); pause
- %Zadanie-5
- ampl=hamming(N)'; %przykładowa funkcja modulująca amplitudę
- y1=ampl.*x;
- plot(t,y1); grid; title('Sygnał z modulacją amplitudy'); pause
- ampl=exp(-10*t); %eksponencjalna funkcja obwiedni amplitudy
- y2=ampl.*x;
- plot(t,y2); grid; title('Sygnał z modulacją amplitudy'); pause
- %Zadanie-6
- fx= 31; alfa=10 %wybierz, zaczynając od małych wartości; potem obserwuj
- y3=sin(2*pi*(fx*t+0.5*alfa*t.^2));
- plot(t,y3); grid; title('Sygnał z liniową modulacją częstotliwości'); pause
- fx= 31; fm= 10; df= 10; % częstotliwości - nośna, modulująca, głębokość modulacji
- y4=sin(2*pi*(fx*t+df*sin(2*pi*fm*t)/(2*pi*fm)));
- plot(t,y4); grid; title('Sygnał z sinusoidalną modulacją częstotliwości'); pause
- <!DOCTYPE html>
- <html lang="pl">
- <head>
- <title>Systemy Multimedialne: treść zadania</title>
- <link rel="stylesheet" type="text/css" href="../styl.css" />
- <link rel="stylesheet" type="text/css" href="../select-topic-2.css" />
- </head>
- <body onselectstart="return false;">
- <div id="topic-header">
- <table><tr>
- <td>Systemy Multimedialne</td>
- <td style="text-align: center; color: silver;">192.168.0.153</td>
- <td style="text-align: right;">Semestr 6 Grupa 2 Sekcja 1</td>
- </tr></table>
- </div><hr class="shadow" />
- <div id="topic-content">
- <h1>Wprowadzenie do metod filtracji dźwięku (I)</h1>
- <img src="img/sm01-title.png" style="float: left; margin: 2pt 10pt 4pt 0; float: right;" alt="sm"/>
- <h3>1. Generacja próbek</h3>
- <p>
- Wygeneruj N próbek sygnału sinusoidalnego x(t)=Asin(2*pi*fx*t) o
- amplitudzie A i częstotliwości fx, spróbkowanego z częstotliwością fp.
- Narysuj ten sygnał.
- Częstotliwość sygnału, amplitudę oraz liczbę próbek należy dobrać według schematu: </br>
- <ul>
- <li>fx= (numer_sekcji) + 30;</li>
- <li>A= 1 + (numer_sekcji) mod 4;</li>
- <li>N= [czas trwania sygnału 1s.];</li>
- </ul>
- </p>
- <pre><samp>
- clear;
- N= ; A= ; fx= ; fp= ; %Parametry sygnału
- dt=1/fp; %Okres próbkowania
- t=dt*(0:N-1); %Wektor chwil próbkowania
- x=A*sin(2*pi*fx*t); %Sygnał
- plot(t,x,'m'); grid; title('Sygnał x(t)'); xlabel('czas [s]'); pause
- % Oblicz wartości parametrów sygnału
- x_sred1=mean(x), x_sred2=sum(x)/N %wartość średnia
- x_max=max(x) %wartość max
- x_min=min(x) %wartość min
- x_std1=std(x), x_std2=sqrt(sum((x-mean(x)).^2)/(N-1)) %odchylenie standardowe
- x_e=dt*sum(x.^2) %energia
- x_moc=(1/N)*sum(x.^2) %moc średnia
- x_sku=sqrt(x_moc) %wartość skuteczna
- % Oblicz i narysuj funkcję autokorelacji R1, R2, R3 sygnału x(n)
- R1=xcorr(x); %nieunormowana
- R2=xcorr(x,'biased'); %unormowaną przez długość /N
- R3=xcorr(x,'unbiased'); %unormowaną przez /(N-abs(k))
- tR=[-fliplr(t) t(2:N)]; plot(tR,R1); grid; title('Autokorelacja'); pause
- %Teraz R3
- %for k=0:N
- % R(k+1)=sum( x(1:N-k).*x(1+k:N))/(N-k);
- %end
- %R=[fliplr(R) R(2:N-1)];
- %plot(tR,R);grid;pause
- % Oblicz współczynniki zespolonego szeregu Fouriera dla tego sygnału.
- % Narysuj część rzeczywistą, urojoną i moduł tych współczynników
- X=fft(x); %szybka dyskretna transformacja Fouriera
- df=1/(N*dt); %częstotliwość podstawowa f0=df=1/T=1/(N*dt)
- f=df*(0:N-1); %kolejne częstotliwości
- subplot(311);plot(f,real(X)); grid; title('Re'); xlabel('Hz'); pause
- subplot(312);plot(f,imag(X)); grid; title('Im'); xlabel('Hz'); pause
- subplot(313);plot(f,abs(X)); grid; title('abs'); xlabel('Hz'); pause
- clf;
- plot(f(1:N/2+1),abs(X(1:N/2+1))/(N/2)); grid; title('Po skalowaniu'); pause
- % Synteza sygnału na podstawie współczynników jego szeregu Fouriera i
- % porównanie z oryginałem
- xs=ifft(X);
- plot(t,real(x-xs)); grid; title('Różnica'); pause
- </samp></pre>
- <h3>2. Generacja próbek i analiza sygnału</h3>
- <p>
- Wygeneruj N próbek szumu o rozkładzie równomiernym i normalnym.
- Wyznacz dla nich funkcję autokorelacji, autokowariancji, histogram,
- szereg Fouriera i periodogram
- </p>
- <pre><samp>
- s1=rand(1,N); s2=randn(1,N);
- s= ; %wybór szumu
- R=xcorr(s,'unbiased');
- plot(tR,R); grid; title('Autokorelacja szumu'); pause
- C=xcov(s);
- plot(tR,C); grid; title('Autokowariancja szumu'); pause
- Hs=hist(s,100); %podzielić oś [xmin,xmax] na 100 podprzedziałów
- plot(Hs); title('Histogram szumu'); pause
- S=fft(s);
- plot(f, abs(S)); grid; title('Widmo szumu'); xlabel('f [Hz]'); pause
- [Pss, fss]= psd(s,N/10,fp); %uśrednione widma odcinków sygnału o dł N/10
- plot(fss,Pss); grid; title('Widmo uśrednione'); xlabel('f [Hz]'); pause
- </samp></pre>
- <h3>3. Sumowanie oraz analiza sygnałów</h3>
- <p>
- Dodaj sygnały z pkt 1 i 2. Wyznacz i narysuj funkcję autokorelacji,
- autokowariancji i histogram sygnału sumarycznego.
- </p>
- <h3>4. Sumowanie oraz analiza sygnałów cd.</h3>
- <p>
- Powtórz operacje z pkt 3. po dodaniu do sygnału 1+2 jeszcze jednej
- sinusoidy o zadanej częstotliwości f2x
- </p>
- <h3>5. Modulacja AM</h3>
- <p>
- Zmoduluj w amplitudzie sygnał sinusoidalny z pkt 1.
- </p>
- <samp><pre>
- ampl=hamming(N)'; %przykładowa funkcja modulująca amplitudę
- y1=ampl.*x;
- plot(t,y1); grid; title('Sygnał z modulacją amplitudy'); pause
- ampl=exp(-10*t); %eksponencjalna funkcja obwiedni amplitudy
- y2=ampl.*x;
- plot(t,y2); grid; title('Sygnał z modulacją amplitudy'); pause
- </samp></pre>
- <h3>6. Modulacja FM</h3>
- <p>
- Wygeneruj sygnał sinusoidalny z liniową modulacja częstotliwości
- (w=wx+alfat) oraz z sinusoidalną modulacją częstotliwości (w=wx+sin(wmt))
- </p>
- <samp><pre>
- fx= ; alfa=10 %wybierz, zaczynając od małych wartości; potem obserwuj
- y3=sin(2*pi*(fx*t+0.5*alfa*t.^2));
- plot(t,y3); grid; title('Sygnał z liniową modulacją częstotliwości'); pause
- fx= ; fm= ; df= ; % częstotliwości - nośna, modulująca, głębokość modulacji
- y4=sin(2*pi*(fx*t+df*sin(2*pi*fm*t)/(2*pi*fm)));
- plot(t,y4); grid; title('Sygnał z sinusoidalną modulacją częstotliwości'); pause
- </samp></pre>
- <h3>7. Składanie sygnałów</h3>
- <p>
- Sklej dwa sygnały.
- </p>
- <samp><pre>
- y5=[y1 y4];
- plot(y5); grid; title('sygnał sklejony'); pause
- </samp></pre>
- <h3>8. Splot sygnałów</h3>
- <p>
- Spleć ze sobą dwa sygnały, czyli dokonaj filtracji jednego z nich
- przez drugi
- </p>
- <samp><pre>
- T= ; N= ; %czas trwania sygnałów, liczba próbek
- dt=T/N;
- t=dt*(0:N); %okres próbkowania, kolejne chwile czasowe
- f1= ; f2= ; % częstotliwości sinusoid f1 jak w punkcie 1, f2 = 2.5*f1;
- x=sin(2*pi*f1*t)+0.5*sin(2*pi*f2*t); %sygnał filtrowany: zawiera składowe o częstotliwości f1 i f2
- ffilt= ; % częstotliwość sygnału filtrującego
- h=sin(2*pi*ffilt*t).*exp(-4*t); %sygnał filtrujący
- y=conv(x,h) %operacja filtracji, splot
- subplot(311);plot(t,x); grid; title('Sygnał WE x(t)'); pause
- subplot(312);plot(t,h); grid; title('Odp impulsowa'); pause
- subplot(313);plot(t,y(1:N+1)); grid; title('Sygnał WY'); pause
- </samp></pre>
- <h3>9. Kwantyzacja</h3>
- <p>
- Skwantuj sygnał x(t) z pkt.8
- </p>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement