国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于FPGA的脈沖壓縮設(shè)計(jì)(Matlab+vivado)

這篇具有很好參考價(jià)值的文章主要介紹了基于FPGA的脈沖壓縮設(shè)計(jì)(Matlab+vivado)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:本科學(xué)了四年機(jī)械,后面轉(zhuǎn)頭去了電子信息讀研,以FPGA的脈壓入手,在從零開始的路上CSDN對(duì)我的幫助很大,現(xiàn)整理所學(xué),與諸君共勉。本文不少代碼均是參考CSDN上的前輩們一步一步理解做出來的,如有冒犯之處,煩請(qǐng)諒解。

目錄

一:脈沖壓縮原理介紹

1.我們簡(jiǎn)單了解一下脈沖壓縮到底是什么?

2.我們?cè)賮砹私庖幌挛覀兯褂玫木€性調(diào)頻信號(hào)

二.基于matlab的脈沖壓縮仿真

1.脈沖壓縮信號(hào)生成

2.DDC數(shù)字下變頻?

3.匹配濾波

?4.加窗處理

?5.雜波抑制和多目標(biāo)測(cè)距

三.Vivado實(shí)現(xiàn)


一:脈沖壓縮原理介紹

1.我們簡(jiǎn)單了解一下脈沖壓縮到底是什么?

首先,一個(gè)好的雷達(dá)是能夠準(zhǔn)確探測(cè)足夠遠(yuǎn)的兩個(gè)足夠近的目標(biāo)。

在最早的時(shí)候,雷達(dá)脈沖寬度與帶寬是呈反比的,在這個(gè)基礎(chǔ)上,脈沖寬度決定了信號(hào)的最大探測(cè)距離,而脈沖帶寬決定了距離的分別率,這就導(dǎo)致距離分辨力和最大探測(cè)距離出現(xiàn)了不可調(diào)和的矛盾。

我們通過這樣兩個(gè)對(duì)比圖來看,早期雷達(dá)時(shí)寬帶寬積為1之間帶來的矛盾:

寬脈沖信號(hào),信號(hào)能量足夠,但是回波重疊

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?窄脈沖信號(hào),回波不重疊,探測(cè)距離不夠

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?(看到這里,其實(shí)能夠看見探測(cè)距離和探測(cè)精度其實(shí)都是受到了時(shí)寬的影響,由于早期雷達(dá)帶寬和時(shí)寬呈反比,才將二者聯(lián)系起來,但是早期人們不知道雷達(dá)探測(cè)精度只與帶寬有關(guān),所以一直所說的探測(cè)精度同探測(cè)距離矛盾的問題一定要建立在早期雷達(dá)時(shí)寬和帶寬呈反比的基礎(chǔ)上。)

針對(duì)探測(cè)距離同精度的問題,隨之就有學(xué)者提出了脈沖壓縮技術(shù)的核心,即匹配濾波。我們?cè)诎l(fā)射時(shí)仍然采取大時(shí)寬信號(hào),而在接收時(shí)將信號(hào)壓縮為窄信號(hào),這樣就解決了雷達(dá)這兩個(gè)指標(biāo)之間的矛盾。

?我們通過如圖來理解脈沖壓縮,很形象和直觀,在時(shí)域上:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?這樣一來多目標(biāo)帶來的回波就不至于互相重疊掩埋。

隨著雷達(dá)的發(fā)展,人們漸漸發(fā)現(xiàn)了雷達(dá)探測(cè)精度只與帶寬有關(guān)!

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?

?式子左邊為距離分辨力,右邊C為光速,可以看到帶寬越大,距離分辨力越高。

并且隨著發(fā)展,我們發(fā)現(xiàn)了許多大時(shí)寬帶寬積信號(hào),這種信號(hào)一出來,其實(shí)時(shí)寬和帶寬一定程度沒有那么大的矛盾了,而這個(gè)時(shí)候,脈沖壓縮技術(shù)更多的使得信號(hào)達(dá)到它的最大理論分辨力,即上圖公式。

當(dāng)我發(fā)射一個(gè)大時(shí)寬信號(hào)時(shí)候,回波信號(hào)能被壓縮為一個(gè)窄尖,理論上不超過上圖公式所計(jì)算出的距離分辨力,都會(huì)在時(shí)域上分隔開,我們將在第二章通過matlab進(jìn)行驗(yàn)證和更直觀的說明。

在合成孔徑雷達(dá)里也需要用到脈沖壓縮,這里放一個(gè)我室友幫我跑的學(xué)??s寫,用來做文章封面。

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?文章來源地址http://www.zghlxwxcb.cn/news/detail-804170.html

2.我們?cè)賮砹私庖幌挛覀兯褂玫木€性調(diào)頻信號(hào)

我們直接上表達(dá)式:(這個(gè)式子比較簡(jiǎn)單,我們不做過多的贅述)

值得一提的是根據(jù)歐拉公式,該式子存在余弦和復(fù)數(shù)表達(dá)式,但是復(fù)數(shù)表達(dá)式經(jīng)常存在實(shí)部和虛部的問題,我沒學(xué)過復(fù)變,所以不是很懂,不過matlab上還是可以跑出來的

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?

我們對(duì)相位求導(dǎo),可以得到瞬時(shí)頻率:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?因此線性調(diào)頻信號(hào)即瞬時(shí)頻率隨時(shí)間線性u(píng)增大的信號(hào)。

同時(shí)LFM也是大時(shí)寬帶寬積信號(hào),其時(shí)寬帶寬積也等于脈沖壓縮的壓縮比

大概就先說這么多吧,之后的推導(dǎo)我們?cè)趍atlab上接著推導(dǎo)。

二.基于matlab的脈沖壓縮仿真

1.脈沖壓縮信號(hào)生成

根據(jù)第一章的公式,我們簡(jiǎn)單模擬一個(gè)幅值為1的線性調(diào)頻信號(hào),其調(diào)頻斜率與帶寬B,時(shí)寬T有關(guān)

我們直接貼代碼:

%% 線性調(diào)頻信號(hào)生成
clc;
close all;
%LFM參數(shù)設(shè)置
B = 30e6;   %帶寬
T = 10e-6;  %時(shí)寬
K = B/T;    %調(diào)頻斜率
Fs = 4*B;   %采樣頻率
F0 = 150e6;   %初始頻率和中心頻率
Ts = 1/Fs;  %采樣周期
N = ceil(T/Ts); %ceil函數(shù)是向上取整數(shù),也常使用四舍五入的round函數(shù)
t = linspace(-T/2,T/2,N); %linspace函數(shù)可以在-T/2到T/2之間產(chǎn)生N個(gè)點(diǎn)(均分)
%產(chǎn)生調(diào)頻信號(hào)
LFM1 = exp( 1j* pi * K * t.^2);                        %線性調(diào)頻信號(hào)復(fù)數(shù)表達(dá)式(F0=0) .*是點(diǎn)乘運(yùn)算
LFM2 = exp( 1j*(2 * pi * F0 * t + pi * K * t.^2));     %線性調(diào)頻信號(hào)復(fù)數(shù)表達(dá)式
LFM3 = cos(pi * K * t.^2);                            %線性調(diào)頻信號(hào)的余弦表達(dá)式(F0=0)
LFM4 = cos(2 * pi * F0 * t + pi * K * t.^2);          %線性調(diào)頻信號(hào)余弦表達(dá)式

通過fft函數(shù)可以看到LFM的頻域圖像

%% 作圖
figure(1)
%subplot(1,2,1)  %生成三行兩列個(gè)子圖,現(xiàn)在激活第一個(gè)
plot(t*1e06,LFM1);
title('線性調(diào)頻信號(hào)(復(fù)數(shù)表達(dá)式(F0=0))');
xlabel('時(shí)間(us)');
ylabel('幅度');
%xlim([-T/2,T/2]); %限制X軸上下限值
grid on;%添加網(wǎng)格
axis tight;
figure(2)
%subplot(1,2,2)  %生成三行兩列個(gè)子圖,現(xiàn)在激活第二個(gè)
f = linspace(-Fs/2,Fs/2,N);
LFM1_FFT = fftshift(abs(fft(LFM1,N)));
%abs返回絕對(duì)值,直接對(duì)函數(shù)傅里葉變換,fftshift調(diào)整0頻位置
plot(f*1e-6,LFM1_FFT);
title('線性調(diào)頻信號(hào)(復(fù)數(shù)表達(dá)式(F0=0))頻域圖');
xlabel('頻率(MHz)');
ylabel('幅值');
grid on;%添加網(wǎng)格
axis tight;
%F0=5e6
figure(3)
%subplot(1,2,1)  %生成三行兩列個(gè)子圖,現(xiàn)在激活第一個(gè)
plot(t*1e6,LFM2);
title('線性調(diào)頻信號(hào)(F0=150HMz)')
xlabel('時(shí)間(us)');
ylabel('幅度');
%xlim([-T/2,T/2]); %限制X軸上下限值
grid on;%添加網(wǎng)格
axis tight;
figure(4)
%subplot(1,2,2)  %生成三行兩列個(gè)子圖,現(xiàn)在激活第二個(gè)
LFM2_FFT = fftshift(abs(fft(LFM2,N)));
plot(f*1e-6,LFM2_FFT);
title('線性調(diào)頻信號(hào)(F0=150HMz)頻域圖')
xlabel('頻率(MHz)');
ylabel('幅值');
grid on;%添加網(wǎng)格
axis tight;

