¿como realizo este proceso de compensacion backpropagation?
hola, estaba estudiando un poco el proceso de compensacion backpropagation que se ve en la fibra optica, y necesito probar este mismo proceso pero con una señal de las de siempre, nose.. una senoial, diente de sierra o la que sea.
pero no he logrado que funcione el codigo con respecto a una señal de esas, (el codigo esta para hacer el proceso con pulsos gaussianos y el cambio que he querido es que haga el proceso con una senoidal).
este es el codigo de la compensacion backpropagation con pulsos gaussianos
%%%%Compensación BackPropagation clear all; %%%%%%%%Parámetros de Entrada%%%%%%%% R=10e9; %Tasa de transmisión Tb=1/R; %Tiempo de bit % sec=randint(1,n_bits); %Secuencia de "1" y "0" sec=[0 1 0]; n_bits=length(sec); %Núero de bits w=2*pi*1/Tb; %Frecuencia angular Fs=64/Tb; %Frecuencia de Muestreo Ts=1/Fs; %Tiempo de bit Nmpb=(Tb/Ts)+1; %Número de muestras por bit Nmps=Nmpb*n_bits; %Número de muestras de toda la secuencia b2 = -21.6*(1e-12^2)/1e3; %[ps.ps/km] b3 = 0.117*(1e-12^3)/1e3; %[ps.ps.ps/km] Dz = 10e3; %%%%%%%%Secuencia de pulsos gaussianos%%%%%%%% To=Tb/8; %Anchura del pulso gaussiano t=-Tb/2:Ts:Tb/2; %Intervalo pulso gaussiano C=0; %Chirp for i=1:length(sec) At=(t/To).^2; %Parte de la función del pulso gaussiano p_gauss(i*Nmpb-Nmpb+1:i*Nmpb)=[sec(i)*exp(-(1/2)*(1+j*C)*At)]; %Función de la secuencia de pulsos gaussianos end t1=0:Ts:(Nmps-1)*Ts; plot(t1,p_gauss,'r'); hold on % Nb = length(sec); %Number of bits % % Tb = 1/Rb; %Bit time % % Ts = 1/fs; %Sampling time % Nspb = ceil(Tb/Ts); %Samples per bit % N = Nspb*Nb; % t = [0:N-1]*Ts; % As = zeros(1,N); % for k = 1:length(sec), % As = As + sec(k)*exp(-(1/2)*(1+j*C)*((t - Tb/2 -(k-1)*Tb)/To).^2); % end % plot(t,As) % hold on %%%%%%%%Función de la Fibra%%%%%%%%%%%%%%%%%%% n = 0:Nmps-1; w = 2*pi*(n-Nmps/2)*Fs/Nmps; Hd = exp(j*0.5*b2*Dz*w.*w - j*b3*w.*w.*w*Dz/6); % Función de la fibra en el dominio de la frecuencia AouF = fftshift(fft(p_gauss)).*Hd; Aou = ifft(fftshift(AouF)); plot(t1,abs(Aou),'g'); % Aou = Fiber_L_A(p_gauss,1/Ts,[b2,b3],Dz); % plot(t1,abs(Aou),'g');
y esta es por ejemplo: mi señal senoidal continua
Fs = 10000;
T =3*(1/100);
t = 0:1/Fs:T-1/Fs;
x = 5*sin(2*pi*100*t);