1. 程式人生 > >啁啾信號chirp(掃頻余弦信號)

啁啾信號chirp(掃頻余弦信號)

generate 生成 clas itl 關系 image sha 9.png art

Chirp信號

Generate swept-frequency cosine (chirp) signal

Chirp信號是一個典型的非平穩信號,在通信、聲納、雷達等領域具有廣泛的應用, Chirp譯名:啁啾(讀音:“周糾”),是通信技術有關編碼脈沖技術中的一種術語,是指對脈沖進行編碼時,其載頻在脈沖持續時間內線性地增加,當將脈沖變到音頻地,會發出一種聲音,聽起來像鳥叫的啁啾聲,故名“啁啾”。 後來就將脈沖傳輸時中心波長發生偏移的現象叫做“啁啾”。例如在光纖通信中由於激光二極管本身不穩定而使傳輸單個脈沖時中心波長瞬時偏移的現象,也叫“啁啾”。

Chirp信號的表達式如下:

技術分享圖片

  • 式中f0稱作起始頻率。
  • u0為調頻率
  • 對相位進行求導,得到角頻率以及頻率隨時間的線性變化關系 f = f0+u0*t

matlab生成chirp信號

chirp函數

y = chirp(t,f0,t1,f1,’method’,phi,‘shape‘)

根據指定的方法在時間t上產生余弦掃頻信號,f0為初始時刻的瞬時頻率,f1為t1時刻的瞬時頻率,f0和f1單位都為Hz。如果未指定,f0默認為e-6(對數掃頻方法)或0(其他掃頻方法),t1為1,f1為100Hz。

掃頻方法有linear線性掃頻、quadratic二次掃頻、logarithmic對數掃頻;

phi允許指定一個初始相位(以°為單位),默認為0,如果想忽略此參數,直接設置後面的參數,可以指定為0或[];

shape指定二次掃頻方法的拋物線的形狀,凹還是凸,值為concave或convex,如果此信號被忽略,則根據f0和f1的相對大小決定是凹還是凸。

線性掃頻

t = 0:0.001:1; % 1 secs @ 1kHz sample rate 
y = chirp(t,0,1,50); % Start @ DC 0Hz, % cross 50Hz at t=1 sec 
plot(t, y)
figure
% spectrogram(x,window,noverlap,nfft,fs)
spectrogram(y,256,250,1024,1000,‘yaxis‘) %% nfft=1024, fs=1000Hz, window = 256, numoverlap = 250
%specgram(y,1024,1000,256,250) % nfft=1024, fs=1000Hz, window = 256, numoverlap = 250

技術分享圖片

技術分享圖片

短時傅裏葉變換

specgram(y, nfft, fs, window, numoverlap) 或 spectrogram(y, window, numoverlap, nfft, fs, ‘yaxis‘)

nfft是fft的長度,越長的話,頻域分辨率越高。

fs就是采樣率;

window是指窗的長度,一般和nfft相同即可;

numoverlap是指nfft減去步長,越大越好,但運算量越大。一般取nfft的3/4效果就比較好了。

二次掃頻

t = 0:0.001:1; % 1 secs @ 1kHz sample rate 
y = chirp(t,0,1,50, ‘quadratic‘, 0, ‘convex‘); % Start @ DC 0Hz, % cross 50Hz at t=1 sec 
%y = chirp(t,0,1,50, ‘quadratic‘, 0, ‘concave‘); % Start @ DC 0Hz, % cross 50Hz at t=1 sec 
plot(t, y)
figure
% spectrogram(x,window,noverlap,nfft,fs)
spectrogram(y,256,250,1024,1000,‘yaxis‘) %% nfft=1024, fs=1000Hz, window = 256, numoverlap = 250

技術分享圖片

技術分享圖片

對數掃頻

t = 0:0.001:1; % 1 secs @ 1kHz sample rate 
%y = chirp(t,0,1,50, ‘quadratic‘, 0, ‘convex‘); % Start @ DC 0Hz, % cross 50Hz at t=1 sec 
y = chirp(t,1e-6,1,50, ‘logarithmic‘); % Start @ DC 1e-6Hz, % cross 50Hz at t=1 sec 
plot(t, y)
figure
% spectrogram(x,window,noverlap,nfft,fs)
spectrogram(y,256,250,1024,1000,‘yaxis‘) %% nfft=1024, fs=1000Hz, window = 256, numoverlap = 250

技術分享圖片

技術分享圖片

啁啾信號chirp(掃頻余弦信號)