150MHz的中頻圖像過于密集不太好看,我放兩張0頻的以供參考。

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

線性調(diào)頻信號(hào)的生成就到這里

2.DDC數(shù)字下變頻?

一般來說,我們發(fā)射的信號(hào)為了具有更大的能量和抗干擾,穿透力等,都會(huì)搭載高頻信號(hào),但是回來的高頻信號(hào)需要倍頻采樣,這就會(huì)導(dǎo)致采樣頻率過高,所以我們通過DDC數(shù)字下變頻的方式將信號(hào)降到低頻。

主要有三個(gè)步驟:正交調(diào)制、低通濾波、抽取。

可以簡(jiǎn)單講一下正交調(diào)制的原理,首先輸入的信號(hào)經(jīng)過采樣到了處理中心,這時(shí)候NCO(我也不知道是啥)會(huì)產(chǎn)生所需的兩組正交本振信號(hào)(根據(jù)發(fā)射信號(hào)公式可以推出):

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?

?大概可以看清楚吧?將采樣數(shù)據(jù)與正交本振信號(hào)相乘(混頻)之后通過三角函數(shù)積化和差公式分解后,我們可以得到高頻和低頻兩部分:

這里就輸出了I、Q兩路信號(hào),根據(jù)公式可以看到高頻f0被分出到了式子的右邊。

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?

?再通過低通濾波處理,設(shè)置截止頻率,輸出后的信號(hào):

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?

?至于抽取倍頻,其實(shí)就是通過“跨步讀取”的方式進(jìn)一步降低頻率,這個(gè)比較簡(jiǎn)單,就不說了。

接下來,我們通過Matlab進(jìn)行實(shí)操:

我們的正交處理要比上訴簡(jiǎn)單很多,走了一個(gè)捷徑

交處理部分中最關(guān)鍵的是如何產(chǎn)生本振信號(hào),在FPGA實(shí)際處理的過程中,我們可以調(diào)用Vivado中DDC IP核來產(chǎn)生;此外也可以根據(jù)f0和TS來計(jì)算出對(duì)應(yīng)的兩組正交值。我們這里采用第三種最簡(jiǎn)單的方法:(因?yàn)榇蜃謺r(shí)候公式不太好弄,我直接放圖片了)

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?我們?cè)趨?shù)設(shè)計(jì)中預(yù)先將中心頻率vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab設(shè)為150Mhz;采樣頻率vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?設(shè)置為四倍帶寬(即:120MHz)滿足第三章正交處理要求。我這里把DDC這一步另存為一個(gè)函數(shù)方便調(diào)用,代碼一起放上來:

function [ddc_i,ddc_q] = DDC(x)
%% DDC下變頻輸出
n = 1:length(x);
cos_unit = [1,0,-1,0];
cos_osc  =cos_unit(mod(n,4)+1); % mod(b,a) 求余運(yùn)算 ,b/a的余數(shù).
sin_unit = [0,1,0,-1];
sin_osc  =sin_unit(mod(n,4)+1);
DDC_out_i1 = x.*cos_osc;
DDC_out_q1 = x.*sin_osc;
DDC_out_i = filter(filter,DDC_out_i1);
DDC_out_q = filter(filter,DDC_out_q1);
%% 抽取,會(huì)降低分辨率
deciN = 2;
ddc_i = DDC_out_i(1:deciN:length(DDC_out_i));
ddc_q = DDC_out_q(1:deciN:length(DDC_out_q));
end

前面就是正常的信號(hào)進(jìn)入,到filter是我們的濾波器,在Matlab低通濾波這部分處理中,我們可以通過軟件所自帶的fdatool工具直接生成低頻濾波器:首先在命令行窗口中輸入fdatool,軟件會(huì)生成出低通濾波器編輯器Filter Designer,我們調(diào)整濾波器參數(shù)采樣頻率為120MHz,低通截止頻率為22MHz,通過頻率為20MHz,完成參數(shù)設(shè)計(jì)后點(diǎn)擊Designe,系統(tǒng)會(huì)生成出一個(gè)filter.m的工程文件

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?最后就是抽取倍頻。直接放三個(gè)過程圖

生成正交后圖像:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

簡(jiǎn)單說明一下,這個(gè)信號(hào)前面是因?yàn)槲已a(bǔ)了120個(gè)零點(diǎn)(1s),才會(huì)產(chǎn)生前面的直線。

3.匹配濾波

