Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- N = 32;
- L= 32;
- %macierz F transformaty
- for(n=0:N-1)
- for(m=0:N-1)
- F(n+1,m+1) = (1/sqrt(N))*cos((2*pi/N)*n*m)-i*(1/sqrt(N))*sin((2*pi/N)*n*m);
- end
- end
- disp("czy F jest ortogonalna?")
- FF =F*F';
- real(FF(1:5,1:5)) %tak jest
- %__________________________dla sygnalu sin____________________
- if(0)
- %sygnal wyslany sinusy
- L = 32;
- x3 = zeros(32,1);
- for(n=0:31)
- x3(n+1)= sin(2*pi*2*n/L)+sin(2*pi*6*n/L);
- end
- %plot(x3,'r');
- %pause;
- X = F*x3;
- X_obrazek = 20*log(abs(X));
- plot(X_obrazek);
- title("widmo gestosci mocy");
- pause;
- x3_1 = inv(F)*X; %x~
- x3_1_2 = inv(F.')*X; %x~~
- %czy wyniki sa takie same co do bledow numerycznych
- errorx3_1_to_x = max(abs(x3-x3_1))
- errorx3_1_2_to_x = max(abs(x3-x3_1_2))
- if(x3_1 == x3_1_2)
- disp("macierze sa takie same");
- else
- disp("macierze sa inne")
- end
- figure; subplot(311);plot(1:L,x3,'-r');title("nadany");subplot(312);plot(1:L,x3_1,'-b');title("odebrany synteza 1");
- subplot(313);plot(1:L,x3_1_2,'-b');title('odebrany synteza 2');
- end
- %_____________________sygnal exp______________________
- if(0)
- L = 32;
- x3 = zeros(32,1);
- for(n=0:31)
- x3(n+1)= exp(-i*2*pi*2*n/L)+exp(-i*2*pi*6*n/L);
- end
- %plot(x3,'r');
- %pause;
- X = F*x3;
- X_obrazek = 20*log(abs(X));
- plot(X_obrazek);
- title("widmo gestosci mocy");
- pause;
- x3_1 = inv(F)*X; %x~
- x3_1_2 = inv(F.')*X; %x~~
- %czy wyniki sa takie same co do bledow numerycznych
- errorx3_1_to_x = max(abs(x3-x3_1))
- errorx3_1_2_to_x = max(abs(x3-x3_1_2))
- if(x3_1 == x3_1_2)
- disp("macierze sa takie same");
- else
- disp("macierze sa inne")
- end
- figure; subplot(311);plot(1:L,x3,'-r');title("nadany");subplot(312);plot(1:L,x3_1,'-b');title("odebrany synteza 1");
- subplot(313);plot(1:L,x3_1_2,'-b');title('odebrany synteza 2');
- end
- %______________________dla y3__________________________
- if(0)
- load("h.mat");
- L = 32;
- x3 = zeros(32,1);
- for(n=0:31)
- x3(n+1)= sin(2*pi*2*n/L)+sin(2*pi*6*n/L);
- end
- h = h'; %nie umiem tego conv
- X3 = toeplitz(x3, zeros(1,32));
- y = X3*h;
- X = F*y;
- X_obrazek = 20*log(abs(X));
- plot(X_obrazek);
- title("widmo gestosci mocy");
- pause;
- y3_1 = inv(F)*X; %x~
- y3_1_2 = inv(F.')*X; %x~~
- %czy wyniki sa takie same co do bledow numerycznych
- errory3_1_to_y = max(abs(y-y3_1))
- errory3_1_2_to_y = max(abs(y-y3_1_2))
- if(y3_1 == y3_1_2)
- disp("macierze sa takie same");
- else
- disp("macierze sa inne")
- end
- figure; subplot(311);plot(1:L,y,'-r');title("nadany");subplot(312);plot(1:L,y3_1,'-b');title("odebrany synteza 1");
- subplot(313);plot(1:L,y3_1_2,'-b');title('odebrany synteza 2');
- end
- %_____________________dla random_______________________
- if(1)
- rs = randn(32,1);
- %plot(rs);
- RS=F*rs; %to jest to co jest podobne w F do sygnalu rs
- rs1=inv(F)*RS;
- rs2=inv(F.')*RS;
- X_obrazek = 20*log(abs(RS));
- plot(X_obrazek);
- title("widmo gestosci mocy");
- pause;
- %czy wyniki sa takie same co do bledow numerycznych
- error_rs1_to_rs = max(abs(rs-rs1))
- errorr_rs2_to_re = max(abs(rs-rs2))
- if(rs1 == rs2)
- disp("macierze sa takie same");
- else
- disp("macierze sa inne")
- end
- figure; subplot(311);plot(1:L,rs,'-r');title("nadany");subplot(312);plot(1:L,rs1,'-b');title("odebrany synteza 1");
- subplot(313);plot(1:L,rs2,'-b');title('odebrany synteza 2');
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement