
Bucle FOR
Publicado por César (16 intervenciones) el 18/05/2014 14:59:55
Buenos Dias
Quisiera que me ayuden en esta oportunidad para poder reducir el espacio de mi programa utilizando el comando FOR o otro.
Tengo 4 angulos(Q1,..), para obtener la variable (tau11....), obteniendo 16 en total. después van a ser insertados en otra formula obteniendo los vectores (Vk0.....) para poder obtener la matriz (Vw), como todo es repetitivo quisiera reducirlo dentro de FOR.
Despues tengo una señal donde al tiempo se le va a restar cada un (T-tau11, T-tau12.....) y después se le aplica la FFT, obteniendo al final 16 señales diferentes, como puedo reducirlo utilizando el bucle FOR - END u otro.
Alguien podria ayudarme o mostrarme el camino como comenzar.
Muchas gracias.
César
%%%%% Campo 4 sinais e 4 microfones %%%%%%
d1=0;d2=1;d3=2;d4=3;c=340;y=0;
r1=4;r2=7;r3=8;r4=5;
Q1=65;Q2=10;Q3=330;Q4=300;%%ângulos
F0=1000;Fs=8000;Ts=1/Fs;T=0:Ts:0.1;
A1=2;W=2*pi*F0;
%%%% ATRASO COM Q1%%%%
tau11=d1*cosd(Q1)/c; tau12=d2*cosd(Q1)/c; tau13=d3*cosd(Q1)/c; tau14=d4*cosd(Q1)/c;
%%%% ATRASO COM Q2%%%%
tau21=d1*cosd(Q2)/c; tau22=d2*cosd(Q2)/c; tau23=d3*cosd(Q2)/c; tau24=d4*cosd(Q2)/c;
%%%% ATRASO COM Q3%%%%
tau31=d1*cosd(Q3)/c; tau32=d2*cosd(Q3)/c; tau33=d3*cosd(Q3)/c; tau34=d4*cosd(Q3)/c;
%%%% ATRASO COM Q4%%%%
tau41=d1*cosd(Q4)/c; tau42=d2*cosd(Q4)/c; tau43=d3*cosd(Q4)/c; tau44=d4*cosd(Q4)/c;
Vk0=[exp(-j*W*tau11); exp(-j*W*tau12) ;exp(-j*W*tau13); exp(-j*W*tau14)];
Vk1=[exp(-j*W*tau21);exp(-j*W*tau22);exp(-j*W*tau23);exp(-j*W*tau24)];
Vk2=[exp(-j*W*tau31);exp(-j*W*tau32);exp(-j*W*tau33);exp(-j*W*tau34)];
Vk3=[exp(-j*W*tau41);exp(-j*W*tau42);exp(-j*W*tau43);exp(-j*W*tau44)];
%%%%% Matriz V(w) %%%%%%
Vw=[Vk0 Vk1 Vk2 Vk3];
%%% creamos sinai 1 %%%
%%% sinai 1 mic 1 %%%%
y11=A1*cos(2*pi*F0*(T-tau11)+(pi/6));
XW11=(abs(fft(y11)))'; %%%Sinai recibida no mic1 com sinai1
%%% sinai 1 mic 2 %%%%
y12=A1*cos(2*pi*F0*(T-tau12)+(pi/6));
XW12=(abs(fft(y12)))'; %%%Sinai recibida no mic2 com sinai1
%%% sinai 1 mic 3 %%%%
tempo13=(T-tau13);
y13=A1*cos(2*pi*F0*(T-tau13)+(pi/6));
XW13=(abs(fft(y13)))'; %%%Sinai recibida no mic3 com sinai1
%%% sinai 1 mic 4 %%%%
y14=A1*cos(2*pi*F0*(T-tau14)+(pi/6));
XW14=(abs(fft(y14)))'; %%%Sinai recibida no mic4 com sinai1
%%% creamos sinai 2 %%%
%%% sinai 2 mic 1 %%%%
tempo21=(T-tau21);
y21=A1*cos(2*pi*F0*(T-tau21)+(pi/6));
XW21=(abs(fft(y21)))'; %%%Sinai recibida no mic1 com sinai2
%%% sinai 2 mic 2 %%%%
y22=A1*cos(2*pi*F0*(T-tau22)+(pi/6));
XW22=(abs(fft(y22)))'; %%%Sinai recibida no mic2 com sinai2
%%% sinai 2 mic 3 %%%%
y23=A1*cos(2*pi*F0*(T-tau23)+(pi/6));
XW23=(abs(fft(y23)))'; %%%Sinai recibida no mic3 com sinai2
%%% sinai 2 mic 4 %%%%
y24=A1*cos(2*pi*F0*t(T-tau24)+(pi/6));
XW24=(abs(fft(y24)))'; %%%Sinai recibida no mic4 com sinai2
%%% creamos sinai 3 %%%
%%% sinai 3 mic 1 %%%%
y31=A1*cos(2*pi*F0*(T-tau31)+(pi/6));
XW31=(abs(fft(y31)))'; %%%Sinai recibida no mic1 com sinai3
%%% sinai 3 mic 2 %%%%
y32=A1*cos(2*pi*F0*(T-tau32)+(pi/6));
XW32=(abs(fft(y32)))'; %%%Sinai recibida no mic2 com sinai3
%%% sinai 3 mic 3 %%%%
y33=A1*cos(2*pi*F0*(T-tau33)+(pi/6));
XW33=(abs(fft(y33)))'; %%%Sinai recibida no mic3 com sinai3
%%% sinai 3 mic 4 %%%%
y34=A1*cos(2*pi*F0*(T-tau34)+(pi/6));
XW34=(abs(fft(y34)))'; %%%Sinai recibida no mic4 com sinai3
%%% creamos sinai 4 %%%
%%% sinai 4 mic 1 %%%%
y41=A1*cos(2*pi*F0*(T-tau41)+(pi/6));
XW41=(abs(fft(y41)))'; %%%Sinai recibida no mic1 com sinai4
%%% sinai 4 mic 2 %%%%
y42=A1*cos(2*pi*F0*(T-tau42)+(pi/6));
XW42=(abs(fft(y42)))'; %%%Sinai recibida no mic2 com sinai4
%%% sinai 4 mic 3 %%%%
y43=A1*cos(2*pi*F0*(T-tau43)+(pi/6));
XW43=(abs(fft(y43)))'; %%%Sinai recibida no mic3 com sinai4
%%% sinai 4 mic 4 %%%%
y44=A1*cos(2*pi*F0*(T-tau44)+(pi/6));
XW44=(abs(fft(y44)))'; %%%Sinai recibida no mic4 com sinai4
Quisiera que me ayuden en esta oportunidad para poder reducir el espacio de mi programa utilizando el comando FOR o otro.
Tengo 4 angulos(Q1,..), para obtener la variable (tau11....), obteniendo 16 en total. después van a ser insertados en otra formula obteniendo los vectores (Vk0.....) para poder obtener la matriz (Vw), como todo es repetitivo quisiera reducirlo dentro de FOR.
Despues tengo una señal donde al tiempo se le va a restar cada un (T-tau11, T-tau12.....) y después se le aplica la FFT, obteniendo al final 16 señales diferentes, como puedo reducirlo utilizando el bucle FOR - END u otro.
Alguien podria ayudarme o mostrarme el camino como comenzar.
Muchas gracias.
César
%%%%% Campo 4 sinais e 4 microfones %%%%%%
d1=0;d2=1;d3=2;d4=3;c=340;y=0;
r1=4;r2=7;r3=8;r4=5;
Q1=65;Q2=10;Q3=330;Q4=300;%%ângulos
F0=1000;Fs=8000;Ts=1/Fs;T=0:Ts:0.1;
A1=2;W=2*pi*F0;
%%%% ATRASO COM Q1%%%%
tau11=d1*cosd(Q1)/c; tau12=d2*cosd(Q1)/c; tau13=d3*cosd(Q1)/c; tau14=d4*cosd(Q1)/c;
%%%% ATRASO COM Q2%%%%
tau21=d1*cosd(Q2)/c; tau22=d2*cosd(Q2)/c; tau23=d3*cosd(Q2)/c; tau24=d4*cosd(Q2)/c;
%%%% ATRASO COM Q3%%%%
tau31=d1*cosd(Q3)/c; tau32=d2*cosd(Q3)/c; tau33=d3*cosd(Q3)/c; tau34=d4*cosd(Q3)/c;
%%%% ATRASO COM Q4%%%%
tau41=d1*cosd(Q4)/c; tau42=d2*cosd(Q4)/c; tau43=d3*cosd(Q4)/c; tau44=d4*cosd(Q4)/c;
Vk0=[exp(-j*W*tau11); exp(-j*W*tau12) ;exp(-j*W*tau13); exp(-j*W*tau14)];
Vk1=[exp(-j*W*tau21);exp(-j*W*tau22);exp(-j*W*tau23);exp(-j*W*tau24)];
Vk2=[exp(-j*W*tau31);exp(-j*W*tau32);exp(-j*W*tau33);exp(-j*W*tau34)];
Vk3=[exp(-j*W*tau41);exp(-j*W*tau42);exp(-j*W*tau43);exp(-j*W*tau44)];
%%%%% Matriz V(w) %%%%%%
Vw=[Vk0 Vk1 Vk2 Vk3];
%%% creamos sinai 1 %%%
%%% sinai 1 mic 1 %%%%
y11=A1*cos(2*pi*F0*(T-tau11)+(pi/6));
XW11=(abs(fft(y11)))'; %%%Sinai recibida no mic1 com sinai1
%%% sinai 1 mic 2 %%%%
y12=A1*cos(2*pi*F0*(T-tau12)+(pi/6));
XW12=(abs(fft(y12)))'; %%%Sinai recibida no mic2 com sinai1
%%% sinai 1 mic 3 %%%%
tempo13=(T-tau13);
y13=A1*cos(2*pi*F0*(T-tau13)+(pi/6));
XW13=(abs(fft(y13)))'; %%%Sinai recibida no mic3 com sinai1
%%% sinai 1 mic 4 %%%%
y14=A1*cos(2*pi*F0*(T-tau14)+(pi/6));
XW14=(abs(fft(y14)))'; %%%Sinai recibida no mic4 com sinai1
%%% creamos sinai 2 %%%
%%% sinai 2 mic 1 %%%%
tempo21=(T-tau21);
y21=A1*cos(2*pi*F0*(T-tau21)+(pi/6));
XW21=(abs(fft(y21)))'; %%%Sinai recibida no mic1 com sinai2
%%% sinai 2 mic 2 %%%%
y22=A1*cos(2*pi*F0*(T-tau22)+(pi/6));
XW22=(abs(fft(y22)))'; %%%Sinai recibida no mic2 com sinai2
%%% sinai 2 mic 3 %%%%
y23=A1*cos(2*pi*F0*(T-tau23)+(pi/6));
XW23=(abs(fft(y23)))'; %%%Sinai recibida no mic3 com sinai2
%%% sinai 2 mic 4 %%%%
y24=A1*cos(2*pi*F0*t(T-tau24)+(pi/6));
XW24=(abs(fft(y24)))'; %%%Sinai recibida no mic4 com sinai2
%%% creamos sinai 3 %%%
%%% sinai 3 mic 1 %%%%
y31=A1*cos(2*pi*F0*(T-tau31)+(pi/6));
XW31=(abs(fft(y31)))'; %%%Sinai recibida no mic1 com sinai3
%%% sinai 3 mic 2 %%%%
y32=A1*cos(2*pi*F0*(T-tau32)+(pi/6));
XW32=(abs(fft(y32)))'; %%%Sinai recibida no mic2 com sinai3
%%% sinai 3 mic 3 %%%%
y33=A1*cos(2*pi*F0*(T-tau33)+(pi/6));
XW33=(abs(fft(y33)))'; %%%Sinai recibida no mic3 com sinai3
%%% sinai 3 mic 4 %%%%
y34=A1*cos(2*pi*F0*(T-tau34)+(pi/6));
XW34=(abs(fft(y34)))'; %%%Sinai recibida no mic4 com sinai3
%%% creamos sinai 4 %%%
%%% sinai 4 mic 1 %%%%
y41=A1*cos(2*pi*F0*(T-tau41)+(pi/6));
XW41=(abs(fft(y41)))'; %%%Sinai recibida no mic1 com sinai4
%%% sinai 4 mic 2 %%%%
y42=A1*cos(2*pi*F0*(T-tau42)+(pi/6));
XW42=(abs(fft(y42)))'; %%%Sinai recibida no mic2 com sinai4
%%% sinai 4 mic 3 %%%%
y43=A1*cos(2*pi*F0*(T-tau43)+(pi/6));
XW43=(abs(fft(y43)))'; %%%Sinai recibida no mic3 com sinai4
%%% sinai 4 mic 4 %%%%
y44=A1*cos(2*pi*F0*(T-tau44)+(pi/6));
XW44=(abs(fft(y44)))'; %%%Sinai recibida no mic4 com sinai4
Valora esta pregunta


0