?匹配濾波就是脈沖壓縮的核心步驟了,前面我們只是講了這一步是用來干什么,現(xiàn)在具體講一下為什么,我就不做公式的推導(dǎo)了。

首先通俗一點(diǎn),就是講信號(hào)與其自相關(guān)函數(shù)進(jìn)行時(shí)域卷積,其實(shí)就相對(duì)于1*1=1,100*100=10000(我是這樣理解的),這樣一下就把其加權(quán)放大了,達(dá)到了尖峰的效果,推薦再理解一下卷積

分享一篇文章:https://blog.csdn.net/bitcarmanlee/article/details/54729807

反正就是一個(gè)卷積處理,那么我們知道時(shí)域卷積等效于頻域相乘,所以依據(jù)濾波器的不同進(jìn)入時(shí)期我們會(huì)得到三個(gè)頻域的處理方式。

首先看,時(shí)域卷積:

脈沖壓縮在時(shí)域的處理方式主要是對(duì)線性調(diào)頻信號(hào)與其自相關(guān)函數(shù)做卷積處理。所以第一步是構(gòu)造自相關(guān)函數(shù),我們已知原線性調(diào)頻信號(hào)的參數(shù)與函數(shù),對(duì)其在時(shí)域表達(dá)式進(jìn)行反褶再取共軛后即可得到自相關(guān)函數(shù),之后兩者卷積,即可生成脈壓后的信號(hào)。

自相關(guān)函數(shù)的構(gòu)造,我們主要通過filplr函數(shù)和conj函數(shù)來實(shí)現(xiàn)。前者是進(jìn)行反褶操作,簡(jiǎn)單來說也就是將1、2、3的序列或矩陣輸出為3、2、1。而后者conj則是直接取共軛函數(shù),兩個(gè)函數(shù)依次套用即可生成自相關(guān)函數(shù)。

卷積運(yùn)算是通過Matlab自帶的快速卷積處理函數(shù)conv函數(shù)完成,需要注意的是卷積運(yùn)算后信號(hào)的長(zhǎng)度會(huì)發(fā)生改變,若第一個(gè)函數(shù)的長(zhǎng)度為N1,第二個(gè)長(zhǎng)度為N2,卷積后長(zhǎng)度則為N1+N2-1。而我們這里兩個(gè)函數(shù)長(zhǎng)度一樣,則輸出長(zhǎng)度為2N-1。我們可以得到仿真圖,我們?cè)賹D像做歸一化處理,同時(shí)導(dǎo)入sinc函數(shù)紅點(diǎn),可以發(fā)現(xiàn)在基帶附近具有較高的擬合度,而sinc函數(shù)的傅里葉變換正好是幅值為1的矩形脈沖信號(hào)。

%% 時(shí)域匹配濾波
H_LFM1 = conj(fliplr(LFM1)); %conj是取共軛,fliplr是進(jìn)行矩陣左右翻轉(zhuǎn)
s1 = conv(LFM1,H_LFM1);      %conv是將輸入信號(hào)與匹配濾波信號(hào)卷積輸出,
N1 = N+N-1 ;%線性卷積后信號(hào)長(zhǎng)度變?yōu)?N1+N2-1
t1 = linspace( -T , T , N1);  %信號(hào)長(zhǎng)度變化
%信號(hào)輸出
figure(1);
subplot(2,1,1);
plot( t1*1e6 , abs(s1) );
xlabel('t /us'),ylabel('幅度譜');
title('時(shí)間反褶取共軛,時(shí)域卷積');
grid on;%添加網(wǎng)格
axis tight;
%歸一化;辛克函數(shù)
Z=abs(s1);Z=Z/max(Z); Z=20*log10(Z+1e-6);
Z1=abs(sinc(B.*t1)); Z1=20*log10(Z1+1e-6);%辛克函數(shù)
subplot(2,1,2);
t1=t1*B;
plot(t1,Z,t1,Z1,'r.' );
xlabel('時(shí)間/s ');
ylabel('幅值/dB');
title('線性調(diào)頻信號(hào)經(jīng)過匹配濾波(歸一化)');
axis([-15,15,-50,inf]);
grid on;%添加網(wǎng)格

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab?

?頻域處理:

頻域的處理和時(shí)域類似,根據(jù)第二章推導(dǎo)的公式,可以大致分為三種處理順序:

  1. 先構(gòu)造出反褶,共軛的濾波函數(shù),和信號(hào)一起補(bǔ)零之后進(jìn)行FFT到頻域,然后頻域相乘。最后進(jìn)行IFFT(FFT逆運(yùn)算)進(jìn)行頻域到時(shí)域的逆運(yùn)算。
  2. 信號(hào)補(bǔ)零進(jìn)行FFT到頻域之后,進(jìn)行共軛得到濾波頻域函數(shù),相乘之后進(jìn)行IFFT逆運(yùn)算。
  3. 信號(hào)補(bǔ)零進(jìn)行FFT到頻域之后,直接在頻域構(gòu)造出匹配濾波器,相乘之后進(jìn)行IFFT逆運(yùn)算。

這三種操作順序主要都是受自相關(guān)函數(shù)生成的影響,理想情況下第一種和第二種沒有太大區(qū)別,但是比較麻煩也需要注意的是,前兩種方法都中需要進(jìn)行補(bǔ)零至選定長(zhǎng)度的前置處理,由于不同濾波器棄置區(qū)不一樣,且等于響應(yīng)信號(hào)長(zhǎng)度減一,所以為了進(jìn)行有效的處理,F(xiàn)FT的點(diǎn)數(shù)最好是2的次方數(shù)且大于信號(hào)長(zhǎng)度。具體原因是因?yàn)镸atlab中FFT是做循環(huán)卷積運(yùn)算,而匹配濾波需要的是線性卷積,所以需要在函數(shù)前補(bǔ)N-1個(gè)0,同時(shí)補(bǔ)零也可以提高分辨率。

(md,這個(gè)地方CSND鬼畜了,寫的好好的突然沒了退回到這一段,從這到這章完,寫了三遍)

基于第一種順序,我們首先對(duì)線性調(diào)頻信號(hào)及其自相關(guān)函數(shù)做FFT離散快速傅里葉變換到頻域,然后頻域直接相乘得到脈沖壓縮函數(shù)后進(jìn)行IFFT逆變換回到時(shí)域后,同時(shí)也可以做歸一化處理后和Sinc函數(shù)進(jìn)行擬合。

%% 頻域匹配濾波1 (復(fù)制發(fā)射脈沖進(jìn)行時(shí)間反褶并取共軛,計(jì)算補(bǔ)零DFT)
N2 = 2*N-1; %循環(huán)卷積長(zhǎng)度 
t2 = linspace( -T , T , N2);
Hf2 = fft(H_LFM1,N2); %頻域匹配濾波器
Sf2 = fft(LFM1,N2);%頻域信號(hào)
S2 = Sf2 .* Hf2;%頻域乘積
s2 = ifft(S2);
figure(2);
subplot(2,1,1);
plot( t2*1e6 , abs(s2) )
xlabel('t /us');
ylabel('幅度譜');
title('時(shí)間反褶取共軛,補(bǔ)零FFT,頻域乘積,IFFT');
grid on;%添加網(wǎng)格
subplot(2,1,2);
Z2=abs(s2);Z2=Z2/max(Z2); Z2=20*log10(Z2+1e-6);%歸一化
t3 = t2*B;
plot(t3,Z2,t1,Z1,'r.');
axis([-15,15,-50,inf]);
xlabel('時(shí)間/s ');
ylabel('幅值/dB');
title('線性調(diào)頻信號(hào)經(jīng)過匹配濾波(歸一化)');

輸出圖像:基本上和時(shí)域處理沒什么區(qū)別

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?4.加窗處理

由于脈沖壓縮會(huì)不可避免的產(chǎn)生旁瓣,旁瓣按照1/X的幅值遞減,但較大的旁瓣仍會(huì)淹沒其他微弱的信號(hào),導(dǎo)致目標(biāo)無(wú)法分辨,所以為了提高性能指標(biāo),我們還會(huì)對(duì)脈壓信號(hào)增加窗函數(shù)以改變波形。加窗主要是在時(shí)域上,對(duì)匹配濾波器進(jìn)行點(diǎn)成乘運(yùn)算,其目的是抑制旁瓣,常用的有:Hanning窗、Blackman窗、kaiser窗等,不同的窗效果不一樣,如圖是常用窗函數(shù)的性能表

窗函數(shù)

最高旁瓣(dB)

歸一化主瓣寬度(dB)

最大信噪比損失(dB)

矩形

-13

0.89

3.92

Hanning

-32

1.44

3.18

Hamming

-43

1.30

3.10

Blackman

-58

1.68

3.47

我們?cè)诜抡娴倪^程中,選擇漢明(Hamming)窗來抑制旁瓣;首先直接調(diào)用Matlab自帶的漢明窗函數(shù),再與信號(hào)的自相關(guān)函數(shù)相乘得到加權(quán)后的匹配濾波器系數(shù)。之后按照頻域處理的方法得到加窗后的圖像:

%% 加窗
w = hamming(N)';
H_w = H_LFM1.*w ;       % 加窗
Hf3 = fft(H_w,N2); %頻域匹配濾波器
S3 = Sf2 .* Hf3;%頻域乘積
s3 = ifft(S3);
figure(1)
subplot(2,1,2)
plot( t2*1e6 , abs(s3) )
xlabel('t /us');
ylabel('幅度譜');
title('時(shí)間反褶取共軛,補(bǔ)零FFT,頻域乘積,IFFT(加窗)');
grid on;%添加網(wǎng)格
figure(2)
subplot(2,1,2)
Z3=abs(s3);Z3=Z3/max(Z3); Z3=20*log10(Z3+1e-6);%歸一化
t3 = t2*B;
plot(t3,Z3);
axis([-100,100,-50,inf]);
xlabel('時(shí)間/s ');
ylabel('幅值/dB');
title('線性調(diào)頻信號(hào)經(jīng)過匹配濾波(歸一化)(加窗)');

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?放到一個(gè)圖可以明顯對(duì)比出加窗的效果:vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

但需要注意的是,窗函數(shù)的引入實(shí)際上是對(duì)回波做了加權(quán)系數(shù)處理,雖然抑制了旁瓣,但同時(shí)也會(huì)導(dǎo)致主瓣展寬,降低了脈壓后的幅值,造成了信噪比損失。簡(jiǎn)單來說就是以損失一定信號(hào)特性為代價(jià),來提高主副比。

?5.雜波抑制和多目標(biāo)測(cè)距

通過現(xiàn)有的脈沖壓縮模型,我們可以驗(yàn)證其作為最佳線性濾波器的雜波抑制效果

在現(xiàn)實(shí)情況中,雷達(dá)系統(tǒng)發(fā)射機(jī)發(fā)射出線性調(diào)頻信號(hào)后,返還回來的目標(biāo)信號(hào)除目標(biāo)回波外還會(huì)夾帶雜波噪聲和干擾信號(hào)兩部分。本節(jié)不考慮干擾信號(hào)帶來的影響,通過添加高斯白噪聲來模擬雜波信號(hào)的對(duì)回波的干擾,再通過匹配濾波器輸出后,可以觀察對(duì)雜波的抑制效果。

在matlab中僅需要使用awgn函數(shù)即可,通過Y = awgn(采樣信號(hào),信噪比);一行代碼即可:

我們這里添加信噪比為1dB的雜波:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

我們可以對(duì)比添加雜波前后的信號(hào)輸出,可以明顯看見線性調(diào)頻信號(hào)已經(jīng)掩埋在了雜波里。

將合成的回波Y直接導(dǎo)入到我們的模型里:通過建立好的模型,我們可以清晰的看見原本雜亂無(wú)章的波形如圖,所示經(jīng)過脈沖壓縮后可以明顯的看見信號(hào)回波所產(chǎn)被壓縮成的尖峰,這就是自相關(guān)函數(shù)對(duì)于雜波來說是無(wú)序的,而對(duì)于發(fā)射的回波確是最匹配的。vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?為了更好的看到效果,我們?cè)僖胄盘?hào)參數(shù)一致但未添加噪聲的脈沖壓縮信號(hào)輸出,效果如圖所示:可以看到大量雜波的引入使得回波信號(hào)雜亂無(wú)章,雖然輸出的圖像效果不如沒有噪聲的明顯,但是尖峰仍然清晰可見,到達(dá)了在高噪聲環(huán)境中輸出的效果。

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

多目標(biāo)測(cè)距:

多目標(biāo)測(cè)距這部分重點(diǎn)參考代碼,我就不放出來了,大家有興趣可以找到很多,我僅做一個(gè)效果展示:首先根據(jù)參數(shù)確定距離分辨力,然后做一個(gè)對(duì)照組

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

雷達(dá)發(fā)射信號(hào)參數(shù)

參數(shù)值

目標(biāo)距離

10km~15km

幅值

1.0

目標(biāo)一

10.5km

信號(hào)波形

線性調(diào)頻信號(hào)

目標(biāo)二

11km

頻帶寬度

30 (MHz)

目標(biāo)三

12km

脈沖寬度

10(us)

目標(biāo)四

12km+10m

中心頻率

150(MHz)

目標(biāo)五

14km

雷達(dá)接收方式

正交解調(diào)

目標(biāo)六

14km+3m

該測(cè)距任務(wù)中,我們分別圍繞5 m的分辨率設(shè)置了10 m和3 m兩個(gè)距離看線性調(diào)頻信號(hào)的分辨效果。此外我們假定雷達(dá)截面積都為1,目標(biāo)靜止,取光速為30×108 m/s,根據(jù)最小10 km,最大15 km后光速的兩段時(shí)間差來設(shè)置返回信號(hào)窗,建立好參數(shù)模型后帶入我們的雷達(dá)仿真系統(tǒng)。

