1. 程式人生 > >【 MATLAB 】適合初學者的 chirp 理解與推導

【 MATLAB 】適合初學者的 chirp 理解與推導

作為一個菜鳥,當我看到網路上有關chirp的介紹,複雜地讓意志不堅定者想要放棄。為什麼要花費一番力氣學習chirp,對於個人而言,當然能用到,chirp在雷達上還是有一席之地的。就連我手上的那個寬頻接收機甚至也有chirp,我當時就不理解,或者說到現在也不是太會。這裡作為一個開篇,也是一種緣分,我本想學學訊號處理工具箱中的一些函式,今天讓我遇到了chirp。

那就開始吧。對於推導部分,打公式太費勁,我就手寫吧。

事實上,維基百科上寫的是很好的,也很基礎,我是借鑑上面的一些東西,唯一的麻煩就是英文,雖然也能看懂,但是不得不說看起來不如中文方便,理解起來還有一個大腦翻譯的過程。

chirp

 is a signal in which the frequency increases (up-chirp) or decreases (down-chirp) with time. In some sources, the term chirp is used interchangeably with sweep signal. It is commonly used in sonar and radar, but has other applications, such as in spread-spectrum communications.

chirp是頻率隨時間增加或減小的一種訊號。在某些領域中,chirp這個詞可以與掃描訊號互換使用。通常用於雷達,聲吶中,但是也有別的用途,例如擴頻通訊。

如下:

首先,如果一個波形被定義為如下:

Linear chirp

下面給出一個線性chirp波形,也就是頻率隨時間線性增加的正弦波;

% A linear chirp waveform;
% a sinusoidal wave that increases in frequency linearly over time

clc
clear
close all

t = 0:.001:5;
x = sin( 2 .* pi .* ( 0.1 + t ) .* t );

plot(t,x);
title('a sinusoidal linear chirp')
xlabel('t/sec')
ylabel('amplititude')

指數(幾何)chirp

In an exponential chirp, the frequency of the signal varies exponentially as a function of time:

也就是說,在指數chirp中,訊號的頻率隨時間呈現指數變化:

% An exponential chirp waveform;
% a sinusoidal wave that increases in frequency exponentially over time

clc
clear
close all

t = 0:.001:5;
x = sin( 2 * pi *0.1 * ( 3 .^ t) .* t );

plot(t,x);
title('a exponential chirp')
xlabel('t/sec')
ylabel('amplititude')

沒有什麼目的,最後只是把上面兩幅圖畫到一起作為對比:

% A linear chirp waveform;
% a sinusoidal wave that increases in frequency linearly over time

clc
clear
close all

t = 0:.001:5;
x1 = sin( 2 .* pi .* ( 0.1 + t ) .* t );

subplot(2,1,1)
plot(t,x1);
title('a sinusoidal linear chirp')
xlabel('t/sec')
ylabel('amplititude')

% An exponential chirp waveform;
% a sinusoidal wave that increases in frequency exponentially over time

t = 0:.001:5;
x2 = sin( 2 * pi *0.1 * ( 3 .^ t) .* t );

subplot(2,1,2)
plot(t,x2);
title('a exponential chirp')
xlabel('t/sec')
ylabel('amplititude')