最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

alias - Issue with Shifting Aliasing Signal on Time Axis in MATLAB - Stack Overflow

programmeradmin1浏览0评论

I have two chirp signals "s1" and "s2" in MATLAB:

% Parameter Setting
R = 618e3;     
V = 7600;                       
lambda = 0.0313;                     
Fa = 5000;  % Sampling Rate (Can't not Change)
N = 10000;  % Sample Points
time_delay = 6.13e-5;

% Axis Setting                            
ta = ( -N/2 : N/2-1 )/Fa;
fa = ( -N/2 : N/2-1 )*( Fa/N );

s1 = exp(-1j*2*pi/lambda*(V^2*(ta + time_delay).^2)/R);
s2 = exp(-1j*2*pi/lambda*(V^2*(ta - time_delay).^2)/R);

It is obvious that s1 has a positive shift (time_delay) on time axis ta, while the signal s2 has a negative shift on time axis.

I need to make the two signals equal, which means s1-s2 equal to 0.

Besides, these two signals are aliasing due to the sampling rate Fa is not high enough. I am unable to change the sampling rate and the length of the time axis, as these are determined by certain radar parameters.

I tried to use the time shifting property in the Fourier transform.

% Zero padding to avoid circular convolution
s1 = [zeros(1,0.5*N), s1, zeros(1,0.5*N)];
s2 = [zeros(1,0.5*N), s2, zeros(1,0.5*N)];
fa2 = ( -N : N-1 )*( Fa/(2*N) ); % fa with padding (2N)

% s1 Shifting By Fourier Property
S1 = fftshift(fft(ifftshift(s1)));
S1 = S1.*exp(-1j*2*pi.*fa2.*time_delay);
s1r = fftshift(ifft(ifftshift(S1)));
s1r = s1r(0.5*N+1:end-0.5*N);

% s2 Shifting By Fourier Property
S2 = fftshift(fft(ifftshift(s2)));     
S2 = S2.*exp(1j*2*pi.*fa2.*time_delay);   
s2r = fftshift(ifft(ifftshift(S2)));
s2r = s2r(0.5*N+1:end-0.5*N);

Result = s1r - s2r;


figure(1);
plot(ta,abs(Result)); xlabel("t(s)");
title('After Substraction');

However, the result is the following picture:

The center part is quite low, but the two sides are very high and I think this is because the signals are aliasing. I don't know how to fix this problem. I would greatly appreciate any guidance or suggestions to help me resolve this issue.

I have two chirp signals "s1" and "s2" in MATLAB:

% Parameter Setting
R = 618e3;     
V = 7600;                       
lambda = 0.0313;                     
Fa = 5000;  % Sampling Rate (Can't not Change)
N = 10000;  % Sample Points
time_delay = 6.13e-5;

% Axis Setting                            
ta = ( -N/2 : N/2-1 )/Fa;
fa = ( -N/2 : N/2-1 )*( Fa/N );

s1 = exp(-1j*2*pi/lambda*(V^2*(ta + time_delay).^2)/R);
s2 = exp(-1j*2*pi/lambda*(V^2*(ta - time_delay).^2)/R);

It is obvious that s1 has a positive shift (time_delay) on time axis ta, while the signal s2 has a negative shift on time axis.

I need to make the two signals equal, which means s1-s2 equal to 0.

Besides, these two signals are aliasing due to the sampling rate Fa is not high enough. I am unable to change the sampling rate and the length of the time axis, as these are determined by certain radar parameters.

I tried to use the time shifting property in the Fourier transform.

% Zero padding to avoid circular convolution
s1 = [zeros(1,0.5*N), s1, zeros(1,0.5*N)];
s2 = [zeros(1,0.5*N), s2, zeros(1,0.5*N)];
fa2 = ( -N : N-1 )*( Fa/(2*N) ); % fa with padding (2N)

% s1 Shifting By Fourier Property
S1 = fftshift(fft(ifftshift(s1)));
S1 = S1.*exp(-1j*2*pi.*fa2.*time_delay);
s1r = fftshift(ifft(ifftshift(S1)));
s1r = s1r(0.5*N+1:end-0.5*N);

% s2 Shifting By Fourier Property
S2 = fftshift(fft(ifftshift(s2)));     
S2 = S2.*exp(1j*2*pi.*fa2.*time_delay);   
s2r = fftshift(ifft(ifftshift(S2)));
s2r = s2r(0.5*N+1:end-0.5*N);

Result = s1r - s2r;


figure(1);
plot(ta,abs(Result)); xlabel("t(s)");
title('After Substraction');

However, the result is the following picture:

The center part is quite low, but the two sides are very high and I think this is because the signals are aliasing. I don't know how to fix this problem. I would greatly appreciate any guidance or suggestions to help me resolve this issue.

Share Improve this question asked Mar 11 at 15:11 jason sheenjason sheen 1 4
  • Have you considered to check whether your shift works like intended by inspecting the spectrum before and after shifting ? – Irreducible Commented Mar 12 at 9:34
  • @Irreducible How can I determine if my approach is correct based on the spectrum? I tried plotting the amplitude of the spectrum, but I don't know how to interpret the results. – jason sheen Commented Mar 12 at 13:04
  • The time shifting property of the Fourier transform states that the magnitude spectrum should not change, however, there should be a linear shift in the phase spectrum. – Irreducible Commented Mar 13 at 6:28
  • @Irreducible Yes, the results show that there is a linear shift in the phase spectrum and the magnitude is unchanged. – jason sheen Commented Mar 13 at 11:34
Add a comment  | 

1 Answer 1

Reset to default 0

Trying to solve the signal subtraction analytically for s1-s2=0,

exp(-1j*8*pi/lambda*(V^2*ta*time_delay)/R) = 1 ;

Base on the parameters that are fixed, it might be easier for you to solve this equation.

PS: This is my first answer so five me if it is too crude.

发布评论

评论列表(0)

  1. 暂无评论