matlab 调制识别,调制方式识别仿真
第四章基于決策理論的調制樣式識別4.1數字調制信號的模型如第三章所述,在現代通信中,通信信號的種類很多,但從理論上來說,各種通信信號都可以用正交調制的方法來實現。實現方式如下:
4.1.1幅度鍵控調制(ASK)用數字基帶信號控制正弦波的幅度。
(1) 信號
在這類調制中,載波的幅度隨二進制被調制信號序列而變,化狀態。具體可以表示為:
(4-1)可以令那么信號可表示為
(4-2)其中, 為基帶碼元波形, 為信源給出的二進制符號0或1, 為載波角頻率,且有 , 為碼元周期。
因此,要實現正交調制,只要令
(4-3)就可以實現調制。
信號由于一個信號狀態始終為0,此時相當于處于斷開狀態,所以也稱為通斷鍵控信號( 信號)。若二進制序列 的功率譜密度為 ,則
的功率譜密度表達式可以寫為:
(4-4)可知,信號的帶寬是基帶脈沖波形帶寬的2倍。
(2) 信號
進制幅度鍵控使用 種可能的取值對載波幅度進行鍵控,在每個碼元間隔 內發送一種幅度的載波信號。 進制數字幅度調制信號比 信號傳輸效率更高。在相同的碼元傳輸速率下, 信號和 的帶寬相同, 的信道利用率最高為 , 的信道利用率可超 。M進制幅度調制信號可表示為:
(4-5)式中: g(t)式持續時間為T的矩形脈沖, 為幅度值,有M種可能的取值, 與 信號類似,由式(4-3)就可以實現 調制。
4.1.2相移鍵控調制(PSK)用數字基帶信號控制正弦波的相位。
(1) 信號
方式是鍵控的載波相位按基帶脈沖序列的規律而改變的數字調制方式,信號形式一般表示為:
(4-6)式中: 為基帶碼元波形, 為信源取值-1或+1,即發送二進制符號 0時 取1,發送二進制符號1時 取-1, 是載波角頻率。這種調制方式的正交實現與 信號十分相似。具體的實現見式(4-3)。
(2) M進制數字相位調制信號
在多進制相位調制中,MPSK信號的表示式:
(4-7)式中: 為受信息控制的相位參數,
4.1.3頻移鍵控調制(FSK)信號是符號0對應載波角頻率 ,符號1對應載波角頻率為 的已調波形。它可以用一個矩形脈沖對一個載波進行調頻實現,其表達式為:
(4-8)式中 的取值為0,1,g(t)為矩形脈沖, 為 的反碼,T為碼元周期。因此,只要把調制數據序列形成矩形脈沖,并把 看成兩個 信號相加就可以了,并令
(4-9)利用式(4-2)、式(4-3)就可以實現正交調制。
4.1.4正交振幅調制信號(QAM)正交振幅調制是一種多進制混合調幅調相的調制方式,??就是 , 和 的信號分布如圖4.1所示,這種分布圖稱為星座圖。
圖4.1信號的星座圖從圖4.1可以看出, 用 個點的星座的位置來代表八進制的 種數據信號, 這 個點的相位各不相同,而振幅只有兩種。 用 個點的星座的位置來代表十六進制的 種數據信號,它有 種相位, 種振幅。
信號的數學表達式為:
(4-10)式中, 是寬度為 的脈沖信號。
只要令:
(4-11)就可以實現 信號了。
4.2調制信號的自動識別4.2.1特征參數集本節針對 共六種數字調制信號,提取了五個基于瞬時信息的特征參數,即零中心歸一化瞬時幅度之譜密度最大值 ,零中心非弱信號段瞬時相位非線性分量絕對值的標準偏差 ,零中心非弱信號段瞬時相位非線性分量的標準偏差 ,零中心歸一化瞬時幅度絕對值的標準偏差 和零中心歸一化非弱信號段瞬時頻率絕對值的標準偏差 。下面將對每個特征參數進行具體分析。對各數字調制信號,在 中設定各參數為:載頻 ,采樣頻率 ,碼速率 字符/秒, 信號的調制頻偏與碼速率相同,碼元個數N=100。
(1)零中心歸一化瞬時幅度之譜密度最大值
由下式定義:
(4-12)式中, 為取樣點數, 為零中心歸一化瞬時幅度,由下式計算:
(4-13)式中,,而為瞬時幅度的平均值,用平均值來對瞬時幅度進行歸一化的目的是為了消除信道增益的影響。
主要用來區分 和其他其他數字調制信號。因為對 信號,其包絡(瞬時幅度)為常數,故其零中心歸一化瞬時幅度為零,即 。對 信號因包含包絡信息,其零中心歸一化瞬時幅度不為零,故 。 信號由于受信道帶寬的限制,在相位變化時刻會產生幅度突變,所以也包含幅度變化信息,即 。所以用 可以區分 和其他數字調制信號。當然實際情況下不能以 作為判別的分界線(門限)。而需要設置一個判決門限 。
(2)零中心非弱信號段瞬時相位非線性分量絕對值的標準偏差
由下式定義:
(4-14)式中 是判斷弱信號的一個幅度判決門限電平, 是在全部取樣數據 中屬于非弱信號值的個數, 是經零中心化處理后瞬時相位的非線性分量,在載波完全同步是,有:
(4-15)式中 , 為瞬時相位。
主要用來區分是4PSK信號還是2PSK或者ASK信號。因為對ASK信號不含相位信息,故 ,對2PSK信號因其只有兩個相位值,故其零中心歸一化相位絕對值也為常數,不含相位信息,故也滿足 。而對于4PSK信號,因其瞬時相位有四個值,故其零中心歸一化相位絕對值不為常數,故有 。
(3)零中心非弱信號段瞬時相位非線性分量的標準偏差
(4-16)與 的區別在于后者是相位絕對值的標準偏差,而前者是直接相位(非絕對值相位)的標準偏差。 主要用來區分是ASK還是2PSK信號,因為對于ASK信號無直接相位信息,即 ,而2PSK信號含有直接相位信息(其瞬時相位取0或者 ),故
(4)零中心歸一化瞬時幅度絕對值的標準偏差
由下式定義:
(4-17)式中 前面已經給出了它的定義式。 主要用來區分式2ASK信號還是4ASK信號。因為對于2ASK信號它的幅度絕對值是一常數,不含幅度信息,所以有 。而對于4ASK信號的幅度絕對值不是常數,仍含有幅度信息,所以 。可設其判決門限為 。
(5)零中心歸一化非弱信號段瞬時頻率絕對值的標準偏差
由下式定義:
(4-18)式中 ,其中 為數字信號的符號速率, 為信號的瞬時頻率。 用來區分是2FSK信號還是4FSK信號。因為對2FSK信號,它的瞬時頻率之憂個值,所以它的零中心歸一化瞬時頻率的絕對值是常數,則其標準偏差 ,而歲4FSK信號,由于它的瞬時頻率有4個值,所以它的零中心歸一化瞬時頻率的絕對值不為常數,則其標準偏差 。
4.2.2分類識別(1)決策樹識別
觀察3.1.3節中各特征參數隨信噪比的變化,采用決策樹的識別分類如圖所示。采用決策樹的識別步驟為:
①計算待識別信號的零中心歸一化瞬時幅度之譜密度最大值 ,與門限 比較,將待識別的信號分成兩類:(2ASK、4ASK、2PSK、4PSK)和(2FSK、4FSK),即不恒定包絡信號和恒包絡的信號;
②對于判別類屬于(2FSK、4FSK)的信號,計算待識別信號的零中心歸一化非弱信號段瞬時頻率絕對值的標準偏差 ,與門限 比較,將其分成兩類:2FSK和4FSK;
③對于判別類屬于(2ASK、4ASK、2PSK、4PSK)的信號,計算待識別信號的零中心非弱信號段瞬時相位非線性分量絕對值的標準偏差 ,與門限 比較, 將其分成兩類:4PSK 和(2PSK、2ASK、4ASK);
④對于判別類屬于(2PSK、2ASK、4ASK)的信號,計算待識別信號的零中心非弱信號段瞬時相位非線性分量的標準偏差 ,與門限 比較,將其分成兩類:2PSK和(2ASK、4ASK)。
⑤對于判別類屬于(2ASK、4ASK)的信號,計算待識別信號的零中心歸一化瞬時幅度絕對值的標準偏差 ,與門限 比較,將其分成兩類:2ASK和4ASK。
數字調制信號2ASK4ASK2FSK2PSK4FSK4PSKYNYYYYNNNN
圖4.2基于決策論的數字調制信號識別(2)特征門限值的確定
對基于決策理論的調制識別算法,每個特征參數都是用來區分兩個信號子集A 、B的,且判決規則如下:
(4-19)即當信號特征值 大于門限值 時,判為 子集中的信號,當 小于門限值 時, 則判為 子集中的信號。選擇 的最佳門限值 的準則是使下面的平均概率最大(趨近于1):
(4-20)式中, 為在已知是 子集中的信號的條件下,用門限 判決是 子集的正確概率; 為在已知是 子集中的信號的條件下,用門限 判決是 的正確概率。
4.3調制信號識別中應注意的問題前面對基于決策理論的信號調制樣式識別算法進行了具體的說明,在實現這些算法時會碰到許多具體的實際問題,例如采樣速率的選取、非弱信號段的實際選取等。下面就這些問題作一簡單討論。
(1)采樣速率的選取
根據Nyquist采樣定理,采樣速率 只要滿足: ( 為最高信號頻率)即可。如果采用帶通采樣,則有: (其中 為信號帶寬)。采樣頻率的這種選取原則主要是從保留信息內容,避免頻譜折疊角度去考慮的。而從調制樣式自動識別的角度來考慮,采樣頻率的選取一般要求盡可能地選高一些,例如取 ,其中??為載波頻率(中心頻率)。這樣選取的理由主要有以下幾點:一是信號的最高頻率或帶寬有時往往是不確知的,尤其是在非合作通信偵收場合;二是在采用過零檢測載頻估計算法中,也要求采用過采樣,否則會影響估計精度;三是為了用Hilbert變換實現從實信號到復解析信號的變換處理,也要求采用過采樣;四是當采用模 計算瞬時相位時,為了確保相位非模糊,兩個采樣點之間相位差應不大于 ,這也就要求 。 以上四點總的來看要求采樣頻率盡可能地選高一些,所以按 來選取采樣頻率是比較合適的。
(2)非線性相位分量 的計算
一個實際信號的瞬時相位 將由式(4-21)給出:
(4-21)式中, 是收發雙方的載頻誤差, 是反映調制信息的非線性相位分量,由于載頻誤差以及實際相位計算時是以模 來計算的,這就使非線性相位分量 的計算復雜化,即如何從有相位折疊的 中求出 ,因為在有相位折疊的情況下,即使能準確地估計出載頻(或載頻誤差 )也無法直接計算出 。而必須首先從 中恢復出無折疊相位的 ,再從 中減去線性相位成份。為此,首先計算修正相位序列 :
(4-22)則無折疊相位 為
(4-23)所以非線性相位由下式計算
(4-24)由此可見,計算非線性相位分量 必須確知載頻
(3)非弱信號段判決門限 的選取
在前面討論的特征提取算法中,為了避免弱信號段信噪比差對特征值提取的影響,都采用了在非弱信號段提取(瞬時相位或頻率)特征參數以及進行載頻估計的特殊處理。如何選取非弱信號段,判決門限 的確定就成為問題的關鍵。顯然 選得太低,其作用就不大,而選得太高則會丟失有用的相位信息而導致錯誤識別。一種比較直觀的選取 是以 的平均值作為判決門限 ,即:
(4-25)值的這種直觀分析判斷與理論分析是相符合的。因為理論分析表明,對模擬調制信號 的最佳值 的變化范圍為0.858~1,而對數字調制信號 的變化范圍為0.9~1.05, 所以非弱信號段判決門限 取為1 是比較合適的。
4.4仿真及結果分析4.4.1數字調制信號的產生軟件無線電中各種調制信號都是通過正交調制實現的,在 2.2節中已對 和 信號的正交調制產生進行了具體說明。下面將敘述本論文中數字調制信號的產生,即 六種數字調制信號的產生。
(1)調制信號產生
本文采用兩種方法產生數字調制信號。第一,直接調用 中的 函數,即 ,其中, 為原始信號, 為載波頻率, 為采樣頻率, 為碼元速率, 為調制類型;第二,根據調制信號的數學模型自己編寫 程序。
(2)高斯白噪聲的產生
為產生出一定信噪比的數字調制信號,需要按不同的信噪比在理想的數字調制信號中加入高斯白噪聲。設數字調制信號的幅度值為 , 為高斯白噪聲在時間上的平均功率,定義信噪比為:
(4-26)實際計算中,用 代替 。其中 為信號序列的采樣點數,設定 ,根據上式得到高斯白噪聲的 ,利用下面的語句即可得到要加入信號的高斯白噪聲:
(4-27)其中 函數產生的是均值為0,方差為1的高斯白噪聲。
設未加噪聲的信號序列為 ,則信噪比為 的信息序列為:
(4-28)(3)數字調制信號的仿真
用 仿真產生的未加噪聲的數字調制信號如圖所示,其中設定各參數 字符/秒, 的頻偏 與碼速率相同,碼元數目 。
圖4.3未加噪聲的二進制數字調制信號
圖4.4未加噪聲的四進制數字調制信號
4.4.2瞬時信息的獲取根據卡爾迪變換提取數字調制信號的瞬時信息,其中設定各參數 字符/秒, 的頻偏 與碼速率相同,碼元數目N=10。圖4.5~圖4.10分別給出了? ?信號的瞬時特征圖,從圖中我們可以看出,不同的數字調制信號,其瞬時信息存在明顯的差異。 信號的調制信息分別在瞬時幅度、瞬時頻率與瞬時相位里體現。
圖4.5 2ASK信號的瞬時特征圖
圖4.6 2FSK信號的瞬時特征圖
圖4.7 2PSK信號的瞬時特征圖
圖4.8 4ASK信號的瞬時特征圖
圖4.9 4FSK信號的瞬時特征圖
圖4.10 4PSK信號的瞬時特征圖4.4.3仿真試驗及結果分析本系統在Matlab6.5仿真環境中完成,考慮2ASK、2FSK、2PSK、4ASK、4FSK和4PSK六種數字調制類型。仿真試驗中假設載波同步,采用的調制信號的載波頻率 為150kHz,采樣頻率 為1200kHz,碼元速率 為12.5k字符/秒,FSK信號的頻偏與碼速率相同,碼元個數N取為64,噪聲采用高斯白噪聲。這里載波頻率較低是因為假設調制信號已經過中頻的下變頻處理,碼元個數較少是為了方便識別正確率的統計。各特征參數的門限 分別取4、0.57、0.96、0.25、0.4。
本試驗考察不同信噪比條件下該算法的正確識別率,對每個調制類型進行大量仿真,仿真程序代碼詳見附錄。仿真結果見表。由表可知,本算法在信噪比10dB時,平均識別正確率達到98.7%,在20dB以上,達到99.9%以上。
SNR2ASK4ASK2FSK4FSK2PSK4PSK平均
10dB98.299.199.599.897.698.398.7
20dB10010010010099.699.899.9
第五章結論及展望5.1對本文工作的總結本論文主要針對軟件無線電接收機中的調制識別算法進行了研究,目前的調制識別方法有多種,特征提取部分主要在時域、頻域或小波域進行分析,分類識別部分主要采用決策樹或神經網絡。本文提取時域的特征參數,利用決策樹進行分類識別。主要工作是對數字調制信號進行識別。
在對數字調制信號的瞬時信息進行分析時,提取了特征參數并給出了數字調制信號識別的通用方法,仿真試驗結果證明,本算法不但在低信噪比的條件下,對調制信號的識別正確率高,而且在進行識別的過程中,用到的特征參數較少。
5.2決策樹識別中存在的問題從第三、四章研究的基于決策理論的信號調制樣式識別方法可以看出,這種方法主要存在以下三個問題:
(1)對不同的識別算法采用相同的特征參數,如果這些特征參數所處的判決位置不同,則會導致在相同信噪比條件下識別的正確率不同;
(2)在每個判決節點處同時只使用一個特征量來作判決,這就導致識別的成功率不僅與特征使用的先后次序有關,而且完全取決于每個特征的單次正確判決概率;
(3)每個特征都需要對應設置一個判決門限,而判決門限的選取對識別的正確率影響很大。
5.3對今后工作的展望對于一個通信信號進行接收解調的前提條件是首先要確定該信號的調制樣式,因此研究調制樣式識別在軟件無線電接收機中具有非常重要的意義。在今后的工作中,應做進一步研究,主要工作如下:
(1)研究擴頻通信對調制識別算法的影響;
(2)研究載頻估計和碼元速率估計;
(3)改進和簡化算法,加快數字信號處理的速度;
(4)用硬件實現,具體檢驗算法的實際性
參考文獻[1]? ?? ?楊小牛,樓才義,徐建良. 軟件無線電原理與應用. 電子工業出版社,2001
[2]? ?? ?姚亞峰,黃載祿.通信信號調制識別技術.通信技術,2003,138(6):41-43
[3]? ?? ?M.L.D Wong,A.K.Nandi Automatic digital modulation recognition using artificial neural netmork and genetic algorithm. Signal processing, 2004:351-365.
[4]? ?? ?李建新,劉乃安,劉繼平. 現代通信系統分析與仿真-Matlab 通信工具箱. 西安電子科技大學出版社,2000
[5]? ?? ?約翰.G..普羅克斯,馬蘇德.薩勒赫,劉樹棠譯.現代通信系統-使用 Matlab. 西安交通大學出版社,2001
[6]? ?? ?劉波,文忠,曾涯.Matlab信號處理.電子工業出版社.2006
[7]? ?? ?劉敏,魏玲.Matlab 通信仿真與應用. 國防工業出版社,2001
[8]? ?? ?張輝,曹麗娜.現代通信原理與技術. 西安電子科技大學出版社.2002
[9]? ?? ?樓順天,李博菡.基于Matlab的系統分析與設計-信號處理.西安電子科技大學出版社,2000
[10]??宋輝.通信信號的特征分析、自動識別與參數提取.[學位論文].江蘇:南京理工大學.2003
[11]??張鳴.軟件無線電接收機中信號調制樣式識別算法的研究.[學位論文].西安:西安科技大學.2005
致謝本文是在導師xxx的悉心指導和關心幫助下完成的,xxx老師那豐富科研經驗,嚴謹的治學態度和高尚的人格力量,都將使我受益終生;在此致以最誠摯的敬意和謝意!
同時也得到了同學們的關心和他們寶貴的資料,他們的積極向上的態度也感染著我,激勵著我。
最后,我要衷心感謝我的父母,感謝所有關心我的老師、同學和朋友們!老師們的諄諄教誨、親人們的期盼和朋友們的友誼都永遠是我前進的動力。讓我以加倍的努力去報答他們的厚愛!
附錄程序:信號產生、參數提取及識別過程clear all;
close all;
fc=20000; %載波頻率
fs=40000; %采樣速率
k=2;
code_size=15*round(k*fs/fc);? ?? ?? ?? ? %信息碼元長度
t0=5.5;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %信號長度
Ns=256;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%采樣點個數
fd=125;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%符號速率
ts=1/fs;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %采樣周期
M=64? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%碼元個數
ti=1/fd;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %碼元間隔
N=ti/ts;
t=[0:ts:t0];
select=menu('調制方式','2ASK','2FSK','2PSK','4ASK','4FSK','4PSK');
switch select
case 1,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???% 2ASK signal
x=randint(1,M);
m=sin(2*pi*fc*t);
y=ones(1,M*N);
for i=1:M
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
end
T=zeros(6,50);
T(1,1:50)=1;
case 2,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%2FSK signal
x=randint(1,M);
m1=sin(2*pi*fc*t);
m2=sin(2*pi*2*fc*t);
y=zeros(1,M*N);
for i=1:M
if x(i)==1;
for j=1:N;
y((i-1)*N+j)=x(i)*m1(j);
end
elseif??x(i)==0;
for j=1:N;
y((i-1)*N+j)=(1-x(i))*m2(j);
end
end
end
T=zeros(6,50);
T(2,1:50)=1;
case 3,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%2PSK signal,
x=randint(1,M);
m1=sin(2*pi*fc*t);
m2=sin(2*pi*fc*t+pi);
y=zeros(1,M*N);
for i=1:M
if x(i)==1;
for j=1:N;
y((i-1)*N+j)=x(i)*m1(j);
end
elseif??x(i)==0;
for j=1:N;
y((i-1)*N+j)=(1-x(i))*m2(j);
end
end
end
T=zeros(6,50);
T(3,1:50)=1;
case 4,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?% 4ASK signal
x1=randint(1,M);
x2=randint(1,M);
x3=randint(1,M);
x=x1+x2+x3;
m=sin(2*pi*fc*t);
y=ones(1,M*N);
for i=1:M
if x(i)==0;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
elseif x(i)==1;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
elseif x(i)==2;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
elseif x(i)==3;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
end
end
T=zeros(6,50);
T(4,1:50)=1;
case 5,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?% 4FSK signal
x1=randint(1,M);
x2=randint(1,M);
x3=randint(1,M);
x=x1+x2+x3;
m1=sin(2*pi*fc*t);
m2=sin(2*pi*2*fc*t);
m3=sin(2*pi*3*fc*t);
m4=sin(2*pi*4*fc*t);
y=zeros(1,M*N);
for i=1:M
if x(i)==0;
for j=1:N
y((i-1)*N+j)=(1-x(i))*m1(j);
end
elseif x(i)==1;
for j=1:N
y((i-1)*N+j)=x(i)*m2(j);
end
elseif x(i)==2;
for j=1:N
y((i-1)*N+j)=(x(i)-1)*m3(j);
end
elseif x(i)==3;
for j=1:N
y((i-1)*N+j)=(x(i)-2)*m4(j);
end
end
end
T=zeros(6,50);
T(5,1:50)=1;
case 6,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %4PSK signal
x1=randint(1,M);
x2=randint(1,M);
x3=randint(1,M);
x=x1+x2+x3;
m1=sin(2*pi*fc*t);
m2=sin(2*pi*fc*t+pi/2);
m3=sin(2*pi*fc*t+pi);
m4=sin(2*pi*fc*t+3*pi/2);
y=zeros(1,M*N);
for i=1:M
if x(i)==0;
for j=1:N
y((i-1)*N+j)=(1-x(i))*m1(j);
end
elseif x(i)==1;
for j=1:N
y((i-1)*N+j)=x(i)*m2(j);
end
elseif x(i)==2;
for j=1:N
y((i-1)*N+j)=(x(i)-1)*m3(j);
end
elseif x(i)==3;
for j=1:N
y((i-1)*N+j)=(x(i)-2)*m4(j);
end
end
end
T=zeros(6,50);
T(6,1:50)=1;
end
SNR=20;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%定義信噪比,單位DB
sigpow=mean(abs(y).^2);? ?? ?? ?? ?? ?? ?? ???%power of input signal
noisefac=10^(-SNR/10);
noise=randn(1,size(y,2));
noise=noise*(sqrt(sigpow*noisefac)/sqrt(mean(noise.^2)));? ?? ?%產生所需的高斯噪聲
ynoise=noise+y;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %加噪后的信號
for n=1:1:50
m=n*Ns;
x=(n-1)*Ns;
for i=x+1:m;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %提取信號段
y0(i)=ynoise(i);
end
Y=fft(y0);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%調制信號的傅立葉變換
y1=hilbert(y0);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???%實信號的解析式
z=abs(y0);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%實信號的瞬時幅度
phase=angle(y1);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%實信號的瞬時相位
add=0;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%求Rmax
for i=x+1:m;
add=add+z(i);
end
ma=add/Ns;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%瞬時幅度的平均值
y2=z./ma??;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%幅度比,即為文獻中的an(i)
y3=y2-1;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%歸一化瞬時幅度
y4=max(abs(y3));
y2n=y3./y4;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? % 即為文獻中的acn(i)
s=fft(y2n);
R=abs(s);
Rmax=max((R)/Ns).^2;? ?? ?? ?? ?? ?? ?%零中心歸一化瞬時幅度的譜密度的最大值
Xcn=0;
Ycn=0;
for i=x+1:m;
Xcn=Xcn+y2n(i).*y2n(i);
Ycn=Ycn+abs(y2n(i));
end
Xcnav=Xcn/Ns;
Ycnav=(Ycn/Ns).*(Ycn/Ns);
deltaaa=sqrt(Xcnav-Ycnav);? ?? ?? ?? ?? ?%零中心歸一化瞬時幅度絕對值得標準偏差
if??phase(2+x)-phase(1+x)>pi;? ?? ?? ?? ? %修正相位序列
Ck(1+x)=-2*pi;
elseif??phase(1+x)-phase(2+x)>pi;
Ck(1+x)=2*pi;
else Ck(1+x)=0;
end
for i=x+2:m-1;
if? ?phase(i+1)-phase(i)>pi;
Ck(i)=Ck(i-1)-2*pi;
elseif??phase(i)-phase(i+1)>pi
Ck(i)=Ck(i-1)+2*pi;
else
Ck(i)=Ck(i-1);
end
end
if??-phase(m)>pi;
Ck(m)=Ck(m-1)-2*pi;
elseif phase(m)>pi;
Ck(m)=Ck(m-1)+2*pi;
else Ck(m)=Ck(m-1);
end
phase1=phase+Ck? ?? ?? ?? ?? ?? ?? ???%去相位卷疊后的相位序列
phasenl=phase1-2*pi*fc*i/fs;? ?? ?? ?? ???%非線性相位
at=1;? ?? ?? ?? ?? ?? ?? ?? ?? ???%判決門限電平
a=0;? ?%求取零中心非弱信號段瞬時相位非線性分量絕對值的標準偏差和零中心非弱信號段瞬時相位非線性分量的標準偏差
b=0;
d=0;
c=0;
for i=x+1:m;
if y2(i)>at
c=c+1;
phasesquare(i)=phasenl(i).*phasenl(i);
a=a+phasesquare(i);
phaseabs(i)=abs(phasenl(i));
b=b+phaseabs(i);
d=d+phasenl(i)
end
end
a1=a/c;
b1=(b/c).*(b/c);
d1=(d/c).*(d/c);
deltaap=sqrt(a1-b1);? ? %零中心非弱信號段瞬時相位非線性分量絕對值的標準偏差
deltadp=sqrt(a1-d1);? ? %零中心非弱信號段瞬時相位非線性分量的標準偏差
freqN(i)=phase1(i)-phase1(i-1);
for i=x+1:m;
if i>at;
c=c+1;
freqNsquare(i)=freqN(i).*freqN(i);
a=a+freqNsquare(i);
b=b+freqN(i);
end
end
a1=a/c;
b1=(b/c)^2;
deltaaf=sqrt(a1-b1);? ?? ?? ???%零中心歸一化非弱信號段瞬時頻率絕對值得標準偏差
end
if (Rmax>80)
if(deltaaa>0.2)
type=menu('輸入信號是','2PSK信號');
else
type=menu('輸入信號是','2ASK信號');
end
else
if (deltaaa<0.23)
type=menu('輸入信號是','4ASK信號');
else
if(deltaap>50)
type=menu('輸入信號是','4FSK信號');
else
if(Rmax>80)
type=menu('輸入信號是','2FSK信號');
else
type=menu('輸入信號是','4PSK信號');
end
end
end
end
我老師說:這圖有點不對。而且這程序也有點問題。哪位大神能幫我,快要交稿了。謝謝
總結
以上是生活随笔為你收集整理的matlab 调制识别,调制方式识别仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nexus下载地址分享
- 下一篇: java根据模板生成PDF