輸出的結(jié)果如圖所示,沒有經(jīng)過脈沖壓縮的回波,目標(biāo)之間波形相互干擾,無(wú)法得到目標(biāo)的準(zhǔn)確位置,而經(jīng)過脈沖壓縮后的信號(hào)在輸出的圖像上大概分為了四個(gè)尖峰,主要是由于第三與第四個(gè)目標(biāo),第五與第六個(gè)目標(biāo)相距太近造成。

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?經(jīng)過脈沖壓縮處理后,我們放大目標(biāo)三四,五六:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlabvivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?通過輸出圖像,可以發(fā)現(xiàn)目標(biāo)回波的誤差非常小。從理論上完成脈沖壓縮在雷達(dá)測(cè)距任務(wù)上的功能,同時(shí)也驗(yàn)證了線性調(diào)頻信號(hào)的分辨率的雷達(dá)方程。

三.Vivado實(shí)現(xiàn)

目前CSDN上主要都是姜文博學(xué)長(zhǎng)的時(shí)域法,大家可以自行搜索學(xué)長(zhǎng)的文章。很少看到用頻域做的,頻域我有師兄做了,我大概看明白了思路,不過還沒自己做出來。我把思路流程發(fā)給大家以供參考:

時(shí)域:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?頻域:

vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab寫的有點(diǎn)累了,就不想過多敘述了,最后就放一下多目標(biāo)測(cè)距的結(jié)果吧:

信號(hào)參數(shù)

測(cè)距范圍

目標(biāo)一

目標(biāo)二

目標(biāo)三

目標(biāo)四

RCS

第一組

12-16km

12.5km

13.5km

14.9km

15km

1

?vivado脈沖發(fā)射信號(hào),fpga開發(fā),matlab

?目標(biāo)壓縮后的峰值時(shí)間分別為:7.613109us、14.284313us23.615411us、24.265453us。減去補(bǔ)償后除去一半再乘以光速,再加上最初的距離分別得到:12499.97m13500.64m、14900.31m、14997.82m。最大誤差2.18m,最小誤差0.03m。

后面有機(jī)會(huì)再補(bǔ)充...

?

到了這里,關(guān)于基于FPGA的脈沖壓縮設(shè)計(jì)(Matlab+vivado)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于fpga的圖像處理之圖像灰度化處理(Vivado+Modelsim+Matlab聯(lián)合仿真驗(yàn)證)

    基于fpga的圖像處理之圖像灰度化處理(Vivado+Modelsim+Matlab聯(lián)合仿真驗(yàn)證)

    微信公眾號(hào)上線,搜索公眾號(hào) 小灰灰的FPGA ,關(guān)注可獲取相關(guān)源碼,定期更新有關(guān)FPGA的項(xiàng)目以及開源項(xiàng)目源碼,包括但不限于各類檢測(cè)芯片驅(qū)動(dòng)、低速接口驅(qū)動(dòng)、高速接口驅(qū)動(dòng)、數(shù)據(jù)信號(hào)處理、圖像處理以及AXI總線等 源碼工程鏈接 https://download.csdn.net/download/m0_50111463/88529260

    2024年02月10日
    瀏覽(26)
  • 【Vivado】基于FPGA的出租車計(jì)價(jià)表設(shè)計(jì)

    【Vivado】基于FPGA的出租車計(jì)價(jià)表設(shè)計(jì)

    學(xué)校FPGA設(shè)計(jì)結(jié)課課設(shè) 主要做了出租車計(jì)價(jià)表,一個(gè)比較舊的課題,代碼如下: 分模塊編程,按照價(jià)目表寫代碼,具體注釋見代碼。 在module里新加一個(gè) input 變量 key_stage ,用 key_stage 表示不同車流量段,用以計(jì)數(shù) 在module里新增一個(gè)變量 state 來限定是在白天還是夜間

    2024年02月04日
    瀏覽(35)
  • FPGA基于Vivado開發(fā),設(shè)計(jì)頂層文件Top.v

    FPGA基于Vivado開發(fā),設(shè)計(jì)頂層文件Top.v

    首先得承認(rèn),我并不是主動(dòng)擁抱頂層文件這套思路的,原因很簡(jiǎn)單,能用就行干嘛費(fèi)勁搞那么多東西。起初知識(shí)點(diǎn)亮一個(gè)LED燈,整一個(gè)半加器的簡(jiǎn)單模擬,也確實(shí)根本用不上。后邊工程有一定的負(fù)責(zé)度,例如設(shè)計(jì)數(shù)字時(shí)鐘,LCD1602驅(qū)動(dòng)設(shè)計(jì)等等,這個(gè)時(shí)候我就發(fā)現(xiàn)了層次化設(shè)計(jì)

    2024年02月08日
    瀏覽(29)
  • 基于FPGA的FIR低通濾波器實(shí)現(xiàn)(附工程源碼),matlab+vivado19.2+simulation

    基于FPGA的FIR低通濾波器實(shí)現(xiàn)(附工程源碼),matlab+vivado19.2+simulation

    本文為FPGA實(shí)現(xiàn)FIR濾波器仿真過程,附源代碼。 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 打開MATLAB在命令行窗口輸入: fadtool 回車后在濾波器設(shè)計(jì)界面設(shè)置濾波器參數(shù)如下 之后點(diǎn)擊如圖標(biāo)志,設(shè)置定點(diǎn),在菜單欄\\\"目標(biāo)(R)\\\"出選擇生成對(duì)應(yīng)濾波器系數(shù).COE文件 mat

    2024年02月11日
    瀏覽(29)
  • 【FPGA】基于vivado FPGA設(shè)計(jì)過程中時(shí)序報(bào)紅的分析及解決辦法

    【FPGA】基于vivado FPGA設(shè)計(jì)過程中時(shí)序報(bào)紅的分析及解決辦法

    本文基于vivado的FPGA,對(duì) 時(shí)序報(bào)紅 問題分析方法進(jìn)行說明,并提供常見問題的解決辦法。 (1)前提 先將工程進(jìn)行綜合和布局布線。 (2)方法1 IMPLEMENTION - Report Timing Summary 參數(shù)設(shè)置: Maximum number of paths per clock or path group:每個(gè)時(shí)鐘路徑或者時(shí)鐘組顯示的最大路徑數(shù),想要查

    2024年02月05日
    瀏覽(23)
  • 【FPGA基礎(chǔ)】基于PWM脈寬調(diào)制的呼吸燈設(shè)計(jì)(Vivado)

    【FPGA基礎(chǔ)】基于PWM脈寬調(diào)制的呼吸燈設(shè)計(jì)(Vivado)

    軟件:Vivado2019.1 硬件:Zynq7010 仿真:Vivado Simulator 眾所周知,燈的亮度和加在其兩端的電壓有關(guān)。電壓越高,亮度越亮,反之越暗。 于是,設(shè)計(jì)一個(gè)呼吸燈就變得很簡(jiǎn)單了。讓IO的輸出電平由低到高,再有高到底有規(guī)律的變化,就能達(dá)到呼吸效果。 現(xiàn)在問題來了,IO的輸出電

    2024年02月07日
    瀏覽(45)
  • 用于分析脈沖類信號(hào)的二階瞬態(tài)提取變換研究(Matlab代碼實(shí)現(xiàn))

    用于分析脈沖類信號(hào)的二階瞬態(tài)提取變換研究(Matlab代碼實(shí)現(xiàn))

    ? ???????? 歡迎來到本博客 ???????? ??博主優(yōu)勢(shì): ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運(yùn)行結(jié)果 ??3?參考文獻(xiàn) ??4 Matlab代碼實(shí)現(xiàn) ? 文

    2024年02月08日
    瀏覽(23)
  • 【FPGA教程案例34】通信案例4——基于FPGA的QPSK調(diào)制信號(hào)產(chǎn)生,通過matlab測(cè)試其星座圖

    【FPGA教程案例34】通信案例4——基于FPGA的QPSK調(diào)制信號(hào)產(chǎn)生,通過matlab測(cè)試其星座圖

    FPGA教程目錄 MATLAB教程目錄 --------------------------------------------------------------------------------------- ? 目錄 1.軟件版本 2.QPSK調(diào)制原理

    2023年04月12日
    瀏覽(20)
  • Vivado生成壓縮后的FPGA bit文件方法詳解

    Vivado生成壓縮后的FPGA bit文件方法詳解 當(dāng)我們使用Xilinx公司的FPGA開發(fā)環(huán)境Vivado進(jìn)行開發(fā)時(shí),通常會(huì)需要將設(shè)計(jì)好的程序燒錄到目標(biāo)板上進(jìn)行測(cè)試和驗(yàn)證。而這個(gè)過程中,需要將設(shè)計(jì)好的FPGA bit文件通過一些方式傳輸?shù)侥繕?biāo)板上。 但是,F(xiàn)PGA bit文件通常都比較大,如果直接傳輸

    2024年02月06日
    瀏覽(30)
  • 基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)(quartus和vivado程序都有)。

    基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)(quartus和vivado程序都有)。

    基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)(quartus和vivado程序都有)。 附: 1.配套quartus從MATLAB系數(shù)生成直到仿真成功說明文檔。 2.配套仿真出波形(圖1)的視頻。 ? ? ?

    2024年02月10日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包