I am working on phase correction algorithms. Can anyone help me understand how can the following diagram be used for phase correction:

enter image description here

Additionally, for a channel function suggested How determine the delay in my signal practically, I have tried the following:

Fs = 306.700*1e+3; % sampling rate 
Fc = 100*1e+3; % central frequency
B = 4*1e+3;  % bandwidth
N = 3072;
T = (N-1)/Fs;
t = 0:1/Fs:T; %time

baseband_signal = chirp(t,-B/2,t(end),B/2)-i*chirp(t,-B/2,t(end),B/2,'linear',90); 

% Modulation
modulated_signal = baseband_signal.*exp(i*2*pi*Fc.*t);
modulated_signal = real(modulated_signal); 
% Transmitted signal
tx = modulated_signal.*1.25/max(modulated_signal);
% Received signal 
rx = [zeros(1,200) tx]; 
t_received = 0:1/Fs:(length(rx)-1)/Fs;

% Computing equalization filter: rx and tx swapped!
 coeff = channel(rx,tx,20);

% Equalization filtering
 rx_corrected = filter(coeff, 1,  rx);
title('Equalization filter')

xlabel('Time (s)');
grid on;

Shouldn't the equalization suggested here remove the phase delay and have the equalized and transmitted signal aligned?

enter image description hereenter image description here


I actually don't see how the following diagram can be possibly used for phase correction only as it will have an unavoidable amplitude correction as well. An all pass filter by definition will pass all magnitude without modification and only change the phase. The Time Delay block will similarly pass all magnitude without modification with a linear phase versus frequency. The resulting amplitude at the output will be the vector sum of the linear phase component with the all pass component. Since both will have the same magnitude then the sum will be dictated by the phase (for example if there are any frequencies where the phase for each are related by $pi$ radians there will be complete cancellation. The only way the resulting diagram can maintain a constant magnitude is if the all pass filter similarly has a linear phase (which is a trivial all-pass and further would not modify phase to perform phase correction).

To do phase correction you would use the all pass filter directly (this is its purpose) which as explained above is a filter that modifies only the phase response.

  • $\begingroup$ And should the LMS algorithm suggested dsp.stackexchange.com/questions/63141/…, in case when rx and tx are swapped also correct the phase? I tried testing it where rx is a bit shifted version of tx, but I don't get them aligned after the filtering. $\endgroup$
    – Deanna77
    Jun 27 '20 at 16:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.