Advertisement
wiktortokumpel

lista 6-7

Nov 28th, 2022 (edited)
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.40 KB | None | 0 0
  1. clear all;
  2. close all;
  3. %ładowanie sygnału
  4. load('s1.mat');
  5. load('s2.mat');
  6. %parametry sygna;lu
  7. fp=2000;
  8. N=length(s1);
  9.  
  10. t=[0:1:N-1]/fp;
  11.  
  12. figure(1)
  13. subplot(2,2,1);
  14. plot(t, s1);
  15. subplot(2,2,2);
  16. plot(t,s2);
  17. %całkowanie ilości binów do analizy
  18. Nf=N;
  19. %liczba binow nie zaleznych do obserwacji czykli od 0 do fp/2
  20. N21=Nf/2+1
  21. %generacja skali na osi f
  22. f=linspace(0,fp/2,N21);
  23. %widmo amplitudowe
  24. w1=abs(fft(s1,Nf));
  25. w2=abs(fft(s2,Nf));
  26.  
  27. subplot(223)
  28. stem(f,w1(1:N21));
  29. xlabel('czestotliwosc [Hz]');
  30. ylabel('modół wimda')
  31.  
  32. subplot(224)
  33. stem(f,w2(1:N21));
  34. xlabel('czestotliwosc [Hz]');
  35. ylabel('modół wimda')
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37.  
  38. function [Xk] = test_DFT(xn,Nf)
  39. %TEST_DFT Summary of this function goes here
  40. %WY: Xk-widmo zespolone o ilosci Nf binow
  41. %   Detailed explanation goes here
  42. Wn=exp(-j*2*pi/Nf);%fazor podstawowy
  43. %inicjalizacja
  44. F= zeros(Nf,Nf);
  45. %macierze przekształcanie F- funckje bazowe
  46. for k=0 : Nf-1
  47.     for n=0 : Nf-1
  48.         F(k+1, n+1) = Wn^(k*n);
  49.     end;
  50. end;
  51. Xk= xn*F;
  52.      
  53. end
  54.  
  55. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  56. %teraz tak k = 1 oznaczenie takie robim że wN=e^(-j2*pi/n) a zatem jak te n
  57. %się zmienają no teraz tak k=1 idziemy po N w wykładniku 1 -----1 W^1------
  58. %W^(n-1) można zobaczyć że fazor jest
  59. clear all;
  60. close all;
  61. N=1000;
  62. fp=1000;
  63. t=(0:N-1)/fp;
  64. x=sin(2*pi*100*t);
  65.  
  66. figure(1)
  67. subplot(311)
  68. plot(t,x);
  69. xlabel('czas[s]')
  70. ylabel('x(t)')
  71.  
  72. Nf=N;
  73. %liczba binow nie zaleznych do obserwacji czykli od 0 do fp/2
  74. N21=Nf/2+1
  75. %generacja skali na osi f
  76. f=linspace(0,fp/2,N21);
  77. w1=abs(fft(x,Nf));
  78. w2=abs(test_DFT(x,Nf));
  79.  
  80. subplot(312)
  81. stem(f,w1(1:N21));
  82. subplot(313);
  83. stem(f,w2(1:N21));
  84. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  85. close all;
  86. clear all;
  87.  
  88. [x,fs]=audioread("mbi04czep.wav");
  89. N=length(x);
  90. t=[0:1:N-1]/fs;
  91. figure(1)
  92. subplot(221)
  93. plot(t,x)
  94.  
  95.  
  96. N21=N/2+1;
  97. f=linspace(0,fs/2,N21);
  98. w=abs(fft(x,N));
  99. subplot(222)
  100. plot(f,w(1:N21));
  101.  
  102. dr=2;
  103. y=decimate(x,dr);
  104. Ny=length(y);
  105. fpy=fs/dr;
  106.  
  107. ty= 0:1/fpy:(Ny-1)/fpy;
  108.  
  109. subplot(223);
  110. plot(ty,y)
  111.  
  112.  
  113. fl=linspace(0,fpy/2,Ny/2+1);
  114. wy=abs(fft(y,Ny));
  115. subplot(224)
  116. plot(fl,wy(1:Ny/2+1));
  117. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  118.  
  119. clear all; close all;
  120. % ----------------  generowanie sinusa
  121. fpx = 10000;
  122. Nx = 10000;
  123. tx = 0:1/fpx:(Nx-1)/fpx;
  124. f0 = 1400;
  125. f1=2800;
  126. x = sin (2*pi*f0*tx)+sin(2*pi*f1*tx);
  127.  
  128. subplot (221);
  129. plot (tx,x);
  130. xlabel ('czas[s]');
  131. ylabel ('sygnal przed decymacja');
  132.  
  133. Nf = 2^11;
  134. N21 = Nf/2 + 1;
  135. wx = abs(fft(x,Nf));
  136. fx = linspace(0, fpx/2, N21);
  137. subplot (222);
  138. plot (fx, wx(1:N21));
  139. xlabel ('czest[Hz]');
  140. ylabel ('modul widma');
  141.  
  142. % ------------------------------------------------------------------
  143. %%      decymacja w petli
  144. %       Tutaj nalezy dopisac kod
  145. % ------------------------------------------------------------------
  146. dr = 2; % 4, 5, 10
  147.  
  148. fpy =fpx/dr;
  149. Ny = floor(Nx/dr)
  150. y=zeros(1,Ny);
  151.    for i=1:Ny
  152.      y(i) = x((i-1)*dr+1);
  153.    
  154.    end
  155.  
  156.  
  157.  
  158. %%
  159. ty = 0:1/fpy:(Ny-1)/fpy;
  160.  
  161. subplot (223);
  162. plot (ty,y);
  163. xlabel ('czas[s]');
  164. ylabel ('sygnal po decymacji');
  165.  
  166. wy = abs(fft(y,Nf));
  167. fy = linspace(0, fpy/2, N21);
  168. subplot (224);
  169. plot (fy, wy(1:N21));
  170. xlabel ('czestotliwosc [Hz]');
  171. ylabel ('modul widma'); ylim([0 1000])
  172.  
  173. set (gcf,'Position',[50 50 800 700]);
  174. %print -depsc ProbkAlias1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement