最小副瓣峰值編碼之P相碼 含Matlab原始碼

2021-10-18 23:04:49 字數 2257 閱讀 8631

具有最小時間副瓣電平但是超過巴克碼的時間副瓣電平的二進位制編碼稱為***最小副瓣峰值編碼*** 。這些編碼通常用計算機搜尋技術尋找。

下面主要介紹其中著名的p多相編碼

lewis和kretschmer編碼(p1,p2,p3,p4)

lewis和kretschmer研究了p1、p2、p3和p4多相位編碼 。這些編碼是lfm脈衝壓縮波形的階躍近似 ,其距離副瓣低,且具有與lfm編碼一樣的都卜勒容忍性。p1和p2編碼是法蘭克碼的修正版本,其dc頻率再脈衝中心而不是起始處。對於數字雷達系統中遇到的在脈衝壓縮前的接收機頻寬限制,他們能夠更加容忍。與法蘭克碼一樣,p1編碼包含 m平方個碼元,但是第 i個碼元與第j 個組之間的關係表示為

式中, i和j 是1~m 間的整數。

圖 1 p1碼相位與時間關係特性(時相特性)(n=64)

圖 2 p1碼自相關函式

p2編碼是類似的,但是相位是對稱的,具有如下性質:

圖 3 p2碼相位與時間關係特性(n=64)

基本上,p3和p4編碼是通過將乙個lfm波形變換到基帶而匯出的 。它們比法蘭克、p1或p2編碼的都卜勒容忍度更高,且對雷達系統**現的壓縮前頻寬限制的容忍度也更高。

p3編碼的相位由下式給出:

圖 4 p3碼相位與時間關係特性(n=64)

p4編碼的相位關係類似:

圖 5 p4碼相位與時間關係特性(n=64)

源**如下:

clc;

clear all;

close all;

%————————————code of p1—————————————%

n=64;

%creating the phase matrix

for k=1:n

for n=1:n

phi(k,n)= (-pi/n)*(n-(2*k-1))*((k-1)*n+(n-1));

endend

nn=0;

for n=1:n

for k=1:n

nn=nn+1;

phi2(nn)=phi(n,k);

endend

%————————————畫出相位圖—————————————%

xx=0:length(phi2)-1;

figure(1);

stairs(xx,phi2);grid

title([ 'p1碼時相特性曲線']);

xlabel('phase change');

ylabel('p1 phase shift /弧度');

%——————————求 p1 自相關特性————————————%

un=rem(phi2, 2*pi);%un=rem(phi2, 2*pi);%求相位關於2π的餘

p1_signal=exp(j*un(1:1:n^2)); % p1 signal

[a,b]=xcorr(p1_signal);

d=abs(a);

d=20*log10(d+1e-6);

figure(2);

plot(b,d);

title('p1碼自相關函式');

grid on;

%%% p2p3p4的繪製過程與p1類似 有需要的可以在我的以下部落格中查詢

LeetCode之尋找峰值

峰值元素是指其值大於左右相鄰值的元素。給定乙個輸入陣列 nums,其中 nums i nums i 1 找到峰值元素並返回其索引。陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。你可以假設 nums 1 nums n 示例 1 輸入 nums 1,2,3,1 輸出 2 解釋 3 是...

leetcode之162尋找峰值Golang

峰值元素是指其值大於左右相鄰值的元素。給定乙個輸入陣列nums,其中nums i nums i 1 找到峰值元素並返回其索引。陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。你可以假設nums 1 nums n 示例 1 輸入 nums 1,2,3,1 輸出 2 解釋 3 是峰值元...

編碼方式,編碼之問題

編碼方式對於程式的重要不言而喻,若是不能徹底理解編碼方式,則在許多的地方都會困擾著你。對於編碼方式的困擾,在剛學習jsp時出現的亂碼問題到現在一年有餘,一直在模糊狀態,如今,也不知道是不是真的徹底明白,只是有一點小小的收穫,期待以後的徹底理解,在此先記錄一下點點滴滴。從開始的亂碼起。首先是jsp中的...