通信原理匹配濾波器課程設(shè)計報告內(nèi)容(共26頁)
精選優(yōu)質(zhì)文檔-----傾情為你奉上
目 錄
專心---專注---專業(yè)
第1章 緒論
1.1 課題背景和意義
近十幾年來,隨著計算機,人工智能,模式識別的信號處理等技術(shù)的飛速發(fā)展,數(shù)字通信系統(tǒng)得到了廣泛的應(yīng)用,主要是因為數(shù)字通信有以下優(yōu)點:
(1)數(shù)字信號便于存儲、處理 、抗干擾能力強;
(2)數(shù)字信號便于交換和傳輸;
(3)可靠性高,傳輸過程中的差錯可以設(shè)法控制;
(4)數(shù)字信號易于加密且保密性強;
隨著通信技術(shù)的飛速發(fā)展, 提高數(shù)字通信的可靠性是人們一直關(guān)心的現(xiàn)實問題,數(shù)字信號在信道的傳輸過程中,會受到噪聲干擾,雖然人們可以通過信道編碼降低傳輸過程中的誤碼率,但是噪聲仍然是不可避免的,由于信道中噪聲干擾而引起數(shù)字信號波形失真,在接收端會產(chǎn)生誤判。在通信系統(tǒng)的理論分析中,特別是在分析、計算系統(tǒng)抗噪聲性能時,經(jīng)常假定系統(tǒng)中信道噪聲(即前述的起伏噪聲)為高斯型白噪聲。其原因在于,一是高斯型白噪聲可用具體的數(shù)學(xué)表達式表述,便于推導(dǎo)分析和運算;二是高斯型白噪聲確實反映了實際信道中的加性噪聲情況,比較真實地代表了信道噪聲的特性。因此接收系統(tǒng)的抗噪聲能力決定了一個通信系統(tǒng)的優(yōu)劣,國內(nèi)外的專家學(xué)者一直致力于研究在隨機干擾存在的情況下如何最好地接收數(shù)字信號。
1.2 課程設(shè)計內(nèi)容
一個數(shù)字通信系統(tǒng)的接收設(shè)備可以視作一個判決裝置,它由一個線性濾波器和一個判決電路構(gòu)成,如圖1.1所示,線性濾波器對信號處理,輸出某個物理量提供給判決電路,以便判決電路對接收信號中所包含的某個發(fā)送信號作出盡可能正確的判決,理論和實踐都已證明:在高斯白噪聲干擾下,如果濾波器的輸出端在某一時刻上使信號的瞬時功率與白噪聲平均功率之比達到最大,就可以使判決電路出現(xiàn)錯誤判決的概率最小,這樣的線性濾波器的稱為匹配濾波器。所以匹配濾波器是最大輸出信噪比意義下的最佳線性濾波器,用匹配濾波器構(gòu)成的接收機是滿足最大輸出信噪比準則的最佳接收機,也稱匹配濾波接收機。在白噪聲條件下,這樣的接收機能得到最小的誤碼率。
線性濾波器
判決電路
圖1-1 簡化的接收機結(jié)構(gòu)
本課程設(shè)計主要內(nèi)容為通過研究加性高斯白噪聲信道下用匹配濾波器構(gòu)成的最佳接收機的結(jié)構(gòu)及其抗噪聲性能,分別用MATLAB和VHDL語言實現(xiàn)最佳接收機的設(shè)計與實現(xiàn)。
第2章 最佳接收機概述
已知的最佳接收機結(jié)構(gòu)分為多種,但最常用的是由匹配濾波器構(gòu)成的最佳接收機,本章節(jié)主要介紹匹配濾波器的原理和最佳接收機的結(jié)構(gòu)。
2.1 最佳接收機的結(jié)構(gòu)
二元數(shù)字信號的最佳接收機框圖如圖2-2所示。
發(fā)送段在任意一個碼元間隔內(nèi)發(fā)送兩個波形、中的一個,接收機上、下兩個支路的匹配濾波器分別對這兩個波形匹配,所以當發(fā)送端發(fā)送波形時,上支路匹配濾波器在取樣時刻輸出最大值,當發(fā)送端發(fā)送波形時下支路匹配濾波器在取樣時刻輸出最大值,而與接收信號不匹配的濾波器在取樣時刻輸出的值小于。所以判決器的任務(wù)是根據(jù)上、下兩支路取樣值的大小進行判決,如上支路取樣值打大,認為接收到的信號為;如下支路取樣值大,認為接收到的信號為。
的匹配濾波器
的匹配濾波器
判決
輸出
圖2-1 由匹配濾波器實現(xiàn)的最佳接收機結(jié)構(gòu)
2.2 匹配濾波器傳輸特性
設(shè)匹配濾波器的輸入信號為,是由接收信號和噪聲兩部分構(gòu)成,即,在表達式中是白噪聲,雙邊功率譜密度為,而信號的頻譜函數(shù)為。
根據(jù)線性疊加原理,匹配濾波器的輸出 也由信號和噪聲兩部分構(gòu)成,即
(2-1)
設(shè)的頻譜為 ,根據(jù)信號與系統(tǒng)理論得
(2-2)
求的傅里葉反變換,可得到輸出信號為
(2-3)
輸出噪聲的功率譜密度為
(2-4)
匹配濾波器在時刻的輸出信號值為
(2-5)
則在時刻輸出信號的瞬時功率為,輸出噪聲平均功率為
(2-6)
所以時刻輸出的信噪比為
(2-7)
根據(jù)許瓦茲不等式
(2-8)
可以得到
(2-9)
當時等式成立,這就是所要求的匹配濾波器的傳輸特性,由上式可知,輸出信噪比最大的濾波器的傳輸特性與信號頻譜的共軛成正比,故這種濾波器稱為匹配濾波器。
2.3 匹配濾波器的結(jié)構(gòu)
匹配濾波器的沖激響應(yīng)為
(2-10)
兩邊取傅立葉反變換,得到
(2-11)
如果輸入信號是實信號,則。
假設(shè)符號的傳輸速率,則在接收端同樣地我們需要每隔時間進行一次判決,因此我們希望在每時刻的輸出信噪比最大,將上述的用帶入,得到匹配濾波器如下:
(2-12)
當接收端輸入為時,在相對于的匹配濾波器端輸出信號
(2-13)
當時,得到
(2-14)
式(2-14)說明相對于匹配濾波器的輸出信號在形式上與輸入信號和乘積的積分相同,則匹配濾波器在取樣時刻的輸出值可以用乘積與積分這樣的相關(guān)運算來求得,匹配濾波器的實現(xiàn)過程如圖2-1所示。
圖2-2 匹配濾波器的實現(xiàn)過程
2.4 最佳接收機的誤碼性能
2.4.1 最佳接收機的誤碼性能分析
由于噪聲的影響,最佳接收機在判決時也會發(fā)生錯判,接收機發(fā)生錯判的可能性大小用誤碼率來衡量,由圖2-1可知,判決器的任務(wù)就是比較上,下兩支路積分值的大小并作出判決。其判決規(guī)則如下:
(1) 如果上支路積分值大,判為;
(2) 如果下支路積分值大,判為;
由于噪聲的影響,判決器會發(fā)生錯誤判決,有兩種錯判情況:
(1) 當發(fā)送端發(fā)送,判決器判為,此誤碼率記為;
(2) 當發(fā)送端發(fā)送,判決器判為,此誤碼率記為;
根據(jù)全概率公式,最佳接收機的平均誤碼率為
(2-15)
下面我們首先求發(fā)出判成的概率,令判決量V為上支路積減下支路的積分值,由圖2-1和圖2-2可知V的表達式為:
(2-16)
當V<0時,判決其判為,發(fā)生錯判,所以V<0的概率就是發(fā)錯判成的概率,V是一個隨機量,想要求,就得求出V的概率密度函數(shù)。
因為噪聲是零均值的高斯噪聲,而V僅是的積分運算,所以V是一個高斯隨機變量,V的均值為,其中是信號的能量,。V的方差為。
所以高斯隨機變量V的概率密度函數(shù)為
(2-17)
當兩個信號和等概且等能量時,發(fā)錯判成的概率等于錯判成的概率,則由平均誤碼率公式可得最佳接收機的誤碼率:
(2-18)
2.4.2 最佳接收機與非最佳結(jié)構(gòu)的比較
最佳系統(tǒng)與普通接收機兩者之間的差別在普通接收機并沒有充分利用碼元時間內(nèi)的信號,而只是取了其中的一個點作為判決,而最佳接收機充分利用了整個碼元時間內(nèi)的信號(信息)。
在理想情況下(即信道是無限寬的),兩者是等價的。但是在實際應(yīng)用中,最佳接收機比普通接收機性能好,非最佳接收機的性能由信噪比來體現(xiàn)。其中,(是信號經(jīng)過帶通后的信噪比)。
例如,2PSK普通接收系統(tǒng)的誤碼率為,而2PSK 最佳接收系統(tǒng)的誤碼率 ,其中而非最佳系統(tǒng)的,這里B是帶通的帶寬。
因此,只有當帶通帶寬時,第六章所述的接收機才與最佳接收機性能一樣。然而,實際系統(tǒng)中,帶通濾波器的帶寬要求信號完全通過(即對信號不造成失真)。假設(shè)基帶信號波形為矩形的話,則是基帶信號頻譜的第一個零點,如果帶通濾波器帶寬為,則信號的失真太大,達不到實際接收系統(tǒng)的帶通要求。因此,實際系統(tǒng)的性能肯定要比最佳接收系統(tǒng)的性能差。
最佳接收系統(tǒng)相當于是最小帶通帶寬的接收機,因此進入判決的噪聲也小。接收系統(tǒng)為了讓信號盡可能通過,因此在接收機前端的帶通濾波器帶寬適當放大,而相關(guān)接收機相當于將信號全部通過,噪聲進行再次的濾波,因此性能自然得到改善。
第3章 最佳接收機的MATLAB實現(xiàn)
MATLAB 是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,在數(shù)學(xué)信號處理中使用 MATLAB可以更快地解決技術(shù)計算問題,因此得到了廣泛的應(yīng)用。本章節(jié)的內(nèi)容是介紹用MATLAB實現(xiàn)由匹配濾波器構(gòu)成的二元數(shù)字信號的最佳接收機的過程。
3.1 設(shè)計思路
本課程設(shè)計的目的是用MATLAB實現(xiàn)由匹配濾波器構(gòu)成的二元數(shù)字信號的最佳接收機,接收信號為帶高斯白噪聲的二進制數(shù)字序列,其碼型為雙極性不歸零碼,每個碼元的寬度為,再將次此序列與所要匹配的信號相乘卷積得到輸出結(jié)果,由以上分析可知整個匹配濾波器系統(tǒng)分為三個模塊:
(1)數(shù)字信號輸入模塊:產(chǎn)生帶加性高斯白噪聲的二進制數(shù)字序列;
(2)數(shù)字信號處理模塊:將輸入的二進制數(shù)字序列與本地的匹配信號信號相乘卷積;
(3)數(shù)字信號輸出模塊:將處理的結(jié)果和沒有經(jīng)過匹配處理的原輸入信號分別輸出,方便對比分析;
因此,匹配濾波接收機的設(shè)計流程圖如圖3-1所示:
帶加性高斯白噪聲的
二進制輸入信號
輸入信號與匹配信號
的相關(guān)運算處理
處理結(jié)果
的輸出
圖3-1 匹配濾波接收機的設(shè)計流程圖
3.2 實現(xiàn)過程
3.2.1 數(shù)字信號輸入模塊的實現(xiàn)
MATLAB中產(chǎn)生高斯白噪聲的兩個函數(shù) 在MATLAB中產(chǎn)生高斯白噪聲非常方便,可以直接應(yīng)用兩個函數(shù),一個是WGN,另一個是AWGN。WGN用于產(chǎn)生高斯白噪聲,AWGN則用于在某一信號中加入高斯白噪聲。也可以直接應(yīng)用randn函數(shù)產(chǎn)生高斯分布序列,本課程設(shè)計中采用randn函數(shù)nt, 用語句nt=randn(1,1000);產(chǎn)生一個1行1000列的高斯白噪聲的矩陣。其波形圖如圖3-2所示:
從圖3-2可以看出,所得到的白噪聲是隨機的,滿足課程設(shè)計對噪聲的要求。
產(chǎn)生一個二進制數(shù)字序列,首先要設(shè)置序列的相關(guān)參數(shù):碼型,碼元個數(shù)N,碼元寬度Ts,每個碼元內(nèi)的抽樣個數(shù)N_sample,用語句Ts = 1;設(shè)置碼元的時間寬度,N_sample = 10;設(shè)置每個碼元內(nèi)的抽樣個數(shù),N = 100;設(shè)置碼元個數(shù),dt = Ts/N_sample;設(shè)置每個抽樣點之間的間隔 ,gt = ones(1,N_sample);設(shè)置碼型,此為不歸零碼型。
圖3-2 白噪聲的仿真波形圖
可以利用隨機序列產(chǎn)生基帶信號,首先定義一個1行N列的雙極性隨機序列,再將該隨機序列拓展,即在兩個數(shù)據(jù)之間插入N_sample-1個0值,最后與全1矩陣相乘卷積。用da = sign(randn(1,N));產(chǎn)生一個隨即序列,st = sigexpand(da,N_sample); 其中sigexpand函數(shù)是定義的一個拓展函數(shù),其作用將輸入d進行擴張,方法是在d的每個數(shù)據(jù)中插入M-1個零值。使st從隨機序列到基帶信號,st = st(1:length(st)-N_sample+1);st = conv(st,gt);將拓展后的結(jié)果與全1矩陣卷積得到了二進制數(shù)字基帶信號。
圖3-3 輸入波形仿真波形圖
所得到的仿真波形如圖3-3所示,從圖3-3中可以看出輸入的數(shù)字序列是雙極性不歸零碼。
由于是加性高斯白噪聲,則可以直接加到二進制序列中,用語句xt=nt+st實現(xiàn),得到的仿真波形如圖3-4所示:
從圖3-4帶噪聲信號的仿真波形圖可以看出,二進制數(shù)字序列在噪聲的干擾下會產(chǎn)生一定程度的失真。
圖3-4 帶噪聲信號的仿真波形圖
3.2.2 數(shù)字信號處理模塊的實現(xiàn)
此模塊的功能是將輸入的二進制數(shù)字序列與匹配信號相乘卷積,這里的匹配信號的表達式為,其代碼為r1t = conv(xt,h1t); 把r1t定義為匹配濾波器的沖激響應(yīng)。
圖3-5 匹配濾波輸出的仿真波形圖
從圖3-5可以看出,匹配濾波器輸出的波形在整個過程中都會發(fā)生改變,在判斷一個信號時充分利用了一個碼元在整個碼元寬度內(nèi)的值,這樣就可以減少噪聲的干擾。
為了對比分析處理信號和未處理信號,同時也需要將二進制序列進行普通的低通濾波,其代碼為h2t = 5*sinc(5*(t-5)/Ts);把h2t定義為理想低通濾波器中的沖激響應(yīng)。
圖3-6 理想低通濾波后的輸出仿真波形圖
從圖3-6可以看出,理想低通濾波后的輸出波形只是在每個碼元開始的時刻發(fā)生改變,這樣受噪聲的影響就很大,很容易發(fā)生錯判。
3.2.3 數(shù)字輸出模塊的實現(xiàn)
二進制數(shù)字序列經(jīng)過處理后,需要經(jīng)過抽樣判決,然后再生成碼元作為輸出信號,抽樣判決的周期為Ts,由于輸入的信號為雙極性不歸零碼,則判決門限為0,如果抽樣值大于0判為1,小于0則判為-1,其代碼為re1da= r1t(N_sample:N_sample:end);stem(n,re1da(1:N));還有低通濾波的輸出,代碼re2da= r2t(N_sample/2:N_sample:end);stem(n-5,re2da(1:N));將低通濾波器的輸出結(jié)果抽樣輸出。
3.3 仿真結(jié)果
從圖3-7理想低通濾波后的抽樣輸出仿真波形圖中可以看出,在有加性高斯白噪聲的干擾下,實際接收機所接收到的信號是通過理想低通濾波器的信號,與原輸入信號有一定的差別,存在著誤差,且誤差是隨機性的,說明實際接收機的抗噪聲性能比較低。
從圖3-8匹配濾波的抽樣輸出仿真波形圖中可以看出,匹配濾波器的輸出信號雖然在一定程度上與原輸入信號不同,但是誤碼個數(shù)已經(jīng)大大減少,可見匹配濾波器具有較高的抗噪聲能力。
圖3-7 理想低通濾波后的抽樣輸出仿真波形圖
圖3-8 匹配濾波的抽樣輸出仿真波形圖
3.4 仿真結(jié)果分析
把圖3-3輸入數(shù)字序列仿真波形和圖3-7理想低通濾波抽樣輸出的仿真波形進行對比,可以看出理想低通濾波輸出的20個碼元中出現(xiàn)了6個錯誤碼元,再把圖3-3輸入數(shù)字序列仿真波形和圖3-8匹配濾波抽樣輸出的仿真波形進行對比,可以看出匹配濾波輸出的20個碼元中出現(xiàn)了沒有錯誤碼元,這說明最佳接收機的誤碼率比實際接收機的誤碼率大大減少了,和理論分析是相符合,說明此設(shè)計方案是可行且具有實際意義的。
第4章 最佳接收機的VHDL實現(xiàn)
現(xiàn)代通信技術(shù)的發(fā)展隨著VHDL等設(shè)計語言的出現(xiàn)和ASIC的應(yīng)用也進入了一個新的階段,VHDL硬件描述語言作為一個規(guī)范語言和建模語言,其對系統(tǒng)行為或流程的描述就是一個建模過程,采用在普通的數(shù)字通信系統(tǒng)模型的基礎(chǔ)上建立能滿足VHDL設(shè)計的可實現(xiàn)性模型的設(shè)計方法,可以加速數(shù)字通信系統(tǒng)設(shè)計的效率,降低設(shè)計成本,所以這種方法在數(shù)字通信系統(tǒng)中得到廣泛的應(yīng)用,本章節(jié)主要內(nèi)容為最佳接收機系統(tǒng)的VHDL實現(xiàn)過程。
4.1 設(shè)計思路
本課程設(shè)計要求實現(xiàn)二進制數(shù)字序列的匹配濾波器,由前面的理論分析可知,匹配濾波器的匹配信號與接收信號的值相同時,在抽樣判決時刻輸出信號的模最大,而接收信號與匹配信號不同時則被盡可能的抑制掉,所以實現(xiàn)匹配濾波器也可以轉(zhuǎn)換成兩個數(shù)字信號之間的相關(guān)運算,即比較等長度的兩個數(shù)字序列之間有多少位相同,多少位不同,然后設(shè)置判決門限,通過相同位數(shù)的個數(shù)來判斷信號的值。
本課程設(shè)計以QPSK信號為輸入信號,用VHDL語言實現(xiàn)QPSK的基于匹配濾波器的最佳接收機,
QPSK信號有四種值“00”“01”“10”“11”,其分別對應(yīng)的載波圖形編碼和波形編號如表4-1所示:
表4-1 QPSK信號與其載波圖形列表
輸入信號
載波波形編碼
波形編號
00
1100
0
01
1001
1
10
0011
2
11
0110
3
對符號過采樣率為4,設(shè)定判決門限為3。
由以上分析,可以知道整個最佳接收機系統(tǒng)分為四個模塊:
(1)信號發(fā)生電路:此模塊的功能是產(chǎn)生二進制數(shù)字序列,并加入加性高斯白噪聲作為匹配濾波器的接收信號;
(2)定時電路:每經(jīng)過4個系統(tǒng)時鐘信號上升沿定系統(tǒng)的判決電路輸出判決結(jié)果,然后從零重新開始計數(shù);
(3)匹配濾波電路:完成接收信號與四個匹配信號之間的相關(guān)運算,并分別累計接收信號與四個匹配信號之間相同的位數(shù),作為結(jié)果輸出;
(4)判決電路:根據(jù)匹配濾波器的輸出結(jié)果和判決門限判斷接收信號,將判決結(jié)果作為輸出端的輸出信號;
根據(jù)上述內(nèi)容,可以得到系統(tǒng)的設(shè)計流程圖如圖4-1所示:
信號發(fā)生電路
匹配濾波電路
定時電路
判決電路
輸出
圖4-1 匹配濾波器設(shè)計流程圖
4.2 實現(xiàn)過程
4.2.1 信號發(fā)生電路的實現(xiàn)
由于本課程設(shè)計所討論的是在高斯白噪聲條件下最佳接收機的誤碼性能,系統(tǒng)要求有高斯白噪聲的產(chǎn)生,可以采用偽隨機序列產(chǎn)生高斯白噪聲,其代碼見附錄,得到的仿真波形如圖4-2所示:
圖4-2 白噪聲產(chǎn)生器VHDL實現(xiàn)仿真波形圖
從圖4-2可以看出,在使能信號為高電平的情況下,輸出端會輸出一個隨機的數(shù)字序列,在系統(tǒng)中作為白噪聲信號。
因為是加性高斯白噪聲,所以可直接將二進制信號序列與高斯白噪聲進行模2加,所得到的結(jié)果作為輸入信號發(fā)送給匹配濾波器,其代碼見附錄,仿真波形如圖4-3所示:
圖4-3 輸入信號仿真波形圖
從圖4-3輸入信號仿真波形圖中可以看出,當輸入信號加入加性高斯白噪聲時會產(chǎn)生波形的失真,而最佳接收機需要盡可能的減小波形失真帶了的誤判。
4.2.2 定時電路的實現(xiàn)
此電路的功能是將系統(tǒng)時鐘進行處理,可以采用計數(shù)器的方式實現(xiàn),每當系統(tǒng)時鐘上升沿時刻,計數(shù)器加1,當計數(shù)器從0加到3時,則系統(tǒng)判決電路工作,并且計數(shù)器清零,重新開始計數(shù),其代碼如下:
if clkevent and clk=1 then –系統(tǒng)時鐘為上升沿
if start=0 then
cnt<="00";cnt1<=0;cnt2<=0;cnt3<=0;cnt4<=0;tmp<=0;--系統(tǒng)復(fù)位,定時器清零
else case cnt is
when "00" =>………--第一個狀態(tài)
when "01" =>………--第二個狀態(tài)
when "10" =>………--第三個狀態(tài)
when "11" =>………--第四個狀態(tài)
when others=>null;
end case;
cnt<=cnt+1;--定時器加1
4.2.3 匹配濾波電路的實現(xiàn)
當接收端接收到信號發(fā)生電路的二進制數(shù)字序列后,匹配濾波器需要將輸入信號分別與四個匹配信號做相關(guān)運算,并將四個不同的累加結(jié)果作為輸出信號給判決電路。一位相關(guān)器可以由同或門實現(xiàn),用1表示該數(shù)據(jù)位相同,用0表示該數(shù)據(jù)位不同,每個系統(tǒng)時鐘上升沿時刻匹配濾波電路就會接收到一個一位的二進制數(shù)字信號,根據(jù)定時電路的狀態(tài)和相對應(yīng)的數(shù)據(jù)位做相關(guān)運算,如果定時電路的狀態(tài)不為“00”則繼續(xù)比較下一個二進制數(shù),并將相關(guān)運算結(jié)果累加,如果定時電路的狀態(tài)為“00”則累加器清零,其代碼分析如下:
when "00" => if x_in=1 then
cnt1<=1;cnt2<=1;cnt3<=0;cnt4<=0;--第一位數(shù)據(jù)為1時的各相關(guān)運算結(jié)果
else
cnt1<=0;cnt2<=0;cnt3<=1;cnt4<=1;--第一位數(shù)據(jù)為0時的各相關(guān)運算結(jié)果
end if;
when "01" => if(x_in=1)then--第二位數(shù)據(jù)為1時各累加器的結(jié)果
cnt1<=cnt1+1;cnt2<=cnt2;cnt3<=cnt3;cnt4<=cnt4+1;
else --第二位數(shù)據(jù)為0時各累加器的結(jié)果
cnt1<=cnt1;cnt2<=cnt2+1;cnt3<=cnt3+1;cnt4<=cnt4;end if;
when "10" =>if(x_in=1)then--第三位數(shù)據(jù)為1時各累加器的結(jié)果
cnt1<=cnt1;cnt2<=cnt2;cnt3<=cnt3+1;cnt4<=cnt4+1;
else --第三位數(shù)據(jù)為0時各累加器的結(jié)果
cnt1<=cnt1+1; cnt2<=cnt2+1;cnt3<=cnt3; cnt4<=cnt4;end if;
when "11" => if(x_in=1)then--第四位數(shù)據(jù)為1時各累加器的結(jié)果
cnt1<=cnt1;cnt2<=cnt2+1;cnt3<=cnt3+1;cnt4<=cnt4;
else --第四位數(shù)據(jù)為0時各累加器的結(jié)果
cnt1<=cnt1+1;cnt2<=cnt2;cnt3<=cnt3;cnt4<=cnt4+1;end if;
所得到的仿真波形如圖4-5所示:
圖4-4 匹配濾波電路VHDL實現(xiàn)仿真波形圖
從圖4-4可以看出,輸入信號x_in二進制數(shù)字序列為“0011 1100 1001 0011 ………”,累加器cnt1,cnt2,cnt3分別對應(yīng)波形編號0,1,2,從表4-1可知,輸入序列對應(yīng)的波形編號為“2 0 1 2………”,對應(yīng)的,第一個4個系統(tǒng)周期后累加器cnt3的值為‘4’,第二個4個系統(tǒng)周期后累加器cnt1的值為‘4’,第三個4個系統(tǒng)周期后累加器cnt2的值為‘4’,第四個4個系統(tǒng)周期后累加器cnt3的值為‘4’,說明此匹配濾波電路設(shè)計方案是可行的。
4.2.4 判決電路的實現(xiàn)
當定時電路的狀態(tài)為“11”時,判決電路根據(jù)接收到的4個累加結(jié)果與判決門限相比較,得到判決結(jié)果,將判決結(jié)果做為輸出信號,其代碼分析如下:
if(cnt1>2) then tmp<=0;--當cnt1的值大于2時,判決結(jié)果為‘0’
elsif(cnt2>2) then tmp<=1; --當cnt2的值大于2時,判決結(jié)果為‘1’
elsif(cnt3>2) then tmp<=2; --當cnt3的值大于2時,判決結(jié)果為‘2’
else tmp<=3; end if; --當cnt4的值大于2時,判決結(jié)果為‘3’
4.3 仿真結(jié)果
圖4-5 最佳接收機VHDL實現(xiàn)仿真波形圖
在圖4-5中,信號端口indata為輸入的二進制序列,相當于通信系統(tǒng)中發(fā)送端的原始信號,信號端口xt為加入加性高斯白噪聲的輸入信號,相當于通信系統(tǒng)中接收端接收到的信號,信號端口outdata為最佳接收機的輸出信號(最佳接收機的輸出信號outdata滯后于輸入信號indata 4個系統(tǒng)周期,這是因為最佳接收機是在輸入信號的結(jié)束時刻進行取樣判決),可以從圖中看出由于噪聲的干擾,信號xt與原始信號有一定的差別,但是通過最佳接收機后與受噪聲干擾后的輸入信號xt對比,誤碼率已經(jīng)大大減少。
4.4 仿真結(jié)果分析
我們將輸入的原二進制數(shù)字序列與最佳接收機的輸出結(jié)果作對比,分析最佳接收機系統(tǒng)的誤碼性能。從圖4-5可知,原輸入二進制數(shù)字序列indata為“1100 0110 0110 0110 0011 1010” ,根據(jù)表4-1可知,此數(shù)字序列對應(yīng)的波形編號為“0 3 3 3 2 1”,與最佳接收機的輸出結(jié)果相同,說明最佳接收機在有噪聲干擾的情況下能有效的降低誤碼率,此設(shè)計方案得到的結(jié)論和理論分析相符合,說明這個設(shè)計是可行的。
第5章 結(jié)束語
本課程設(shè)計的主要內(nèi)容為由匹配濾波器構(gòu)成的最佳接收機的設(shè)計與實現(xiàn),主要采用了數(shù)字通信系統(tǒng)的建模方法,首先分析匹配濾波器的原理和結(jié)構(gòu),對最佳接收機系統(tǒng)的工作原理和流程要有透徹的理解,在這個過程中,要從信號,系統(tǒng),模塊三個方面來研究整個模型:
信號—輸出端和輸入端的信號形式及其描述;
系統(tǒng)—接收到的信號到輸出信號之間組成整個系統(tǒng)的各模塊功能及相互之間的聯(lián)系;
模塊—實現(xiàn)各種功能的具體模塊;
在對這些內(nèi)容進行詳細的了解后,理清思路,明確課程設(shè)計要求,建立一個系統(tǒng)模型,然后確定設(shè)計方案的過程中必須要有系統(tǒng)的設(shè)計思維,把每一個細節(jié)都放到整個系統(tǒng)中考慮,考慮整個系統(tǒng)設(shè)計的可行性、完整性、穩(wěn)定性和功能的實現(xiàn),這樣才不會局限在細節(jié)上,才能快速的完成性能優(yōu)越的設(shè)計,但是同時也要把握細節(jié),系統(tǒng)也是由細節(jié)構(gòu)成的,在把握整個系統(tǒng)思維的基礎(chǔ)上把握每一個細節(jié),因為每一個細節(jié)都有可能決定整個系統(tǒng)的性能。
經(jīng)過模塊分化之后再分別用工具軟件實現(xiàn)各個模塊功能,要綜合考慮模塊與模塊之間的聯(lián)系,尤其是在用VHDL語言描述電路功能時,要符合它的設(shè)計條件。
確定好設(shè)計方案后,要用工具軟件進行仿真,仔細分析仿真結(jié)果,檢查程序代碼是否有誤,直到得到一個合理的設(shè)計結(jié)果。最終完成了基于匹配濾波器的最佳接收的MATLAB仿真和VHDL建模,且對生成的功能模塊進行仿真獲得的結(jié)果與基本理論符合,仿真獲得成功。
整個課程設(shè)計過程中,我了解到完成一個設(shè)計的完整過程,從理論知識到模型再到模型的實現(xiàn)是我們應(yīng)該深入掌握的設(shè)計方法,這在我日后的學(xué)習(xí)中是值得借鑒的。
完成經(jīng)過整個課程設(shè)計的任務(wù),在此,我想表達一下我的感激之情。
首先,感謝成都學(xué)院教務(wù)處制定了課程設(shè)計的重要實踐教學(xué)環(huán)節(jié),課程設(shè)計是學(xué)生在學(xué)習(xí)課程之后全面素質(zhì)教育的重要實踐訓(xùn)練,其目的是為了培養(yǎng)學(xué)生科學(xué)的思維方式和正確的設(shè)計思想,綜合運用所學(xué)理論、知識和技能分析和解決實際問題的能力,通過這次課程設(shè)計,我覺得自己無論在理論知識方面還是綜合實踐能力方面都得到了很大的提高。
其次,向我們的授課老師楊洪軍致以誠摯的謝意,楊老師學(xué)識淵博、治學(xué)嚴謹、平易近人,在本次課程設(shè)計中,遇到很多我不懂的問題,楊老師總是耐心的給我講解,還做了相關(guān)的拓展和思維延伸,對整個課程設(shè)計的完成有很大的幫助,讓我領(lǐng)會到更高層次的看待問題的方式,開拓了視野,領(lǐng)會了基本的思考方式,掌握了通用的研究方法。
最后衷心的感謝我的同學(xué)對我的幫助,我們一起學(xué)習(xí),一起討論,互相幫助,共同進步,他們給予了我很多無私的幫助和支持。
愿所有的老師、同學(xué)們合家歡樂,一生平安!
參考文獻
[1] 常華 袁鋼 常敏嘉.仿真軟件教程——Multisim和MATLAB[M].北京:清華大學(xué),2006.11
[2] 樊昌信.通信原理[M].北京:國防工業(yè)出版社 2009.1
[3] 黃智偉.FPGA系統(tǒng)設(shè)計與實踐[M].北京:電子工業(yè)出版社,2005.1
[4] 楊曉惠 楊旭.FPGA系統(tǒng)設(shè)計與實例[M].北京:人民郵電出版社,2010.1
[5] 元紅妍 張鑫.電子綜合設(shè)計實驗教程[M].山東:山東大學(xué)出版社,2005.11
[6] 楊曉慧 許紅梅 楊會玲.電子技術(shù)EDA實踐教程[M].北京:國防工業(yè)出版社,2005.8
[7] 楊恒 李愛國 王輝 王新安.FPGA/CPLD最新實用技術(shù)指南[M].北京:清華大學(xué)出版社,2005.1
[8] 潘松 黃繼業(yè).EDA技術(shù)實用教程[M].北京:科學(xué)出版社,2005.1
[9] 嚴曉華.現(xiàn)代通信技術(shù)基礎(chǔ)(第2版)[M].北京:清華大學(xué)出版社,2010.8
[10] 黃葆華 楊曉靜 牟華坤.通信原理[M].西安:西安電子科技大學(xué)出版社,2007.2
[11] 王旭東.MATLAB及其在FPGA中的應(yīng)用(第二版)[M].北京:國防工業(yè)出版社,2008.4
[12] 段吉海 黃智偉.基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設(shè)計[M].北京:電子工業(yè)出版社,2004.8
[13] 田耘.無線通信FPGA設(shè)計[M].北京:電子工業(yè)出版社,2008.2
附錄一 最佳接收機MATLAB代碼
% 產(chǎn)生高斯白噪聲(normal)
nt=randn(1,1000);
figure(1)
subplot(321)
plot(nt),title(白噪聲);
xlabel(n);
ylabel(x(n));
%s(t)
Ts = 1;%每個碼元時間長度
N_sample = 10;%每個碼元內(nèi)的抽樣點數(shù)
N = 100;%碼元數(shù)
dt = Ts/N_sample;
t = 0:dt:N_sample*N*dt-dt;
gt = ones(1,N_sample);%碼型,此為不歸零碼型
da = sign(randn(1,N));%產(chǎn)生隨即序列
n = 0:N-1;
st = sigexpand(da,N_sample);%從隨機序列到基帶信號
st = st(1:length(st)-N_sample+1);
st = conv(st,gt);%二進制數(shù)字基帶信號
subplot(322)
plot(t,st(1:length(t)));
axis([0 20 -1.5 1.5]);
ylabel(輸入輸入雙極性NRZ波形);
subplot(322)
stem(n,da);
axis([0 20 -1.5 1.5]);
ylabel(輸入數(shù)字序列);
%x(t)
xt=nt+st;
subplot(323)
plot(t, xt), title(帶噪聲信號);
xlabel(t(s));
ylabel(x(t));
%y(t)
h1t = gt;%匹配濾波器中沖激響應(yīng)抽樣
h2t = 5*sinc(5*(t-5)/Ts);% 理性低通濾波器中的沖激響應(yīng)
r1t = conv(xt,h1t);%匹配濾波器的輸出
subplot(324)
plot(t,[0 r1t(1:length(t)-1)]);
axis([0 21 -1.5 1.5]);
ylabel(匹配濾波器輸出);
subplot(326)
re1da= r1t(N_sample:N_sample:end);
stem(n,re1da(1:N));
axis([0 20 -1.5 1.5]);
ylabel(匹配濾波器的抽樣輸出);
subplot(325)
plot(t-5,[0 r2t(1:length(t)-1)]);
axis([0 20 -1.5 1.5]);
ylabel(理想低通濾波輸出 );
re2da= r2t(N_sample/2:N_sample:end);
figure,stem(n-5,re2da(1:N));
axis([0 20 -1.5 1.5]);
ylabel(理想低通濾波抽樣輸出 );
function[out]=sigexpand(d,M);
N=length(d);
out=zeros(M,N);
out(1,:)=d;
out=reshape(out,1,M*N);
附錄二 最佳接收機VHDL代碼
輸入信號電路代碼:
library ieee;
use ieee.std_logic_1164.all;
entity ps7 is--實體名
port(clk,load:in std_logic;
st:in std_logic;
Q:out std_logic);
end ps7;
architecture behav of ps7 is
signal c0,c1,c2,c3,c4,c5,c6,c7:std_logic;
begin
process(clk,load)
variable Q1:std_logic;
begin
if clkevent and clk=1 then
if(load=0) then
c7<=0;
c6<=0;
c5<=0;
c4<=0;
c3<=0;
c2<=0;
c1<=1;
c0<=0;
Q1:=c7;
else
c1<=c0;c2<=c1;c3<=c2;c4<=c3;c5<=c4;c6<=c5;
c7<=c6;c0<=c7 xor c4 xor c3 xor c2;--設(shè)置反饋方式
Q1:=c7;
end if;
end if;
Q<=Q1 XOR st;
end process;
end behav;
匹配濾波器代碼:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity lvbo1 is
port(x_in:in std_logic;
clk,start:in std_logic;
y_out:out integer range 0 to 3);
end lvbo1;
architecture behav of lvbo1 is
signal cnt1,cnt2,cnt3,cnt4,tmp:integer range 0 to 4;
signal cnt:std_logic_vector(1 downto 0);
begin
u1:process(clk,x_in,start)
begin
if clkevent and clk=1 then
if start=0 then
cnt<="00";cnt1<=0;cnt2<=0;cnt3<=0;cnt4<=0;tmp<=0;
else case cnt is
when "00" => if(cnt1>2) then tmp<=0;
elsif(cnt2>2) then tmp<=1;
elsif(cnt3>2) then tmp<=2;
else tmp<=3; end if;
if x_in=1 then
cnt1<=1;cnt2<=1;cnt3<=0;cnt4<=0;
else
cnt1<=0;cnt2<=0;cnt3<=1;cnt4<=1;
end if;
when "01" => if(x_in=1)then
cnt1<=cnt1+1;cnt2<=cnt2;cnt3<=cnt3;cnt4<=cnt4+1;
else
cnt1<=cnt1;cnt2<=cnt2+1;cnt3<=cnt3+1;cnt4<=cnt4;end if;
when "10" =>if(x_in=1)then
cnt1<=cnt1;cnt2<=cnt2;cnt3<=cnt3+1;cnt4<=cnt4+1;
else
cnt1<=cnt1+1; cnt2<=cnt2+1;cnt3<=cnt3; cnt4<=cnt4;end if;
when "11" => if(x_in=1)then
cnt1<=cnt1;cnt2<=cnt2+1;cnt3<=cnt3+1;cnt4<=cnt4;
else
cnt1<=cnt1+1;cnt2<=cnt2;cnt3<=cnt3;cnt4<=cnt4+1;end if;
when others=>null;
end case;
cnt<=cnt+1;
end if;
end if;
end process;
y_out<=tmp;
end;
最佳接收機系統(tǒng)代碼:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity zuijia is
port(indata,syclk,syen:in std_logic;
xt:out std_logic;
outdata:out integer range 0 to 3);
end;
architecture one of zuijia is
component ps7 is
port(clk,load:in std_logic;
st:in std_logic;
Q:out std_logic);
end component;
component lvbo1 is
port(x_in:in std_logic;
clk,start:in std_logic;
y_out:out integer range 0 to 3);
end component;
signal xt0:std_logic;
begin
u1:ps7 port map(clk=>syclk,load=>syen,st=>indata,Q=>xt0);
u2:lvbo1 port map(clk=>syclk,start=>syen,x_in=>xt0,y_out=>outdata);
xt<=xt0;
end;