Transmitter RWM in Moscow transmits a CW waveform for around 8 minutes on the half hour, at frequencies that are close to WWV, namely (see https://en.wikipedia.org/wiki/RWM) 4.996 MHz with 5 kW and on 9.996 and 14.996 MHz with 8 kW.[1]
Use a web-SDR receiver in the UK to capture this signal. It's http://thescotts.ddns.net:8073/.
data file: thescotts.ddns.net_2023-08-04T05_59_28Z_9996.08_cwn.wav
data were captured at 12KHz and the detuning gave a beat frequency of around 500 Hz so well into the Nyquist regime.
That gives us insight into propagation variations at the 200 Hz or so level, around 5 mseec. In general if we have an SDR with some instantaneous BW Df, we can detune to get the beat at DR/2 and so 2/DF is the temporal resolution of looking at phase variations.
-------------------
matlab code from GPT-4 to look at phase variations:
% Read in the WAV file
[signal, Fs] = audioread('file.wav');
% Parameters
windowSize = 1024; % Size of the sliding window
overlap = 512; % Overlap between successive windows
stepSize = windowSize - overlap; % Step size for sliding window
% Preallocate arrays to store amplitude and phase
numWindows = floor((length(signal) - overlap) / stepSize);
amplitude = zeros(1, numWindows);
phase = zeros(1, numWindows);
% Iterate through the signal with a sliding window
for w = 1:numWindows
% Define the current window
startIdx = (w - 1) * stepSize + 1;
endIdx = startIdx + windowSize - 1;
window = signal(startIdx:endIdx);
% Compute the Fourier transform of the window
fftWindow = fft(window);
% Find the dominant component
[~, idx] = max(abs(fftWindow));
% Compute amplitude and phase of the dominant component
amplitude(w) = abs(fftWindow(idx));
phase(w) = angle(fftWindow(idx));
end
% Plot amplitude and phase
figure;
subplot(2,1,1);
plot(amplitude);
title('Amplitude of Dominant Fourier Component');
xlabel('Window');
ylabel('Amplitude');
subplot(2,1,2);
plot(phase);
title('Phase of Dominant Fourier Component');
xlabel('Window');
ylabel('Phase (radians)');