Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

linear chirp signal generation ?

Asked by Aniket on 5 Feb 2013
Latest activity Answered by REEM ALI on 30 Jan 2014

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);

**********************************************

0 Comments

Aniket

Tags

Products

No products are associated with this question.

3 Answers

Answer by Youssef KHMOU on 5 Feb 2013
Edited by Youssef KHMOU on 5 Feb 2013
Accepted answer

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)

To check the Amplitude spectrum (100Hz,400Hz), try my submission : http://www.mathworks.com/matlabcentral/fileexchange/40002-psd-power-spectral-density-and-amplitude-spectrum-with-adjusted-fft

4 Comments

Youssef KHMOU on 7 Feb 2013

hi, consider the slope as :

 K=f2-f1/2 ;
then :
 f1=f1*semi_t+(K*semi_t);
 f2=f1(end)+f2*semi_t-(K*semi_t);

We added "f(end)" to have continuity in the frequency , to test do this :

f1=f1*semi_t+(K*semi_t);
f2=f2*semi_t-(K*semi_t); 
f=[f1 f2]; plot(t,f)
vamsi on 23 Aug 2013

hi youssef i execuded the code but the output is not comming for fs=500e6,f1=160e6 ,f2=170e6 ,t=5e-6 could u please explain that...

Youssef KHMOU on 24 Aug 2013

hi vamsi,

Your parameters do not fit the last example because of scaling problem; the frequency continues to increase or cant reach the final value f2 . To overcome this issue, consider the frequency as function F=at+constant that when time ends F=f2 and when time starts F=f1 :

Fs=500e6; 
f=5e-6; 
t=0:1/Fs:tf-1/Fs;
f1=160e6 ;
f2=170e6; 
SLOPE=(f2-f1)./t(end);
F=f1+SLOPE*t;
y=1.33*cos(2*pi*F.*t);
plot(t,y)
fy=fft(y);
Freq=(0:length(t)-1)*Fs/length(t);
figure, plot(Freq(1:end/2),abs(fy(1:end/2)))

Have you ever used the function chirp(t,f0,t1,f1) ?

Youssef  KHMOU
Answer by Honglei Chen on 5 Feb 2013

It should be

cos(2*pi*f.*t)

instead of

cos(f)

0 Comments

Honglei Chen
Answer by REEM ALI on 30 Jan 2014

please i want to generate triangular modulation sweep of fmcw of rx and tx

0 Comments

REEM ALI

Contact us