C/Visual C - Ayuda con Bucle FOR secuendias repetidas

   
Vista:
Imágen de perfil de César

Ayuda con Bucle FOR secuendias repetidas

Publicado por César (1 intervención) el 18/05/2014 15:01:05
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
%%%%% 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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con Bucle FOR secuendias repetidas

Publicado por Pico (37 intervenciones) el 18/05/2014 16:42:41
Eso se hace con una matriz de 4x4 elementos tau[4][4], y un vector d[4].

1
2
3
for (int i=0;i<4;i++)
    for (int j=0;j<4;j++)
         tau[i][j]=d[j]*cosd(Q1)/c;

Las señales se hacen con una función a la que llamas 4 veces con distintos parámetros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar