Advertisement
worms005

PPS kolokwium

Nov 29th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.05 KB | None | 0 0
  1. %1. (17)Wczytanie sygnału i decymacja:
  2. [x,fp]=wavread('S1.wav');
  3. y=decimate(x,5);
  4. subplot(111);
  5. plot(y);
  6.  
  7. %2. (18)Policzenie widma amplitudowego sygnału:
  8. Nf=1024;
  9. v=fft(x,Nf);
  10. w=abs(v);
  11. f=linspace(0,fp,Nf);
  12. subplot(212);
  13. plot(f,w);
  14. ylabel('czestotliwosc[Hz');
  15. %xlabe('modul widma');
  16.  
  17. Nf=2^11;
  18. N21=Nf/2+1;
  19. w=fft(x,Nf) %x to sygnał
  20. v=abs(w);
  21. Nf=length(v);
  22. tf=linspace(0,Fs/2,N21); %Fs czestotliwosc probkowania
  23. plot(tf,v(1:N21));
  24. xlabel('czestotliwosc[Hz]')
  25. ylabel('modul widma')
  26.  
  27.  
  28. %3. (19)Filtr fir o zadanej długości i f granicznej
  29. h=fir1( 51,[1400]);
  30. plot(h);
  31. freqz(h,1);
  32. y=filter(h,1,x);
  33.  
  34.  
  35. %4. (20)Filtracja i wyznaczenie modułu widma sygnału po filtracji
  36.  
  37. h=fir1(21,[300/500]);
  38. plot(abs(fft(h(512))),'r')
  39. y=filter(h,1,x);
  40. plot(x)
  41. hold on
  42.  
  43.  
  44.  
  45.  
  46.  
  47. %5. (21)Generacja sygnału o zadanej długości i częstotliwości
  48. fp=150; %próbkowanie
  49. t1=0:1/fp:2;
  50. f1=5;
  51. y1=sin(t1*2*pi*f1);
  52. t2=2:1/fp:4;
  53. f2=3.5;
  54. fi2=pi/4;
  55. y2=sin(t2*2*pi*f2+fi2);
  56. t3=4:1/fp:8;
  57. A3=1;
  58. y3=2*rand(1,601)-A3; %rozkład normalny szumu
  59. t4=8:1/fp:10;
  60. f4=5;
  61. fi4=pi/2;
  62. y4=sin(2*pi*f4*t4+fi4);
  63. y=[y1 y2 y3 y4];
  64. t=[t1 t2 t3 t4];
  65. plot(t,y);
  66.  
  67. %6. (22)Policzenie autokorelacji sygnału z 5tki z danym tau_max
  68. [r,T]=xcorr(x,400);
  69. plot(T,r);
  70.  
  71. %7. (23)Korelacja sygnału z 5tki z zadanym sygnalem sinusoidalnym
  72. f7=5;
  73. fi7=pi;
  74. t7=0:1/fp:10;
  75. y7=sin(2*pi*f7+fi7);
  76. [r,T]=xcorr(y,y7,400);
  77. plot(T,r);
  78.  
  79.  
  80. %Kod z zajęć
  81. % WIDMO AMPLITUDOWE SYGNAŁU W ZAKRESIE 0-FP
  82. N=200;
  83. fp=1000;
  84. t=0:1/fp:(N-1)/fp;
  85. %suma sinusow i szumu
  86. x=6*sin(2*pi*250*t)+3*sin(2*pi*350*t)+2*randn(1,N);
  87. subplot(211);
  88. plot(t,x)
  89. xlabel('czas[s]');
  90. ylabel('sygnał');
  91. %widmo
  92. Nf=1024;
  93. v=fft(x,Nf);%widmo zespolone
  94. w=abs(v);%;widmo amplitudowe
  95. f=linspace(0,fp,Nf); %generowanie osi czestotliwosci
  96. subplot(212);
  97. plot(f,w)
  98. xlabel('czestotliwosc[Hz]');
  99. ylabel('modul widma');
  100.  
  101. %generowanie szumu
  102. x=rand(1,1000);
  103. plot(x);
  104. hold on
  105. x=randn(1,1000);
  106. plot(x,'r');
  107. x=rand(1,1000);
  108. %sygnał o zmiennej częstotliwości
  109. x=chirp(t,fo,t1,f1)
  110.  
  111. %FFT
  112. y=fft(x);
  113. y=abs(abs(y);
  114. y=unurap(angle(y));
  115. y=real(y);
  116. y=imag(y);
  117.  
  118. %Filtr FIR- skonczona odpowiedz impulsowa
  119. h=fir1(K,fg);
  120. h=fir(K,[fd fg]);
  121. h=fir1(K,fd,'high');
  122. %filtracja
  123. y=filter(h,1,x);
  124.  
  125.  
  126. %decymacja -zmiejszenie czestliwosci próbkowania
  127. [x,y]=sinus(1,2,200,0,2)
  128. plot(x,y);
  129. y=decimate(x,y)
  130. ny=...;
  131. plot(ny,y);
  132.  
  133. %Histogram-jakie prawdopodobienstwo wystapienia sygnalu o danej
  134. %czestotliwosci
  135. sz=randn(1,1000);
  136. hist(sz,51)%51 liczba przedziałów(liczone ile probek wpada do hist)
  137. hist(x,101);
  138.  
  139. %Autokorelacja mówi nam o zależności w obrębie jednego sygnału
  140. r=xcorr(x,tmax)
  141. [x,n]=sinus(1,2,2000,0,2);
  142. [r,t]=xcor(x);
  143. plot(t,r);
  144. [r,t]=xcorr(x,100);
  145. plot(t,r);
  146.  
  147. %Korelacja wzajemna
  148. [r,t]=xcorr(x,y,tmax);
  149. [r,t]=xcorr(x,sz,200);
  150. plot(t,r);
  151.  
  152. %Wave read
  153. [x,fs]=wavread('mbi04popis.wav');
  154. %N - nowa zmienna pomocnicza
  155. y=fft(x,fs);
  156. w=abs(y);
  157. f=linspace(0,fs/2,N);
  158. subplot(211)
  159. plot(f,w(1:N));grid on; zoom on;
  160. xlabel('Czestotliwość [Hz]');
  161. ylabel('Moduł widma');
  162. title('Wykres widma amplitudowego');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement