필터 지우기
필터 지우기

Discontinuities in LFM chirp signal

조회 수: 1 (최근 30일)
Stephen
Stephen 2013년 7월 10일
Hi All,
I am generating a customized bidirectional chirp signal using the built-in CHIRP function. I am doing this by generating an up chirp and down chirp for each period in my signal and then concatenating them together. I have taken great pains to try and ensure continuous phase, but I am still getting very sharp "knees" in the time domain signal right at the data points where up and down chirps meet, which tells me that phase is likely not continuous.
Below is the heart of the code:
j = 1; thetaNought = 0; for i = 1:chirpSize:length(time)
currentStartFrequency = startFrequencies(j);
if(j < numChirps)
nextStartFrequency = startFrequencies(j+1);
else
nextStartFrequency = startFrequencies(1);
end
peakFrequency = currentStartFrequency + BANDWIDTH;
%chrip up
y = chirp(time(1:riseSize),currentStartFrequency,time(riseSize), peakFrequency, 'linear', rad2deg(thetaNought));
thetaNought = acos(y(end));
%chirp down
yDown = chirp(time(1:fallSize),peakFrequency,time(fallSize),nextStartFrequency,'linear',rad2deg(thetaNought));
thetaNought = acos(yDown(end));
tdSignal(i:i+chirpSize-1) = [y yDown];
j = j + 1;
end
Here, start frequencies are defined ahead of time (but are all the same for the purposes of testing the code), and correspond to the trough frequencies of the chirp. Variables with *Size are in data points, and the time vector is predefined based on the sampling rate and number of chirps desired in the signal (I use "chirp" to mean one period of the signal, or an up + down chirp). Note that the starting theta value is always forced to be the same as the last theta value.
Can anyone see why this would be producing discontinuities? I can provide any more information if that would be helpful.
Thanks in advance!

답변 (0개)

카테고리

Help CenterFile Exchange에서 Signal Generation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by