MATLAB: Chirp Signal that decreases frequency then stabilizes to a constant frequency

communicationdigital signal processingsignal processing

Hi!
I would like to create a chirp or a sweep signal that starts at about 1.5 Hz then decreases to about .6 Hz and then remains at .6 Hz frequency. What is the best way to implement this?
Fs = 1000; % Sampling rate of signal
T=1/Fs; % period
t = 0:T:10; % sample times
% amplitude of message signal
vm = .15
% amplitude of carrier signal
vc = .15
% message frequency
fm = .1
% carrier freq
fc = 1
% modulation index
m = 5
%
t1 = 0:T:10;
t2 = (4+T):T:10;
figure
subplot(2,1,1)
y1 = [sin(2*pi*fm*t1)];
plot(t,y1);
subplot(2,1,2)
y = vc*sin(2*pi*fc*t+m.*y1);
plot(t,y);

Best Answer

You may try the following idea
% Chirp signal with an initial frequency of 0 and target frequency of 10
hchirp1 = dsp.Chirp( ...
'InitialFrequency', 0,...
'TargetFrequency', 10, ...
'TargetTime', 10, ...
'SweepTime', 100, ...
'SampleRate', 50, ...
'SamplesPerFrame', 500);
% Chirp signal with an constant frequency of 10
hchirp2 = dsp.Chirp( ...
'InitialFrequency', 10,...
'TargetFrequency', 10, ...
'TargetTime', 10, ...
'SweepTime', 100, ...
'SampleRate', 50, ...
'SamplesPerFrame', 500);
% Chirp signal with an initial frequency of 0 and a steady target frequency of 10
plot([hchirp1();hchirp2()]);