linear chirp signal generation ?

76 views (last 30 days)
Aniket
Aniket on 5 Feb 2013
Commented: Neal Bambha on 16 Dec 2019
hello i don't want to use chirp inbuilt function and i have written a code for chirp. could any one tell me is the code is correct ? i have simulate it and getting plot but at instantaneous time t1, I am not getting frequency change.
i have written a code according to equation of chirp signal generation.
please tell me this is correct ?
*****************************************
f1 =10;
f2 = 50 ;
t =0:0.001:20;
t1 = 10;
alpha = (f2-f1)/t1;
f= (alpha)*t + f1;
xx =1*cos(f);
plot (t,xx);
**********************************************
  1 Comment
Neal Bambha
Neal Bambha on 16 Dec 2019
This is not the correct expression for a linear chirped signal. See the wikipedia page for "Chirp" There is a t-squared term in the sine. Otherwise you will not have the correct spectrum
chirp_slope = (f2 - f1)/t(end);
chirp_signal = sin(2*pi*(0.5*chirp_slope*t.^2 + f1*t));

Sign in to comment.

Accepted Answer

Youssef  Khmou
Youssef Khmou on 5 Feb 2013
Edited: Youssef Khmou on 5 Feb 2013
hi, try this :
Fs=1000; % sample rate
tf=2; % 2 seconds
t=0:1/Fs:tf-1/Fs;
f1=100;
f2=400; % start @ 100 Hz, go up to 400Hz
semi_t=0:1/Fs:(tf/2-1/Fs);
sl=2*(f2-f1/2);
f1=f1*semi_t+(sl.*semi_t/2);
f2=f1(end)+f2*semi_t-sl.*semi_t/2;
f=[f1 f2];
y=1.33*cos(2*pi*f.*t);
plot(t,y)
  6 Comments
Atilla Golan
Atilla Golan on 21 Jan 2018
Edited: Atilla Golan on 21 Jan 2018
Hi Youssef, Can we try up-going and down going chirp together? (without using chirp function on Matlab). In a time range of [1.2s 2.7s] (for example) my function should go up 0.6s (since 1.2s to 1.8s) and go down for the rest (since 1.8s to the end:2.7s). I mean in a constant frequency range, function goes up and down during time like quadratic chirp function but without using chirp.
Dhananjay Singh
Dhananjay Singh on 25 Feb 2019
hi youssef,
the code you last sent doesn't work when i set the values of f1, f2 in Khz. can you help?

Sign in to comment.

More Answers (3)

Honglei Chen
Honglei Chen on 5 Feb 2013
It should be
cos(2*pi*f.*t)
instead of
cos(f)

REEM ALI
REEM ALI on 30 Jan 2014
please i want to generate triangular modulation sweep of fmcw of rx and tx

farouk behar
farouk behar on 11 Aug 2015
f = 150; a =5; w =2*pi*f; t =0:0.1:20; theta = pi/2; X = a*cos((w*t)+theta); y0 = X + 2*rand(size(t));
plot(t,y0)

Tags

Community Treasure Hunt

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

Start Hunting!