Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1.  
  2. clear all
  3. close all
  4.  
  5. load sndb_prbs;
  6. u=u.';
  7. y=y.';
  8.  
  9. figure;
  10. subplot(211); plot(u); title('u(n)'); grid;
  11. subplot(212); plot(y); title('y(n)'); grid;
  12.  
  13. M = 40; % dlugosc odpowedzi impulsowej
  14. L = length(u); % d�ugo�� sygna��w
  15. L = 2*M; % liczba r�wna�, minimum M, maksimum L-M+1
  16.  
  17. % Metoda parametryczna model FIR o dlugosci M
  18. %U=[];
  19. %for i=0:L-1
  20. % U=[U; u(M+i:-1:i+1)];
  21. %end
  22. U = toeplitz(u(M:M+L-1),u(M:-1:1));
  23.  
  24. Y = y(M:M+(L-1))';
  25. b = U\Y; % pinv(X)*y; % inv(X'*X) * X'*y = Rxx * rxy
  26.  
  27. fpr = 44100; dt=1/fpr; t=dt*(0:M-1);
  28.  
  29. % Odpowied� impulsowa
  30. figure; stem(t,b); title('h(t)'); xlabel('t[s]'); grid;
  31.  
  32. % Jej widmo
  33. Nfft=1000; Nf=Nfft/2+1;
  34. df=fpr/Nfft; f1=0:df:fpr-df; f3=f1;
  35. % FFT
  36. H1=fft(b,Nfft);
  37. % FREQZ
  38. [ H2, f2 ] = freqz(b(1:M),1,Nf,fpr);
  39.  
  40. % Metoda nieparametryczna dla porownania
  41. M = L; % od L do Nfft/2
  42. ryu=xcorr(y,u,M); % d�ugie y i u! przesuni�te wektory, je�li nie trafisz w pobli�e to nie zrobisz z kr�tkich u(M:L)
  43. ruu=xcorr(u,u,Nfft/2);
  44. H3 = fft( ryu, Nfft ) ./ fft( ruu, Nfft );
  45.  
  46. figure
  47. plot(f1,20*log10(abs(H1)),'ro-',f2,20*log10(abs(H2)),'kx-',f3,20*log10(abs(H3)),'b-')
  48. title('|H(f)| [dB]'); xlabel('f[Hz]'); grid;
  49.  
  50. % Metoda dla coraz wi�kszej liczby r�wna�
  51. LL = [50, 100, 200, 1000 ];
  52. y = y + 0.1*randn(1,length(y));
  53. for L=LL
  54. U=[];
  55. for i=0:L-1
  56. U=[U; u(M+i:-1:i+1)];
  57. end
  58. Y=y(M:M+(L-1))';
  59. b=U\Y;
  60. [ H2, f2 ] = freqz(b(1:M),1,Nf,fpr);
  61. figure
  62. subplot(211)
  63. stem(1:M,b)
  64. subplot(212)
  65. plot(f2,20*log10(abs(H2)),'r-')
  66. end
  67.  
  68.  
  69.  
  70.  
  71. /////////////// zad 3 /////////////////
  72.  
  73.  
  74.  
  75. clear all; close all;
  76. i1=imread('Krata1.jpg');
  77. figure; imshow(i1),
  78. i1g=double(rgb2gray(i1));
  79. [sx, sy]=size(i1g);
  80. cx=sx/2;
  81. cy=sy/2;
  82. % wyszukanie przeci�� linii
  83. wzorzec=[
  84. 0 0 0 1 1 1 0 0 0
  85. 0 0 0 1 1 1 0 0 0
  86. 0 0 0 1 1 1 0 0 0
  87. 1 1 1 1 1 1 1 1 1
  88. 1 1 1 1 1 1 1 1 1
  89. 1 1 1 1 1 1 1 1 1
  90. 0 0 0 1 1 1 0 0 0
  91. 0 0 0 1 1 1 0 0 0
  92. 0 0 0 1 1 1 0 0 0
  93. ];
  94. ic=normxcorr2(wzorzec,i1g);
  95. ig=ic<-0.7;
  96. ig=bwmorph(ig,'shrink',Inf);
  97. [ix,iy]=find(ig>0);
  98. r=sqrt((ix-cx).^2+(iy-cy).^2);
  99. [rs,i]=sort(r);
  100. % ustalenie punkt�w odniesienia (siatki regularnej)
  101. x0=ix(i(1)); y0=iy(i(1));
  102. dx=abs(ix(i(1))-ix(i(4)))-1;
  103. dy=abs(iy(i(1))-iy(i(4)))-3;
  104. jx=x0+dx*[-4:1:5];
  105. jy=y0+dy*[-6:1:7];
  106. [jX, jY]=meshgrid(jx,jy);
  107. jx=jX'; jx=jx(:);
  108. jy=jY'; jy=jy(:);
  109. rm=sqrt((jx-cx).^2+(jy-cy).^2);
  110. [rms,j]=sort(rm);
  111. figure; imshow(ig), hold on
  112. plot(cy,cx,'r+') % punkt centralny
  113. plot(jY,jX,'bo') % punkty odniesienia
  114. % identyfikacja modelu algorytmem LS
  115. % uzupe�nij wyliczanie modelu stopnia 3 zale�no�ci rs od rms
  116. % warto�ci wyliczone z modelu zapisz do zmiennej R
  117. %???
  118. %???
  119. %???
  120. figure(1)
  121. plot(rms,rs,'b.', rms,R,'g-', [0 3e2],[0 3e2],'r-')
  122. % prostowanie obrazka
  123. xx=1:sx;
  124. yy=1:sy;
  125. [XX,YY]=meshgrid(xx,yy);
  126. RR=sqrt((XX-cx).^2+(YY-cy).^2);
  127. RRr=RR*A(1)+RR.^2*A(2)+RR.^3*A(3);
  128. RRu=RRr./RR;
  129. i1r=interp2(i1g,(YY-cy).*RRu+cy,(XX-cx).*RRu+cx);
  130. figure,
  131. subplot(2,1,1),imagesc(i1g)
  132. subplot(2,1,2),imagesc(i1r)
  133. colormap gray
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement