Me gustaría entender qué le sucede a una señal emitida por una fuente en movimiento y que llega a un receptor en movimiento. Pero, cuando busco en Internet sobre el efecto Doppler, solo puedo encontrar ecuaciones que vinculan la frecuencia recibida con la frecuencia emitida. Pero lo que quiero hacer aquí es simular el efecto Doppler en una señal aleatoria en Matlab.
Mi idea era ver el efecto Doppler como una consecuencia del movimiento entre la fuente y el receptor, comencé escribiendo algo como esto:
Dónde es la señal emitida, la señal recibida y una función que da el tiempo de llegada de la señal emitida por la fuente en el tiempo , creo que la cantidad se llama TDOA a veces. Como estoy usando física clásica aquí, tengo dónde es la distancia absoluta recorrida por la señal emitida en el momento entre la fuente y el receptor.
Consideremos ahora un emisor en movimiento y un receptor inmóvil. Para simplificar las cosas, ambos comienzan en el mismo punto con . Tomando un receptor inmóvil simplificará la fórmula de , porque en este caso . Bueno, solo tengo que aplicar mi fórmula ahora, y obtengo
Bueno, traté de aplicar este enfoque simple a una onda periódica de frecuencia. para tratar de encontrar la ecuación ( que es una ecuación estándar sobre el efecto Doppler ):
Entonces, acabo de tomar . Y luego :
Y finalmente estoy encontrando... .
Así que... exactamente lo contrario de lo que se suponía que debía encontrar. Y no entiendo por qué... (Lo mismo sucede cuando considero un receptor en movimiento). Entonces, mi primera pregunta sería saber dónde está mi error... Porque cuando estoy simulando este enfoque con Matlab, encuentro la respuesta correcta cuando uso una onda periódica. Así que para mí, este método parece funcionar...
%% Configuration
vE = 80; % Source speed (m/s)
c = 122; % Celerity (m/s)
d0 = 0; % Initial distance between source and receiver (m)
nT = 1500; % Number of visible periods
Fc = 20; % Carrier frequency
Tc = 1/Fc; % Carrier period
Fs = 1000; % Sampling frequency
%% Script
% Create signal
At_t = 0:1/Fs:nT*Tc;
At = cos(2*pi*Fc*At_t);
% Apply Doppler
dp = abs(d0 - vE .* At_t);
dt = dp ./ c;
% Interpolation/Resampling
do_At_t_temp = At_t + dt;
do_At_t = min(do_At_t_temp):1/Fs:max(do_At_t_temp);
do_At = interp1(do_At_t_temp, At, do_At_t);
% Plot
figure;
plot(At_t, At); hold on;
plot(do_At_t, do_At);
grid;
legend('Without doppler', 'With Doppler');
figure;
[pxx,f] = pwelch(At,[],[],[],Fs);
plot(f, pxx); hold on
[pxx,f] = pwelch(do_At,[],[],[],Fs);
plot(f, pxx);
legend('Without doppler', 'With Doppler');
xlim([0, 3*Fc])
grid;
fprintf('Theorical values : %d Hz and %d Hz\n', round(Fc * c / (c - vE), 2), round(Fc * c / (c + vE), 2));
Este script parece dar el cambio de frecuencia correcto (de 20 Hz a 12,08 Hz)
Consideremos primero una versión más general del problema. Supongamos que la distancia entre el emisor y el receptor es ; Permitiremos que esto sea una función arbitraria del tiempo. Supondremos también que la amplitud de la señal emitida en función del tiempo es , nuevamente permitiendo que sea una función arbitraria del tiempo. Supongamos que la señal tiene una velocidad , que es constante independientemente de la frecuencia. La señal emitida en el momento será recibido en el tiempo , ya que la señal tiene que cruzar la distancia para llegar al receptor. Entonces podemos escribir:
dónde . Mientras es invertible, entonces podemos resolver la señal en el receptor encontrando la función inversa para :
Entonces, apliquemos esto a un receptor estacionario en el origen y un emisor que se mueve con una velocidad constante. en línea recta directamente hacia o desde el receptor. Entonces para alguna posición inicial , Lo que significa que
Esto nos da dos funciones por partes separadas: una cuando y uno cuando . Vamos a etiquetar estos
Invirtiendo cada uno, tenemos:
y
Lo que significa que
Así que esta es la fórmula para una señal general no periódica emitido por un observador que se mueve directamente hacia o alejándose de usted a una velocidad , empezando desde . Si reemplazamos una función periódica, digamos, , entonces nosotros tenemos:
Cuando el emisor se aleja del observador, entonces tenemos y o y . Esto significa es siempre positivo, lo que a su vez significa que, para todo positivo , tenemos eso . Entonces, para un emisor en retroceso, usamos la ecuación superior, lo que significa que la frecuencia que se escucha de un emisor en retroceso es
que es más baja que la frecuencia emitida, como se esperaba.
A su vez, para un emisor que se aproxima , tenemos y o y (y solo se acercará por un tiempo finito antes de pasar el receptor y comenzar a retroceder). Esto significa que es negativo, lo que significa que hay una cierta ventana de tiempo en la que es posible que . En esa ventana de tiempo (es decir, la ventana de tiempo cuando el emisor se acerca), la frecuencia que se escucha en el receptor es, como puede ver,
que es más alta que la frecuencia emitida, nuevamente como se esperaba.
djohnm
felipe