用Matlab生成扫频Cosine信号

  • Post author:
  • Post category:其他




用Matlab生成扫频Cosine信号

生成扫频Cosine信号有个误区,我一开始想当然的认为只需要把扫频频率



f

(

t

)

f(t)






f


(


t


)





代入Cosine信号,即





x

(

t

)

=

c

o

s

(

2

π

f

(

t

)

t

)

x(t)=cos(2\cdot\pi\cdot f(t)\cdot t)






x


(


t


)




=








c


o


s


(


2













π













f


(


t


)













t


)










f

(

t

)

f(t)






f


(


t


)





是频率随时间变化的函数,常见的线性调频信号里



f

(

t

)

f(t)






f


(


t


)





是形如



f

(

t

)

=

a

+

b

t

f(t)=a+bt






f


(


t


)




=








a




+








b


t





的线性函数。这种简单的代入是错误的。正确的理解是,频率是相位关于时间的微分,相反地,相位是频率关于时间地积分。因此之前的式子改为





x

(

t

)

=

c

o

s

(

2

π

f

(

t

)

d

t

t

)

x(t)=cos(2\cdot\pi\cdot\int f(t)dt\cdot t)






x


(


t


)




=








c


o


s


(


2













π


















f


(


t


)


d


t













t


)







就正确了。

举个例子,用Matlab生成采样率



F

s

=

100

M

H

z

Fs=100MHz






F


s




=








1


0


0


M


H


z





、载频



F

c

=

25

M

H

z

F_{c}=25MHz







F











c





















=








2


5


M


H


z





、调制带宽



B

W

=

8

M

H

z

BW=8MHz






B


W




=








8


M


H


z





、调制时间为



T

R

P

=

2

m

s

TRP=2ms






T


R


P




=








2


m


s





的扫频Cosine信号。

Fs = 100e6;                % 中频数字信号的采样率(Saps) 
Ts = 1/Fs;                 % 中频数字信号的采样时间(Hz) 
T = 10e-3;                 % 积分时间(s) 
N = floor(T / Ts);         % 积分时间(Count) 
t = 0:Ts:(N - 1)*Ts;    
ChirpFc = 25e6;
ChirpBW = 8e6;
ChirpTRP = 2e-3;
x = cos(2 * pi * cumsum((sawtooth(2 * pi * 1 / ChirpTRP * t', 1/2) * ChirpBW / 2 + ChirpFc) * Ts));

代码中函数



c

u

m

s

u

m

(

)

cumsum(*)






c


u


m


s


u


m


(





)





是积分函数。

生成信号的时频谱为

在这里插入图片描述
频率随时间变化为

在这里插入图片描述



版权声明:本文为u011816681原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。