用MATLAB怎样画出一个Chirp信号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用MATLAB怎样画出一个Chirp信号相关的知识,希望对你有一定的参考价值。
参考技术A matlab提供chirp函数,可以直接用,如示例:t = 0:0.001:2; % 2 secs @ 1kHz sample rate
y = chirp(t,0,1,200); % Start @ DC,
% cross 150Hz at t=1 sec
spectrogram(y,256,250,256,1E3,'yaxis')
figure(2)
plot(t,y)
-----------------这里t指出采样频率1khz和采样时长2秒;y是用chirp生成chirp信号;0是从频率为0的直流开始,1和200是指定在1秒的时候频率线性增长到200hz。
上图是频率随时间增加的曲线图
这是生产的chirp信号的时域图
chirp信号脉冲压缩,用于雷达信号处理,产生chirp信号后进行压缩,以实现高距离分辨力
% Author: Tian Liyu, BIT
% Date: Nov 16, 2009
% Description: chirp pulse compression
%matlab ver: 7.0.4, R14
function chirp_pc_result = Chirp_Pulse_Comp(LFM_Fre_Width, LFM_T_Width, Window_Type, Fs)
T = [0: 1/Fs : LFM_T_Width];
F0 = -LFM_Fre_Width/2;
%F0 = 0; %如果F0=0, 加窗后脉压的结果中的主瓣有分裂; 用复chirp信号仿真就不存在这个问题
T1 = LFM_T_Width;
F1 = F0 + LFM_Fre_Width;
chirp_echo = chirp(T,F0,T1,F1);
figure(1)
plot(chirp_echo);
title('chirp回波信号')
%chirp_MF: chirp脉压的匹配滤波器, 信号的(共轭)反转
chirp_MF = chirp_echo(length(chirp_echo) : -1 : 1);
win_len = length(chirp_echo);
%加窗
windows_chirp = ones( win_len , 1).';
switch Window_Type
case 0,
windows_chirp = ones( win_len , 1).'; %矩形窗
case 1,
windows_chirp = hamming( win_len ).';
case 2,
windows_chirp = hanning( win_len ).';
case 3,
windows_chirp = blackman( win_len ).';
otherwise,
end
chirp_MF = chirp_MF .* windows_chirp;
%chirp脉冲压缩
chirp_pc_result = abs(conv(chirp_echo, chirp_MF));
figure(2)
plot(chirp_pc_result);
title('chirp脉压的结果')
figure(3)
plot(20*log10(chirp_pc_result/max(chirp_pc_result)));
title('chirp脉压的结果(dB表示)')
ylabel('dB');
grid
D84
以上是关于用MATLAB怎样画出一个Chirp信号的主要内容,如果未能解决你的问题,请参考以下文章