Chirp信号基础知识及matlab实现

Chirp信号的表达式如下: x ( t ) = e x p ( j 2 π ( f 0 t + 1 2 k t 2 ) ) x(t)=exp(j2pi (f_0t+frac{1}{2} kt^2)) x(t)=exp(j2π(f0t+21kt2))

其中, f 0 f_0 f0 称作起始频率,k为调频率 对相位进行求导,得到角频率以及频率随时间的线性变化关系 f = f0+k*t,也可通过欧拉公式转换得到。

给定信号信号时间长度为50ms 带宽 B=5KHz,初始频率 f 0 = 3 K H z f_0=3KHz f0=3KHz 采样频率为 f s f_s fs = 44100Hz.

(1)方法一:(matlab自带函数)

% chirp信号生成的第一种方法

t=0: 1/44100 :0.05;                    % 采样率是44100HZ
y=chirp(t,3000,0.05,8000);% 第一个参数表示时间长度,第二个参数表示当t=0s时对应的频率,第三个和第四个参数为当t=0.05s时对应的频率
subplot(2,1,1);
plot(y);
subplot(2,1,2);
spectrogram(y,256,250,256,44100);

运行结果:

(2)方法二:(表达式)

t = (1:2205)/44100;
f0 = 3000;
u = 10^5;
y = exp(1j*2*pi*(f0*t+1/2*u*t.*t));
figure;
subplot(2,1,1);
plot(imag(y));
title(chirp信号虚部);
subplot(2,1,2);
spectrogram(imag(y),256,250,256,44100); 
figure;
subplot(2,1,1);
plot(real(y));
title(chirp信号实部);
subplot(2,1,2);
spectrogram(real(y),256,250,256,44100);

运行结果:

经验分享 程序员 微信小程序 职场和发展