用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信号的主要内容,如果未能解决你的问题,请参考以下文章

matlab怎样进行频谱分析

如何用matlab画出周期矩形脉冲信号及频谱图

matlab中怎么生成啁啾信号

用matlab怎样画出类似热点的图,或者等温等高的图

matlab的音乐信号的分析与处理设计的实验咋做?

怎样用matlab中画出模糊控制器2个输入,3个输出的隶属函数图