Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %1. (17)Wczytanie sygnału i decymacja:
- [x,fp]=wavread('S1.wav');
- y=decimate(x,5);
- subplot(111);
- plot(y);
- %1**
- [x,fp]=audioread('cartoon008.wav'); %wczytuje plik
- y=decimate(x,5);
- subplot(331); plot(x); title('17-decymacja'); xlabel('t'); ylabel('A');
- %2. (18)Policzenie widma amplitudowego sygnału:
- Nf=1024;
- v=fft(x,Nf);
- w=abs(v);
- f=linspace(0,fp,Nf);
- subplot(212);
- plot(f,w);
- ylabel('czestotliwosc[Hz');
- %xlabe('modul widma');
- %****
- Nf=2^11;
- N21=Nf/2+1;
- w=fft(x,Nf) %x to sygnał
- v=abs(w);
- Nf=length(v);
- tf=linspace(0,Fs/2,N21); %Fs czestotliwosc probkowania
- plot(tf,v(1:N21));
- xlabel('czestotliwosc[Hz]')
- ylabel('modul widma')
- %*****
- Nf=1024
- v=fft(x,Nf);
- w=abs(v);
- f=linspace(0,fp,Nf);
- plot(f,w);
- %1****
- Nf=1024;
- v=fft(x,Nf); %fft dla syg x i liczbie probek=Nf
- f=linspace(0,fp,Nf); %wektor o Nf wartosciach podzielonych od 0 do fp
- subplot(332); plot(f,v); title('18-widmo amp'); xlabel('czestotliwosc'); ylabel('widmo');
- vv=abs(v);
- subplot(333); plot(f,vv); title('18A-modul widma'); xlabel('czestotliwosc'); ylabel('mod widma');
- %3. (19)Filtr fir o zadanej długości i f granicznej
- h=fir1( 51,[1400]);
- plot(h);
- freqz(h,1);
- y=filter(h,1,x);
- %1****
- h=fir1(51,[1400/(fp/2)],'low');
- q=fft(h,Nf);
- q1=abs(q);
- subplot(334);plot(f,q1); title('19-mod widma?'); xlabel('czestotliwosc'); ylabel('mod widma');
- figure(2); freqz(h,1); title('19');
- %4. (20)Filtracja i wyznaczenie modułu widma sygnału po filtracji
- h=fir1(21,[300/500]);
- plot(abs(fft(h(512))),'r')
- y=filter(h,1,x);
- plot(x)
- hold on
- %1****
- y=filter(h,1,x);
- rr=fft(y,Nf);
- ww=abs(rr);
- figure(1);
- subplot(335); plot(f,ww);
- title('20-mod widma');
- xlabel('czestotliwosc');
- ylabel('mod widma');
- %5. (21)Generacja sygnału o zadanej długości i częstotliwości
- fp=150; %próbkowanie
- t1=0:1/fp:2;
- f1=5;
- y1=sin(t1*2*pi*f1);
- t2=2:1/fp:4;
- f2=3.5;
- fi2=pi/4;
- y2=sin(t2*2*pi*f2+fi2);
- t3=4:1/fp:8;
- A3=1;
- y3=2*rand(1,601)-A3; %rozkład normalny szumu
- t4=8:1/fp:10;
- f4=5;
- fi4=pi/2;
- y4=sin(2*pi*f4*t4+fi4);
- y=[y1 y2 y3 y4];
- t=[t1 t2 t3 t4];
- plot(t,y);
- %*****
- fp=150;
- t1=0:1/fp:2;
- f1=5;
- y1=sin(t1*2*pi*f1);
- t2=2:1/fp:4;
- f2=3.5;
- fi2=pi/4;
- y2=sin(t2*2*pi*f2+fi2);
- t3=4:1/fp:8;
- A3=1;
- y3=2*rand(1,601)-A3;
- t4=8:1/fp:10;
- f4=5;
- fi4=pi/2;
- y4=sin(2*pi*f4*t4+fi4);
- y=[y1 y2 y3 y4];
- t=[t1 t2 t3 t4];
- plot(t,y);
- %1*****
- fp=150; %czestotliwosc probkowania
- t1=0:1/fp:2;
- f1=5;
- y1=sin(2*pi*f1*t1);
- t2=2:1/fp:4;
- f2=3.5;
- fi2=pi/4;
- y2=sin(2*pi*f2*t2+fi2);
- t3=4:1/fp:8;
- A3=1;
- y3=2*rand(1,601)-A3;
- t4=8:1/fp:10;
- f4=5;
- fi4=pi/2;
- y4=sin(2*pi*f4*t4+fi4);
- y=[y1 y2 y3 y4];
- t=[t1 t2 t3 t4];
- subplot(336); plot(t,y); title('21-zmienny syg'); xlabel('t'); ylabel('A');
- figure(3); plot(t,y); title('21-zmienny syg'); xlabel('t'); ylabel('A');
- %6. (22)Policzenie autokorelacji sygnału z 5tki z danym tau_max
- [r,T]=xcorr(x,400);
- plot(T,r);
- %1*****
- tau_max=400;
- [s,T]=xcorr(y,tau_max);
- figure(1);
- subplot(337); plot(T,s); title('22-autokorelacja'); xlabel('t'); ylabel('A');
- %7. (23)Korelacja sygnału z 5tki z zadanym sygnalem sinusoidalnym
- f7=5;
- fi7=pi;
- t7=0:1/fp:10;
- y7=sin(2*pi*f7+fi7);
- [r,T]=xcorr(y,y7,400);
- plot(T,r);
- %1****
- f7=5;
- fi7=0; %mozna pominac
- t7=0:1/fp:10;
- y7=sin(2*pi*f7*t7+fi7);
- [ss,TT]=xcorr(y,y7,tau_max);
- subplot(338), plot(TT,ss); title('22-korelacja'); xlabel('t'); ylabel('A')
- %Kod z zajęć
- % WIDMO AMPLITUDOWE SYGNAŁU W ZAKRESIE 0-FP
- N=200;
- fp=1000;
- t=0:1/fp:(N-1)/fp;
- %suma sinusow i szumu
- x=6*sin(2*pi*250*t)+3*sin(2*pi*350*t)+2*randn(1,N);
- subplot(211);
- plot(t,x)
- xlabel('czas[s]');
- ylabel('sygnał');
- %widmo
- Nf=1024;
- v=fft(x,Nf);%widmo zespolone
- w=abs(v);%;widmo amplitudowe
- f=linspace(0,fp,Nf); %generowanie osi czestotliwosci
- subplot(212);
- plot(f,w)
- xlabel('czestotliwosc[Hz]');
- ylabel('modul widma');
- %generowanie szumu
- x=rand(1,1000);
- plot(x);
- hold on
- x=randn(1,1000);
- plot(x,'r');
- x=rand(1,1000);
- %sygnał o zmiennej częstotliwości
- x=chirp(t,fo,t1,f1)
- %FFT
- y=fft(x);
- y=abs(abs(y);
- y=unurap(angle(y));
- y=real(y);
- y=imag(y);
- %Filtr FIR- skonczona odpowiedz impulsowa
- h=fir1(K,fg);
- h=fir(K,[fd fg]);
- h=fir1(K,fd,'high');
- %filtracja
- y=filter(h,1,x);
- %decymacja -zmiejszenie czestliwosci próbkowania
- [x,y]=sinus(1,2,200,0,2)
- plot(x,y);
- y=decimate(x,y)
- ny=...;
- plot(ny,y);
- %Histogram-jakie prawdopodobienstwo wystapienia sygnalu o danej
- %czestotliwosci
- sz=randn(1,1000);
- hist(sz,51)%51 liczba przedziałów(liczone ile probek wpada do hist)
- hist(x,101);
- %Autokorelacja mówi nam o zależności w obrębie jednego sygnału
- r=xcorr(x,tmax)
- [x,n]=sinus(1,2,2000,0,2);
- [r,t]=xcor(x);
- plot(t,r);
- [r,t]=xcorr(x,100);
- plot(t,r);
- %Korelacja wzajemna
- [r,t]=xcorr(x,y,tmax);
- [r,t]=xcorr(x,sz,200);
- plot(t,r);
- %Wave read
- [x,fs]=wavread('mbi04popis.wav');
- %N - nowa zmienna pomocnicza
- y=fft(x,fs);
- w=abs(y);
- f=linspace(0,fs/2,N);
- subplot(211)
- plot(f,w(1:N));grid on; zoom on;
- xlabel('Czestotliwość [Hz]');
- ylabel('Moduł widma');
- title('Wykres widma amplitudowego');
- %Inne kody
- fs=1000; %czest probkowania
- f1=10; %czest 1
- f2=100;%czest 2
- A=1; %amplituda
- N=1000; %liczba probek
- phi=pi/3; %przesuniecie
- t=0:1/fs:(N-1)/fs; %wektor czasu
- x1=A*sin(2*pi*f1*t);%+phi); %sygnal 1
- x2=A*sin(2*pi*f2*t); %sygnal 2
- x=x1+x2; %suma sygnalow
- szum=awgn(x,1); %szum
- subplot(211) % siatka wykresow na jednej figurze: x1,x2, x oraz x z szumem
- plot(t,x1)
- title 'sygnał 1'
- xlabel('czas [s]');
- ylabel('amplituda');
- legend x1
- subplot(212)
- plot(t,x2)
- title 'sygnał 2'
- xlabel('czas [s]');
- ylabel('amplituda');
- legend x2
- figure()
- subplot(211)
- plot(t,x1+x2)
- title 'sygnał 1 i 2'
- xlabel('czas [s]');
- ylabel('amplituda');
- legend x
- subplot(212)
- plot (t,x+szum);
- title 'suma sygnałów zaszumonich '
- xlabel('czas [s]');
- ylabel('amplituda');
- legend x_s
- X1=fft(x1);
- X2=fft(x2);
- X=fft(x);%+szum);
- p=unwrap(angle(X));% funkcja unwrap służy do usunięcia skoków fazy większych niż pi pomiędzy kolejnymi próbkami
- f=0:fs/N:fs - fs/N;
- figure
- subplot(311)
- plot(t,x)
- xlabel 'czas [s]'
- title 'sygnal x'
- subplot(312)
- plot(f,abs(fft(x)))
- xlabel 'czestotliwosc [Hz]'
- title 'widmo amplitudowe sygnalu'
- subplot(313)
- plot(f,p)
- xlabel 'czestotliwosc [Hz]'
- title 'widmo fazowe sygnalu'
- %%%
- fp = 1000; %czestotliwosc probkowania
- fs1 = 10; %czestotliwosc sygnalu #1
- fs2 = 100; %czestotliwosc sygnalu #2
- A = 1; %amplituda sygnalu
- N = 500; %liczba probek
- phi = pi/3; %przesuniecie fazowe
- t = 0:1/fp:(N-1)/fp;%wektor czasu
- % otrzymujemy wektory _x_ i _x1_
- x = A*sin(2*pi*fs1*t + phi);%nasz sygnal
- x1= A*sin(2*pi*fs2*t);%nasz sygnal
- figure(1)
- plot(t,x);
- xlabel('czas [s]');
- ylabel('amplituda');
- title(['wykres sin(x) dla f_s=' num2str(fs1) 'Hz @ f_p=' num2str(fp)...
- ' \phi=' num2str(phi*180/pi) '^\circ']);
- figure(2)
- plot(t,x,'r');
- grid
- hold on;% Zatrzymanie wykresu na figurze
- plot(t,x1,'k');
- legend('wykres 1','wykres 2')
- hold off; % uwolnienie wykresu
- subplot(311) % siatka wykresow na jednej figurze
- plot(t,x)
- legend x
- subplot(312)
- plot(t,x1)
- legend x1
- subplot(313)
- plot(t,x+x1)
- legend x1+x2
- x = fft(x);
- x1 = fft(x1);
- x2 = fft(x1+x);
- f = 0:fp/N:fp - fp/N;
- figure(3)
- subplot(211)
- plot(t,x1+x)
- xlabel 'czas [s]'
- title 'sygnal'
- subplot(212)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement