Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. %{
  2. M. Wasilewska kolokwium z PPSów Laby
  3.  
  4. %}
  5.  
  6.  
  7. clear;
  8. close all;
  9. %=========================================================================
  10. % Zadanie 1
  11. % Rysowanie dwóch sinusów, zsumowanie ich i dodanie szumu
  12. % O parametrach
  13. % Sygnał 1:
  14. % f = 120 Hz
  15. % A1 - dow
  16. fs = 600;
  17.  
  18. t=0:1/fs:10;
  19. % sygnał 1
  20. A1 = 0.7;
  21. f_1 = 120;
  22. sig_1 = A1*sin(2*pi*f_1*t);
  23. %sygnał 2
  24. A2 = 1.5;
  25. f_2 = 270;
  26. sig_2 = A2*sin(2*pi*f_2*t);
  27. % suma sinusów
  28. suma_sig = sig_1 + sig_2;
  29.  
  30. % szum:
  31.  
  32. % rand - szum równoramienny (od -1 do 1)
  33. % randn - szum gausowski - normalny (od -nies do niesk)
  34.  
  35.  
  36. rng('default');
  37. szum_nor = randn(1,length(suma_sig));
  38.  
  39. %suma sinusów z szumem:
  40. sygnal = suma_sig + szum_nor;
  41.  
  42. subplot 231
  43. plot(t,sygnal);
  44. title('suma sinusów z szumem');
  45.  
  46. %=========================================================================
  47. % Zad 2
  48. % Widmo sumy sinusów z szumem
  49.  
  50. length(sygnal)
  51. % dł sygnału wynosi 6001 więc bierzemy 2^13 = 8192
  52.  
  53. transformata = fft(sygnal, 8192);
  54. % częstotliwość próbkowania sygnału
  55. f_transfo = 0:fs/length(transformata):fs-fs/length(transformata);
  56.  
  57. subplot 232
  58. stem(f_transfo, abs(transformata));
  59. title('widmo sygnału');
  60.  
  61. %=========================================================================
  62. % Zad 3
  63. % DO SPRAWDZENIA autokorelacja sumy sinusów z szumem, tmax = 0.4 s
  64.  
  65. subplot 233
  66.  
  67. tmax= 0.4;
  68. korelacja_sygnalu = xcorr(sygnal,sygnal,tmax*fs);
  69. t_korelacji = -tmax:1/fs:tmax;
  70. plot(t_korelacji,korelacja_sygnalu);
  71. xlabel('przesuniece [s]');
  72. ylabel('wautokorelacja');
  73. title('autokorelacja sygnału');
  74.  
  75. %=========================================================================
  76. % Zad 4
  77. % Generowanie szumu normalnego o długościu sumy sinusów z szumem
  78.  
  79. subplot 234
  80.  
  81. rng('default');
  82. szum_nor = randn(1,length(suma_sig));
  83. plot(t,szum_nor);
  84. title('szum normalny o dł sumy sinusów');
  85.  
  86. %=========================================================================
  87. % Zad 5
  88. % Korelacja dwóch sinusów? kmax = 300 próbek
  89.  
  90. subplot 235
  91. kmax = 300;
  92. sample = -300:1:300;
  93. korelacja = xcorr(sig_1, sig_2, kmax);
  94. plot(sample, korelacja);
  95. title('korelacja sinusów');
  96.  
  97. %=========================================================================
  98. % Zad EXTRA
  99. % Histogram sinusów z szumem
  100. subplot 236
  101. piki = 10;
  102. hist (sygnal,piki);
  103. xlabel('wartości próbek');
  104. ylabel('ilość próbek');
  105. title('histogram sinusów z szumem');
  106.  
  107. %=========================================================================
  108. % Zad 1 GR B
  109. % Wczytaj sygnał i zdecymuj go co 4 raz
  110.  
  111. figure
  112.  
  113. [audio, f_audio] = audioread('mbi04czep.wav');
  114.  
  115. %sygnał normalny
  116. subplot 211
  117. delta = 1/f_audio;
  118. t_audio = 0:delta:abs(delta*length(audio)-delta);
  119. plot(t_audio, audio);
  120. title('sygnał');
  121.  
  122.  
  123. %sygnał zdecymowany 4-krotnie
  124. subplot 212
  125. audio_dec = decimate(audio, 4);
  126. f_audio_dec = f_audio/4;
  127. delta_dec = 1/f_audio_dec;
  128. t_audio_dec = 0:delta_dec:abs(length(audio_dec)*delta_dec-delta_dec);
  129.  
  130.  
  131. plot(t_audio_dec,audio_dec);
  132.  
  133. --------------------------------------------
  134. N = 8000;
  135. fp = 4000;
  136. t_max = (N-1)/fp;
  137. t = 0:1/fp:t_max;
  138.  
  139. x1 = chirp(t, 50, t_max,800) + randn(1,N)
  140. ---------------------------------------------
  141. k_max = 450;
  142. xx2 = xcorr(x2, x2, k_max);
  143. kxx = -k_max : 1 : k_max;
  144.  
  145. figure(4)
  146. plot(kxx, xx2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement