主頁 >  其他 > 模擬幅度調制相干解調系統抗噪聲性能仿真分析

模擬幅度調制相干解調系統抗噪聲性能仿真分析

2020-11-13 02:01:28 其他

文章目錄

  • 1、引言
    • 1.1 研究目的
    • 1.2 研究方法
    • 1.3 主要內容
  • 2、系統模型
    • 2.1 DSB-SC
    • 2.2 AM
    • 2.3 SSC
  • 3、抗噪聲性能理論分析
    • 3.1 抗噪性能通用模型
    • 3.2 DSB-SC抗噪性能
    • 3.3 常規AM抗噪性能
    • 3.4 SSC抗噪性能
  • 4、仿真實作與仿真結果
    • 4.1 DSB-SC
      • 4.1.1 仿真模型
      • 4.1.2 MATLAB實作
      • 4.1.3 仿真結果
      • 4.1.4 仿真結果與理論結果對比
    • 4.2 AM
      • 4.2.1 仿真模型
      • 4.2.2 MATLAB實作
      • 4.2.3 仿真結果
      • 4.2.4 仿真結果與理論結果對比
    • 4.3 SSC
      • 4.3.1 仿真模型
      • 4.3.2 MATLAB實作
      • 4.3.3 仿真結果
      • 4.3.4 仿真結果與理論結果對比
  • 5、小結
  • 6、參考文獻

1、引言

1.1 研究目的

\space\space\space\space\space\space\space 在模擬通信系統中產生的信號(如人聲等),其信號的頻率往往很低,在20-2000Hz左右,因此模擬信號的波長過長,不利于信號傳輸,通過信號調制技術,可以將有用信號乘以載波,由此得到高頻信號,以此增強信道的傳輸效率,由此誕生了信號調制解調與信道抗噪性能分析等技術,

1.2 研究方法

\space\space\space\space\space\space\space 在本文中,我們將采用理論計算與MATLAB仿真的研究方法建立信道模型,通過快速傅里葉變換與傅里葉反變換同時分析信號在時域和頻域的狀態,利用隨機程序與高斯分布產生加性高斯白噪聲,并設計不同種類的FIR濾波器進行噪聲抑制,其中包括切比雪夫濾波器、FIR低通濾波器等,

1.3 主要內容

此次實驗的主要內容將以如下三個模塊展開:
1、抑制載波雙邊帶調制DSB-SC
2、常規調幅調制AM
3、抑制載波單邊帶調制SSC
就三種不同信道的調制解調、濾波技術、抗噪性能分析等指標進行分析,包括理論分析與仿真結果的對比,理論與實際誤差的產生原因分析等,

2、系統模型

2.1 DSB-SC

DSB-SC信道模型

圖2.1-1 DSB-SC信道模型

抑制載波雙邊帶調制DSB-SC的時域調制模型為
s ( t ) = A c m ( t ) c o s 2 π f c t (2-1) s(t) = A_{c}m(t)cos2\pi f_{c}t \tag{2-1} s(t)=Ac?m(t)cos2πfc?t(2-1)
其中攜帶資訊的調制信號 m ( t ) m(t) m(t)用單音信號模擬,其信號頻率為 f m f_{m} fm?
m ( t ) = c o s 2 π f m t (2-2) m(t)=cos2\pi f_{m}t\tag{2-2} m(t)=cos2πfm?t(2-2)

因此,通過傅里葉變換,得到 s ( t ) 、 m ( t ) s(t)、m(t) s(t)m(t)的頻域運算式
S ( f ) = 1 4 [ δ ( f ? 110 ) + δ ( f ? 90 ) + δ ( f + 110 ) + δ ( f + 90 ) ] (2-3) S(f)=\frac{1}{4}[\delta(f-110)+\delta(f-90)\\+\delta(f+110)+\delta(f+90)]\tag{2-3} S(f)=41?[δ(f?110)+δ(f?90)+δ(f+110)+δ(f+90)](2-3)
M ( f ) = 1 4 [ δ ( f ? 10 ) + δ ( f + 10 ) ] (2-4) M(f)=\frac{1}{4}[\delta(f-10)+\delta(f+10)]\tag{2-4} M(f)=41?[δ(f?10)+δ(f+10)](2-4)
其中, f m = 10 H z 、 f c = 100 H z f_m=10Hz、f_c=100Hz fm?=10Hzfc?=100Hz

已調信號 s ( t ) s(t) s(t)通過疊加信道高斯白噪聲后通過帶通濾波器BPF,該帶通濾波器的時域和頻率可以分別用抽樣信號與雙邊矩形信號來表示
在這里插入圖片描述

圖2.1-2 BPF時域表示

在這里插入圖片描述

圖2.1-3 BPF頻域表示

通過BPF后的信道可以濾除有用信號在信道中被疊加的高斯白噪聲,再通過解調器還原原始的信號波形,已知解調器由乘法器與低通濾波器組成,其中乘法器模型表示為:
s d ( t ) = s ( t ) c o s 2 π f c t (2-5) s_{d}(t) =s(t)cos2\pi f_{c}t\tag{2-5} sd?(t)=s(t)cos2πfc?t(2-5)
最后通過低通濾波器LPF得到原始信號 m o ( t ) m_{o}(t) mo?(t),低通濾波器的時域和頻域表示如下:
在這里插入圖片描述

圖2.1-4 LPF時域表示

在這里插入圖片描述

圖2.1-5 LPF頻域表示

2.2 AM

常規調幅(AM)的調制模型為
在這里插入圖片描述

圖2.2-1 AM調制信道模型

常規調幅(AM)信號的時域運算式為
s A M ( t ) = A c [ 1 + a ? m n ( t ) ] c o s 2 π f c t (2-6) s_{AM}(t)=A_{c}[1+a\cdot m_{n}(t)]cos2\pi f_{c}t\tag{2-6} sAM?(t)=Ac?[1+a?mn?(t)]cos2πfc?t(2-6)
其中, m n ( t ) m_{n}(t) mn?(t)攜帶信號, a a a為調幅系數, A c ( t ) c o s 2 π f c t A_{c}(t)cos2\pi f_{c}t Ac?(t)cos2πfc?t為載波信號,
常規AM調制信號時域已調信號如下圖所示
在這里插入圖片描述

圖2.2-2 常規調幅AM信號時域表達

為了不產生過調制現象,需要滿足 ∣ m ( t ) ∣ ≤ 1 |m(t)|\leq1 m(t)1,即 ∣ m ( t ) ∣ 2  ̄ ≤ 1 \overline{|m(t)|^2}\leq1 m(t)2?1,經驗得到當調制系數 η A M ≤ 0.5 \eta_{AM}\leq0.5 ηAM?0.5,通過傅里葉變換得到已調信號的頻域模型 S A M ( f ) S_{AM}(f) SAM?(f)
S A M ( f ) = A c 2 [ δ ( f ? f c ) + M ( f ? f c ) ] + A c 2 [ δ ( f + f c ) + M ( f + f c ) ] (2-7) S_{AM}(f)=\frac{A_c}{2}[\delta(f-f_c)+M(f-f_c)]\\+\frac{A_c}{2}[\delta(f+f_c)+M(f+f_c)]\tag{2-7} SAM?(f)=2Ac??[δ(f?fc?)+M(f?fc?)]+2Ac??[δ(f+fc?)+M(f+fc?)](2-7)
m ( t ) m(t) m(t)與AM信號的頻譜如下圖所示:
在這里插入圖片描述

圖2.2-3 AM信號頻域圖

與DSB-SC相同,AM調制得到的信號頻譜屬于雙邊帶信號,因此同樣可以通過一個帶通濾波器BPF濾除噪聲,以達到提高信噪比的目的,其時域信道模型如下圖所示: 在這里插入圖片描述

圖2.2-4 AM已調信號通過BPF濾除部分噪聲

常規AM調制的最大優點是接識訓簡單,可以采用包絡檢波法,因此,其信道解調模型如下:
在這里插入圖片描述

圖2.2-5 AM信號的接收與解調

2.3 SSC

單邊帶調制SSB的調制模型,主要是通過?濾波法? 相移法(希爾伯特變換),得到已調信號的上邊帶或下邊帶信號,從而達到減小已調信號帶寬、進一步抑制噪聲功率的目的,其時域信道調制模型為:
在這里插入圖片描述

圖2.3-1 濾波法

在這里插入圖片描述

圖2.3-2 相移法

以下主要就第一種方法——濾波法,進行理論分析:

由上圖單邊帶信道的調制模型,可以得到單邊帶調制的公式為
s S S B ( t ) = A c m ( t ) c o s 2 π f c t ? h S S B ( t ) (2-8) s_{SSB}(t)=A_cm(t)cos2\pi f_ct*h_{SSB}(t)\tag{2-8} sSSB?(t)=Ac?m(t)cos2πfc?t?hSSB?(t)(2-8)
其中, h S S B ( t ) h_{SSB}(t) hSSB?(t)為上邊帶或下邊帶濾波器,進行傅里葉變換,可以得到
S S S B ( f ) = A c 2 [ M ( f ? f c ) + M ( f + f c ) ] H S S B ( f ) (2-9) S_{SSB}(f)=\frac{A_c}{2}[M(f-f_c)+M(f+f_c)]H_{SSB}(f)\tag{2-9} SSSB?(f)=2Ac??[M(f?fc?)+M(f+fc?)]HSSB?(f)(2-9)
因此得到頻域的濾波原理圖為:
在這里插入圖片描述

圖2.3-3 濾波法得到單邊帶原理

其中,(a)為下邊帶濾波,(b)為上邊帶濾波

3、抗噪聲性能理論分析

3.1 抗噪性能通用模型

在這里插入圖片描述

圖3.1-1 抗噪通用模型

在上圖中, m ( t ) m(t) m(t)是帶寬為 W W W,功率為 P m P_m Pm?的模擬基帶信號, s ( t ) s(t) s(t)是帶寬為 B B B,功率為 P R P_R PR?的已調信號, n ( t ) n(t) n(t)是功率密度譜為 N 0 2 \frac{N_0}{2} 2N0??,帶寬為 B T B_T BT?的加性高斯白噪聲,理想帶通濾波器的帶寬為B,濾波器的輸出信號為:
s n ( t ) = s ( t ) + n ( t ) (3-1) s_n(t)=s(t)+n(t)\tag{3-1} sn?(t)=s(t)+n(t)(3-1)
抗噪理論分析,主要針對已通過BPF的輸入信噪比 S N R i n SNR_{in} SNRin?、接識訓輸出信號的輸出信噪比 S N R o u t SNR_{out} SNRout?以及解調增益和系統增益進行衡量,
其中,我們將信噪比總體增益定義為:
G = S N R o u t S N R i n (3-2) G=\frac{SNR_{out}}{SNR_{in}}\tag{3-2} G=SNRin?SNRout??(3-2)
輸入信噪比與輸出信噪比分別定義為
S N R i n = P M N o B T (3-3) SNR_{in}=\frac{P_M}{N_oB_T}\tag{3-3} SNRin?=No?BT?PM??(3-3)
S N R o u t = k 2 m 2 ( t )  ̄ P n (3-4) SNR_{out}=\frac{k^2\overline{m^2(t)}}{P_n}\tag{3-4} SNRout?=Pn?k2m2(t)??(3-4)
由于載波函式 c ( t ) = A c c o s ( 2 π f c t ) c(t)=A_ccos(2\pi f_ct) c(t)=Ac?cos(2πfc?t)可能具有不同的幅值 A c A_c Ac?,因此式中定義 k k k反映不同調制方式對訊息信號的影響,


3.2 DSB-SC抗噪性能

在這里插入圖片描述

圖3.2-1 DSB-SC模型

對于已調的DSB信號 s ( t ) = A c m ( t ) c o s ( 2 π f c t ) s(t)=A_cm(t)cos(2\pi f_ct) s(t)=Ac?m(t)cos(2πfc?t),其信號的平均功率為
P D S B = 1 2 A c 2 m 2 ( t )  ̄ (3-5) P_{DSB}=\frac{1}{2}A^2_c\overline{m^2(t)}\tag{3-5} PDSB?=21?Ac2?m2(t)?(3-5)
其中,可另 P m = m 2 ( t )  ̄ P_m= \overline{m^2(t)} Pm?=m2(t)?,由此可以計算輸入信噪比
S N R i n = 1 2 A c 2 P m 2 N o B (3-6) SNR_{in}=\frac{\frac{1}{2}A^2_cP_m}{2N_oB}\tag{3-6} SNRin?=2No?B21?Ac2?Pm??(3-6)
其中可以得到輸入信號功率與輸入噪聲功率分別為
P i n = 1 2 A c 2 P m (3-7) P_{in}=\frac{1}{2}A^2_cP_m\tag{3-7} Pin?=21?Ac2?Pm?(3-7)
N i n = 2 N o B (3-8) N_{in}=2N_oB\tag{3-8} Nin?=2No?B(3-8)
因此根據接識訓的特點可以得到輸出信號功率與輸出噪聲功率分別為
P o u t = 1 2 P i n (3-9) P_{out}=\frac{1}{2}P_{in}\tag{3-9} Pout?=21?Pin?(3-9)
N o u t = 1 4 N i n (3-10) N_{out}=\frac{1}{4}N_{in}\tag{3-10} Nout?=41?Nin?(3-10)
因此輸出信噪比與輸入信噪比的關系為
S N R o u t = 2 ? S N R i n (3-11) SNR_{out}=2 \cdot SNR_{in}\tag{3-11} SNRout?=2?SNRin?(3-11)

3.3 常規AM抗噪性能

在這里插入圖片描述

圖3.3-1 常規調幅AM抗噪模型

對于已調的AM信號 s A M ( t ) = A c [ 1 + a ? m n ( t ) ] c o s ( 2 π f c t ) s_{AM}(t)=A_c[1+a\cdot m_n(t)]cos(2\pi f_ct) sAM?(t)=Ac?[1+a?mn?(t)]cos(2πfc?t),其信號的平均功率為
P A M = A c 2 [ 1 + m 2 ( t ) ] 2 c o s 2 2 π f c t  ̄ = 1 2 A c 2 + 1 2 A c 2 m 2 ( t )  ̄ + A c 2 m ( t )  ̄ (3-12) P_{AM}=\overline{A^2_c[1+m^2(t)]^2cos^22\pi f_ct}\\=\frac{1}{2}A^2_c+\frac{1}{2}A^2_c\overline{m^2(t)}+A^2_c\overline{m(t)}\tag{3-12} PAM?=Ac2?[1+m2(t)]2cos22πfc?t?=21?Ac2?+21?Ac2?m2(t)?+Ac2?m(t)?(3-12)
由于 m ( t ) m(t) m(t)為純交流信號,則 m ( t )  ̄ = 0 \overline{m(t)}=0 m(t)?=0,因此AM信號的功率為
P A M = P c + P m = 1 2 A c 2 + 1 2 A c 2 m 2 ( t )  ̄ (3-13) P_{AM}=P_c +P_m=\frac{1}{2}A^2_c+\frac{1}{2}A^2_c\overline{m^2(t)}\tag{3-13} PAM?=Pc?+Pm?=21?Ac2?+21?Ac2?m2(t)?(3-13)
由于AM與DSB在頻域具有同樣的帶寬,因此對于AM的輸入噪聲功率,可以將其等同于DSB的輸入噪聲功率
S i n = 2 N o B (3-14) S_{in}=2N_oB\tag{3-14} Sin?=2No?B(3-14)
由此得到輸入信噪比為
S N R i n = P A M S i n (3-15) SNR_{in}=\frac{P_{AM}}{S_{in}}\tag{3-15} SNRin?=Sin?PAM??(3-15)
因此,若是以相干解調的方式對AM信號進行解調,可以得到AM調制的輸出信噪比為
S N R o u t = 1 2 P A M 1 4 S i n = 2 ? S N R i n (3-16) SNR_{out}=\frac{\frac{1}{2}P_{AM}}{\frac{1}{4}S_{in}}=2 \cdot SNR_{in}\tag{3-16} SNRout?=41?Sin?21?PAM??=2?SNRin?(3-16)

3.4 SSC抗噪性能

在這里插入圖片描述

圖3.1-1 單邊帶SSC抗噪模型

對于單邊帶調制,其已調信號為
s S S B ( t ) = A c m ( t ) c o s 2 π f c t ± A c m ^ ( t ) s i n 2 π f c t (3-17) s_{SSB}(t)=A_cm(t)cos2\pi f_ct\pm A_c\widehat{m}(t)sin2\pi f_c t\tag{3-17} sSSB?(t)=Ac?m(t)cos2πfc?t±Ac?m (t)sin2πfc?t(3-17)
不同于DSB與AM調制,SSC的頻域帶寬只有DSB-SC的一半,因此通過帶通濾波器后,噪聲功率譜密度的帶寬也為DSB-SC的一半,可以得到
S N R i n = A c 2 m 2 ( t )  ̄ 4 N o B (3-18) SNR_{in}=\frac{A^2_c\overline{m^2(t)}}{4N_oB}\tag{3-18} SNRin?=4No?BAc2?m2(t)??(3-18)
通過BPF、解調與低通濾波后,得到輸出信號的信號功率與噪聲功率為
P o u t = P i n 4 = A c 2 m 2 ( t )  ̄ 4 (3-19) P_{out}=\frac{P_{in}}{4}=\frac{A^2_c\overline{m^2(t)}}{4}\tag{3-19} Pout?=4Pin??=4Ac2?m2(t)??(3-19)
S o u t = S i n 4 = N o B (3-20) S_{out}=\frac{S_{in}}{4}=N_oB\tag{3-20} Sout?=4Sin??=No?B(3-20)
因此
S N R o u t = A c 2 m 2 ( t )  ̄ 4 4 N o B 4 = S N R i n (3-21) SNR_{out}=\frac{\frac{A^2_c\overline{m^2(t)}}{4}}{\frac{4N_oB}{4}}=SNR_{in}\tag{3-21} SNRout?=44No?B?4Ac2?m2(t)???=SNRin?(3-21)

4、仿真實作與仿真結果

4.1 DSB-SC


4.1.1 仿真模型

在這里插入圖片描述

圖4.1-1 DSB-SC信道模型

4.1.2 MATLAB實作

%----------DSB調制與噪聲抑制-------------
%@Author:Fangy
%@Date:2020.11.6
%--------------------------------------

clear;close all;

%--------------序列定義---------------
T_start = 0;                %開始時間
T_stop = 1;                 %截止時間
fm = 10;                    %訊息信號頻率
fc = 100;                   %載波頻率
T = T_stop - T_start;       %仿真持續時間
T_sample = 1/1000;          %采樣間隔
f_sample = 1/T_sample;      %采樣速率
N_sample = T/T_sample;      %采樣點數
n = 0:N_sample;             %矩陣序列
%-------------------------------------

%調制
m_t = cos(2*pi*fm*n*T_sample);          %定義調制信號
s_t = m_t.*cos(2*pi*fc*n*T_sample);     %用載波對調制信號進行DSB雙邊帶調制

N0 = 4e-6;                              %噪聲功率譜密度的強度
n_t = wgn(1,length(n),N0/2);            %產生加性高斯白噪聲

SNR = 10;                                %信噪比SNR單位dB
sn_t = awgn(s_t,SNR,'measured');         %向s_t中加噪

%計算輸入信號功率、噪聲功率、信噪比(未經過BPF)
Pin(1,1) = sum(abs(s_t).^2)/length(s_t);         %輸入信號功率
Sin(1,1) = sum(abs(sn_t-s_t).^2)/length(sn_t);   %噪聲功率
SNR_in(1,1) = 10*log10(Pin(1,1)/Sin(1,1));       %信噪比

%-------------繪圖1:時域信號--------------
figure;
subplot(311);plot(n*T_sample,m_t);
xlabel("Time t");ylabel("Ampl |m(t)|");title("m(t)");
subplot(312);plot(n*T_sample,s_t);
xlabel("Time t");ylabel("Ampl |s(t)|");title("s(t)");
subplot(313);plot(n*T_sample,sn_t);
xlabel("Time t");ylabel("Ampl |s(t)+n(t)|");title("s(t)疊加高斯白噪聲");
%------------------------------------------

%傅里葉變換 頻域頻譜表達
f_res = f_sample/N_sample;  %頻率解析度
f_max = f_res*N_sample/2;   %最大頻率

m_f = abs(fft(m_t))/f_sample;                                         %m(t)傅里葉變換得到M(f)幅度譜并歸一化
% m_f_rearrange = [m_f(N_sample/2+1:N_sample-1),m_f(1:N_sample/2)];   %前后調轉幅度譜順序(原理實作)
m_f_rearrange = fftshift(m_f);                                        %前后調轉幅度譜順序(簡單呼叫)

s_f = abs(fft(s_t))/f_sample;       %s(t)傅里葉變換得到S(f)幅度譜并歸一化
s_f_rearrange = fftshift(s_f);      %前后調轉幅度譜順序(簡單呼叫)

sn_f = abs(fft(sn_t))/f_sample;     %sn(t)傅里葉變換得到SN(f)幅度譜并歸一化
sn_f_rearrange = fftshift(sn_f);    %前后調轉幅度譜順序(簡單呼叫)

%-------------繪圖2:頻域信號--------------
figure;
subplot(311);plot((-N_sample/2+1:N_sample/2-1)*f_res,m_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |M(f)|");title("M(f)");
subplot(312);plot((-N_sample/2+1:N_sample/2-1)*f_res,s_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |S(f)|");title("S(f)");
subplot(313);plot((-N_sample/2+1:N_sample/2-1)*f_res,sn_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |S(f)+N(f)|");title("S(f)加噪頻譜");
%------------------------------------------

%----------------帶通濾波器-----------------
%通過filterDesigner設計:
%ResponseType選Bandpass
%fs=1000;Fstop1=84;Fpass1=90;Fpass2=110;Fstop2=116;
%Design Method選擇FIR->Window
%點擊DesignFilter后匯出資料命名為Num_BPF
load Num_BPF_DSB;
%-------------------------------------------

%有噪信號通過BPF
sn_BPF_t = conv(sn_t,Num_BPF);              %時域卷積相當于頻域相乘
%---------------抵消fdatool產生的相移---------------
count = 0;
sn_BPF_t_rearrange = zeros(1,1001);
for i=length(sn_BPF_t)/2-500:1:length(sn_BPF_t)/2+500
    count = count + 1;
    sn_BPF_t_rearrange(1,count) = sn_BPF_t(1,i);
end
%--------------------------------------------------

n_BPF_t = s_t - sn_BPF_t_rearrange;         %通過BPF后剩下的噪聲

%計算輸入信號功率、噪聲功率、信噪比(已通過BPF)
Pin(2,1) = sum(abs(s_t).^2)/length(s_t);                %輸入信號功率
Sin(2,1) = sum(abs(n_BPF_t).^2)/length(n_BPF_t);        %噪聲功率
SNR_in(2,1) = 10*log10(Pin(2,1)/Sin(2,1));              %信噪比

%-------------繪圖3:通過帶通濾波器--------------
figure;
subplot(311);plot(n*T_sample,sn_BPF_t_rearrange);
xlabel("Time t");ylabel("Ampl |sn_{BPF}(t)|");title("sn(t)通過BPF");
subplot(312);plot(n*T_sample,s_t);
xlabel("Time t");ylabel("Ampl |s(t)|");title("無噪s(t)");
subplot(313);plot(n*T_sample,n_BPF_t);
xlabel("Time t");ylabel("Ampl |n_{BPF}(t)|");title("通過BPF后剩余的噪聲");
%---------------------------------------------

%解調——時域
sd_t = s_t .* cos(2*pi*fc*n*T_sample);                      %無噪解調
sd_n_t = sn_BPF_t_rearrange .* cos(2*pi*fc*n*T_sample);     %有噪解調

%解調——頻域
sd_f = abs(fft(sd_t))/f_sample;                             %無噪解調
sd_f_rearrange = fftshift(sd_f);                            %無噪解調
sd_n_f = abs(fft(sd_n_t))/f_sample;                         %有噪解調
sd_n_f_rearrange = fftshift(sd_n_f);                        %有噪解調

%通過低通濾波器(無噪)
%----------------低通濾波器-----------------
%通過filterDesigner設計:
%ResponseType選擇Lowpass
%Fs=1000;Fpass=10;Fstop=16;
%Design Method選擇FIR->Window
%點擊DesignFilter后匯出資料命名為Num_LPF
load Num_LPF_DSB
%-------------------------------------------
mo_t = conv(sd_t,Num_LPF);
%---------------抵消fdatool產生的相移---------------
count = 0;
mo_t_rearrange = zeros(1,1001);
for i=length(mo_t)/2-500:1:length(mo_t)/2+500
    count = count + 1;
    mo_t_rearrange(1,count) = mo_t(1,i);
end
%--------------------------------------------------

%通過低通濾波器(有噪)
mo_n_t = conv(sd_n_t,Num_LPF);
%---------------抵消fdatool產生的相移---------------
count = 0;
mo_n_t_rearrange = zeros(1,1001);
for i=length(mo_n_t)/2-500:1:length(mo_n_t)/2+500
    count = count + 1;
    mo_n_t_rearrange(1,count) = mo_n_t(1,i);
end
%--------------------------------------------------

%-------------繪圖4:解調-時域--------------
figure;
subplot(411);plot(n*T_sample,sd_t);
xlabel("Time t");ylabel("Ampl |s_{d}(t)|");title("解調s_{d}(t)未通過LPF(無噪)");
subplot(412);plot(n*T_sample,sd_n_t);
xlabel("Time t");ylabel("Ampl |sn_{d}(t)|");title("解調s_{d}(t)未通過LPF(有噪)");
subplot(413);plot(n*T_sample,mo_t_rearrange);
xlabel("Time t");ylabel("Ampl |m_{o}(t)|");title("通過LPF后輸出信號(無噪)");
subplot(414);plot(n*T_sample,mo_n_t_rearrange);
xlabel("Time t");ylabel("Ampl |m_{no}(t)|");title("通過LPF后輸出信號(有噪)");
%---------------------------------------------

%傅里葉變換頻域觀察輸出頻譜
mo_f = abs(fft(mo_t_rearrange))/f_sample;       %頻域解調(無噪)
mo_f_rearrange = fftshift(mo_f);                %頻域解調(無噪)
mo_n_f = abs(fft(mo_n_t_rearrange))/f_sample;   %頻域解調(有噪)
mo_n_f_rearrange = fftshift(mo_n_f);            %頻域解調(有噪)

%-------------繪圖5:解調-頻域--------------
figure;
subplot(411);plot((-N_sample/2+1:N_sample/2-1)*f_res,sd_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |s_{d}(f)|");title("解調s_{f}(t)未通過LPF(無噪)");
subplot(412);plot((-N_sample/2+1:N_sample/2-1)*f_res,sd_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |sn_{d}(f)|");title("解調s_{d}(t)未通過LPF(有噪)");
subplot(413);plot((-N_sample/2+1:N_sample/2-1)*f_res,mo_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |m_{o}(f)|");title("通過LPF輸出m_{o}(f)(無噪)");
subplot(414);plot((-N_sample/2+1:N_sample/2-1)*f_res,mo_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |m_{no}(f)|");title("通過LPF輸出m_{no}(f)(有噪)");
%---------------------------------------------

no_t = mo_t_rearrange-mo_n_t_rearrange;
%計算輸出信號功率、噪聲功率、信噪比(已通過LPF)
Pin(3,1) = sum(abs(mo_t_rearrange).^2)/length(mo_t_rearrange);          %輸出信號功率
Sin(3,1) = sum(abs(no_t).^2)/length(no_t);                              %噪聲功率
SNR_in(3,1) = 10*log10(Pin(3,1)/Sin(3,1));                              %信噪比

disp("輸入信噪比:"+SNR_in(2,1));
disp("輸出信噪比:"+SNR_in(3,1));

4.1.3 仿真結果

訊息信號,調制信號,加入噪聲信號的時域

圖4.1-2 訊息信號,調制信號,加入噪聲信號的時域

在這里插入圖片描述

圖4.1-3 訊息信號與調制后信號,加入噪聲信號的傅里葉變換

在這里插入圖片描述

圖4.1-4 有噪與無噪的DSB信號通過BPF、通過BPF后剩余噪聲

在這里插入圖片描述

圖4.1-5 無噪與有噪的解調信號、輸出信號(時域)

在這里插入圖片描述

圖4.1-6 無噪與有噪的解調信號、輸出信號(頻域)

4.1.4 仿真結果與理論結果對比

在這里插入圖片描述

圖4.1-7 DSB-SC理論結果與仿真結果對比


產生誤差的原因:
1、由MATLAB產生的加性高斯白噪聲并不完全符合隨機分布,因此雙邊功率譜密度不完全遵守幅值均為 N 0 / 2 N_0/2 N0?/2
2、信號通過濾波器時(如BPF、LPF),在MATLAB中用卷積抽樣函式得以實作,因此產生一定相移,即時通過將相位還原,濾波后的信號與原始信號在相位上仍然存在一定的誤差
3、仿真通過離散的抽樣點實作模擬信號的仿真,因此仿真信號并不是真正意義上的連續信號,因此產生誤差,若是提高時域的采樣速率,誤差會有一定程度的減小,但是對應的頻域采樣頻率增大,并不利于頻域分析,因此選擇一個合適的采樣頻率很重要,這個采樣頻率不能過大或過小,


4.2 AM


4.2.1 仿真模型

在這里插入圖片描述

圖4.2-1 常規AM抗噪信道模型

4.2.2 MATLAB實作

%----------AM調制與噪聲抑制-------------
%@Author:Fangy
%@Date:2020.11.7
%--------------------------------------

clear;close all;

%--------------序列定義---------------
T_start = 0;                %開始時間
T_stop = 1;                 %截止時間
fm = 10;                    %訊息信號頻率
fc = 100;                   %載波頻率
T = T_stop - T_start;       %仿真持續時間
T_sample = 1/1000;          %采樣間隔
f_sample = 1/T_sample;      %采樣速率
N_sample = T/T_sample;      %采樣點數
n = 0:N_sample;             %矩陣序列
%-------------------------------------

%調制
m_t = cos(2*pi*fm*n*T_sample);          %定義調制信號
a = 0.5;                                %調制系數
c_t = cos(2*pi*fc*n*T_sample);          %載波信號
Sam_t = (1+a*m_t).*c_t;                 %AM調制

SNR = 1;                                    %信噪比SNR單位dB
Sam_n_t = awgn(Sam_t,SNR,'measured');        %向s_t中加噪

%計算輸入信號功率、噪聲功率、信噪比(未經過BPF)
Pin(1,1) = sum(abs(Sam_t).^2)/length(Sam_t);                   %輸入信號功率
Sin(1,1) = sum(abs(Sam_n_t-Sam_t).^2)/length(Sam_n_t-Sam_t);   %噪聲功率
SNR_in(1,1) = 10*log10(Pin(1,1)/Sin(1,1));                     %信噪比

%-------------繪圖1:時域信號--------------
figure;
subplot(311);plot(n*T_sample,m_t);
xlabel("Time t");ylabel("Ampl |m(t)|");title("m(t)");
subplot(312);plot(n*T_sample,Sam_t);
xlabel("Time t");ylabel("Ampl |s_{AM}(t)|");title("AM調制信號s_{AM}(t)");
subplot(313);plot(n*T_sample,Sam_n_t);
xlabel("Time t");ylabel("Ampl |s_{AM}(t)+n(t)|");title("s_{AM}(t)疊加高斯白噪聲");
%------------------------------------------

%傅里葉變換 頻域頻譜表達
f_res = f_sample/N_sample;  %頻率解析度
f_max = f_res*N_sample/2;   %最大頻率

m_f = abs(fft(m_t))/f_sample;                                         %m(t)傅里葉變換得到M(f)幅度譜并歸一化
% m_f_rearrange = [m_f(N_sample/2+1:N_sample-1),m_f(1:N_sample/2)];   %前后調轉幅度譜順序(原理實作)
m_f_rearrange = fftshift(m_f);                                        %前后調轉幅度譜順序(簡單呼叫)

Sam_f = abs(fft(Sam_t))/f_sample;         %s(t)傅里葉變換得到S(f)幅度譜并歸一化
Sam_f_rearrange = fftshift(Sam_f);        %前后調轉幅度譜順序(簡單呼叫)

Sam_n_f = abs(fft(Sam_n_t))/f_sample;     %sn(t)傅里葉變換得到SN(f)幅度譜并歸一化
Sam_n_f_rearrange = fftshift(Sam_n_f);    %前后調轉幅度譜順序(簡單呼叫)

%-------------繪圖2:頻域信號--------------
figure;
subplot(311);plot((-N_sample/2+1:N_sample/2-1)*f_res,m_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |M(f)|");title("M(f)");
subplot(312);plot((-N_sample/2+1:N_sample/2-1)*f_res,Sam_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |S_{AM}(f)|");title("無噪S_{AM}(f)");
subplot(313);plot((-N_sample/2+1:N_sample/2-1)*f_res,Sam_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |SN_{AM}(f)|");title("有噪SN_{AM}(f)");
%-----------------------------------------

%----------------帶通濾波器-----------------
%通過filterDesigner設計:
%ResponseType選Bandpass
%fs=1000;Fstop1=84;Fpass1=90;Fpass2=110;Fstop2=116;
%Design Method選擇FIR->Window
%點擊DesignFilter后匯出資料命名為Num_BPF
load Num_BPF_DSB;
%-------------------------------------------

%有噪信號通過BPF
Sam_n_BPF_t = conv(Sam_n_t,Num_BPF);              %時域卷積相當于頻域相乘
%---------------抵消fdatool產生的相移---------------
count = 0;
Sam_n_BPF_t_rearrange = zeros(1,1001);
for i=length(Sam_n_BPF_t)/2-500:1:length(Sam_n_BPF_t)/2+500
    count = count + 1;
    Sam_n_BPF_t_rearrange(1,count) = Sam_n_BPF_t(1,i);
end
%--------------------------------------------------

n_BPF_t = Sam_t - Sam_n_BPF_t_rearrange;         %通過BPF后剩下的噪聲

%計算輸入信號功率、噪聲功率、信噪比(已通過BPF)
Pin(2,1) = sum(abs(Sam_t).^2)/length(Sam_t);            %輸入信號功率
Sin(2,1) = sum(abs(n_BPF_t).^2)/length(n_BPF_t);        %噪聲功率
SNR_in(2,1) = 10*log10(Pin(2,1)/Sin(2,1));              %信噪比

%-------------繪圖3:通過帶通濾波器--------------
figure;
subplot(311);plot(n*T_sample,Sam_n_BPF_t_rearrange);
xlabel("Time t");ylabel("Ampl |Sam_{n BPF}(t)|");title("有噪Sam_{n BPF}(t)通過BPF");
subplot(312);plot(n*T_sample,Sam_t);
xlabel("Time t");ylabel("Ampl |Sam(t)|");title("無噪Sam(t)");
subplot(313);plot(n*T_sample,n_BPF_t);
xlabel("Time t");ylabel("Ampl |n_{BPF}(t)|");title("通過BPF后剩余的噪聲");
%---------------------------------------------

%解調——時域
Sam_d_t = Sam_t .* cos(2*pi*fc*n*T_sample);                      %無噪解調
Sam_d_n_t = Sam_n_BPF_t_rearrange .* cos(2*pi*fc*n*T_sample);    %有噪解調

%解調——頻域
Sam_d_f = abs(fft(Sam_d_t))/f_sample;                             %無噪解調
Sam_d_f_rearrange = fftshift(Sam_d_f);                            %無噪解調
Sam_d_n_f = abs(fft(Sam_d_n_t))/f_sample;                         %有噪解調
Sam_d_n_f_rearrange = fftshift(Sam_d_n_f);                        %有噪解調

%通過低通濾波器(無噪)
%----------------低通濾波器-----------------
%通過filterDesigner設計:
%ResponseType選擇Lowpass
%Fs=1000;Fpass=10;Fstop=16;
%Design Method選擇FIR->Window
%點擊DesignFilter后匯出資料命名為Num_LPF
load Num_LPF_DSB
%-------------------------------------------
mo_t = conv(Sam_d_t,Num_LPF);
%---------------抵消fdatool產生的相移---------------
count = 0;
mo_t_rearrange = zeros(1,1001);
for i=length(mo_t)/2-500:1:length(mo_t)/2+500
    count = count + 1;
    mo_t_rearrange(1,count) = mo_t(1,i);
end
%--------------------------------------------------

%通過低通濾波器(有噪)
mo_n_t = conv(Sam_d_n_t,Num_LPF);
%---------------抵消fdatool產生的相移---------------
count = 0;
mo_n_t_rearrange = zeros(1,1001);
for i=length(mo_n_t)/2-500:1:length(mo_n_t)/2+500
    count = count + 1;
    mo_n_t_rearrange(1,count) = mo_n_t(1,i);
end
%--------------------------------------------------

%-------------繪圖4:解調-時域--------------
figure;
subplot(411);plot(n*T_sample,Sam_d_t);
xlabel("Time t");ylabel("Ampl |Sam_{d}(t)|");title("解調Sam_{d}(t)未通過LPF(無噪)");
subplot(412);plot(n*T_sample,Sam_d_n_t);
xlabel("Time t");ylabel("Ampl |Sam_{n d}(t)|");title("解調Sam_{n d}(t)未通過LPF(有噪)");
subplot(413);plot(n*T_sample,mo_t_rearrange);
xlabel("Time t");ylabel("Ampl |m_{o}(t)|");title("通過LPF后輸出信號(無噪)");
subplot(414);plot(n*T_sample,mo_n_t_rearrange);
xlabel("Time t");ylabel("Ampl |m_{n o}(t)|");title("通過LPF后輸出信號(有噪)");
%---------------------------------------------

%傅里葉變換頻域觀察輸出頻譜
mo_f = abs(fft(mo_t_rearrange))/f_sample;       %頻域解調(無噪)
mo_f_rearrange = fftshift(mo_f);                %頻域解調(無噪)
mo_n_f = abs(fft(mo_n_t_rearrange))/f_sample;   %頻域解調(有噪)
mo_n_f_rearrange = fftshift(mo_n_f);            %頻域解調(有噪)

%-------------繪圖5:解調-頻域--------------
figure;
subplot(411);plot((-N_sample/2+1:N_sample/2-1)*f_res,Sam_d_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |Sam_{d}(f)|");title("解調Sam_{d}(f)未通過LPF(無噪)");
subplot(412);plot((-N_sample/2+1:N_sample/2-1)*f_res,Sam_d_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |Sam_{n d}(f)|");title("解調Sam_{n d}(f)未通過LPF(有噪)");
subplot(413);plot((-N_sample/2+1:N_sample/2-1)*f_res,mo_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |m_{o}(f)|");title("通過LPF輸出m_{o}(f)(無噪)");
subplot(414);plot((-N_sample/2+1:N_sample/2-1)*f_res,mo_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |m_{no}(f)|");title("通過LPF輸出m_{no}(f)(有噪)");
%---------------------------------------------

no_t = mo_t_rearrange-mo_n_t_rearrange;
%計算輸出信號功率、噪聲功率、信噪比(已通過LPF)
Pin(3,1) = sum(abs(mo_t_rearrange).^2)/length(mo_t_rearrange);          %輸出信號功率
Sin(3,1) = sum(abs(no_t).^2)/length(no_t);                              %噪聲功率
SNR_in(3,1) = 10*log10(Pin(3,1)/Sin(3,1));                              %信噪比

disp("輸入信噪比:"+SNR_in(2,1));
disp("輸出信噪比:"+SNR_in(3,1));


4.2.3 仿真結果

在這里插入圖片描述

圖4.2-2 調制信號、AM調制信號、AM調制加噪信號(時域)

在這里插入圖片描述

圖4.2-3 調制信號、AM調制信號、AM調制加噪信號(頻域)

在這里插入圖片描述

圖4.2-4 通過BPF的有噪AM信號、無噪AM信號、剩余噪聲(時域)

在這里插入圖片描述

圖4.2-5 解調后有噪與無噪AM信號、通過LPF后有噪和無噪輸出信號

在這里插入圖片描述

圖4.2-5 解調后有噪與無噪AM信號、通過LPF后有噪和無噪輸出信號(頻域)

4.2.4 仿真結果與理論結果對比

在這里插入圖片描述

圖4.2-6 常規AM理論結果與仿真結果對比

產生誤差的原因:
1、由MATLAB產生的加性高斯白噪聲并不完全符合隨機分布,因此雙邊功率譜密度不完全遵守幅值均為 N 0 / 2 N_0/2 N0?/2
2、信號通過濾波器時(如BPF、LPF),在MATLAB中用卷積抽樣函式得以實作,因此產生一定相移,即時通過將相位還原,濾波后的信號與原始信號在相位上仍然存在一定的誤差
3、仿真通過離散的抽樣點實作模擬信號的仿真,因此仿真信號并不是真正意義上的連續信號,因此產生誤差,若是提高時域的采樣速率,誤差會有一定程度的減小,但是對應的頻域采樣頻率增大,并不利于頻域分析,因此選擇一個合適的采樣頻率很重要,這個采樣頻率不能過大或過小,

4.3 SSC


4.3.1 仿真模型

在這里插入圖片描述

圖4.3-1 單邊帶SSC信道模型

4.3.2 MATLAB實作

%----------SSC調制與噪聲抑制-------------
%@Author:Fangy
%@Date:2020.11.8
%--------------------------------------

clear;close all;

%--------------序列定義---------------
T_start = 0;                %開始時間
T_stop = 1;                 %截止時間
fm = 10;                    %訊息信號頻率
fc = 100;                   %載波頻率
T = T_stop - T_start;       %仿真持續時間
T_sample = 1/1000;          %采樣間隔
f_sample = 1/T_sample;      %采樣速率
N_sample = T/T_sample;      %采樣點數
n = 0:N_sample;             %矩陣序列
%-------------------------------------

%調制
m_t = cos(2*pi*fm*n*T_sample);          %定義調制信號
s_t = m_t.*cos(2*pi*fc*n*T_sample);     %用載波對調制信號進行DSB雙邊帶調制

SNR = 5;                               %加入噪聲的信噪比
sn_t = awgn(s_t,SNR);                  %向已調信號加入高斯白噪聲

%--------------希爾伯特濾波器--------------
%說明:此希爾伯特濾波器并不是嚴格定義的希爾伯特濾波器
%      而是用帶寬為fm的帶通濾波器做了同等效果處理
%通過filterDesigner設計:
%ResponseType選Bandpass
%fs=1000;Fstop1=84;Fpass1=90;Fpass2=100;Fstop2=106;
%Design Method選擇FIR->Window
%點擊DesignFilter后匯出資料命名為Num_BPF_SSC
load Num_BPF_SSC                        
%-----------------------------------------

ss_t = conv(Num_BPF_SSC,s_t);           %獲得下邊帶信號(無噪)
ss_n_t = conv(Num_BPF_SSC,sn_t);        %獲得下邊帶信號(有噪)
%---------------抵消fdatool產生的相移---------------
count = 0;
ss_n_t_rearrange = zeros(1,1001);
for i=length(ss_n_t)/2-500:1:length(ss_n_t)/2+500
    count = count + 1;
    ss_n_t_rearrange(1,count) = ss_n_t(1,i);
end
%--------------------------------------------------
ss_n_t = ss_n_t_rearrange;
%---------------抵消fdatool產生的相移---------------
count = 0;
ss_t_rearrange = zeros(1,1001);
for i=length(ss_t)/2-500:1:length(ss_t)/2+500
    count = count + 1;
    ss_t_rearrange(1,count) = ss_t(1,i);
end
%--------------------------------------------------
ss_t = ss_t_rearrange;

%計算輸入信號功率、噪聲功率、信噪比(未經過BPF)
Pin(1,1) = sum(abs(ss_t).^2)/length(ss_t);              %輸入信號功率
Sin(1,1) = sum(abs(ss_n_t-ss_t).^2)/length(ss_n_t);     %噪聲功率
SNR_in(1,1) = 10*log10(Pin(1,1)/Sin(1,1));              %信噪比

%-------------繪圖1:時域信號--------------
figure;
subplot(311);plot(n*T_sample,m_t);
xlabel("Time t");ylabel("Ampl |m(t)|");title("m(t)");
subplot(312);plot(n*T_sample,ss_t);
xlabel("Time t");ylabel("Ampl |ss(t)|");title("單邊帶(下邊帶)已調信號ss(t)");
subplot(313);plot(n*T_sample,ss_n_t);
xlabel("Time t");ylabel("Ampl |s(t)+n(t)|");title("ss(t)疊加高斯白噪聲");
%------------------------------------------

%傅里葉變換 頻域頻譜表達
f_res = f_sample/N_sample;  %頻率解析度
f_max = f_res*N_sample/2;   %最大頻率

m_f = abs(fft(m_t))/f_sample;                                         %m(t)傅里葉變換得到M(f)幅度譜并歸一化
% m_f_rearrange = [m_f(N_sample/2+1:N_sample-1),m_f(1:N_sample/2)];   %前后調轉幅度譜順序(原理實作)
m_f_rearrange = fftshift(m_f);                                        %前后調轉幅度譜順序(簡單呼叫)

ss_f = abs(fft(ss_t))/f_sample;       %s(t)傅里葉變換得到S(f)幅度譜并歸一化
ss_f_rearrange = fftshift(ss_f);      %前后調轉幅度譜順序(簡單呼叫)

ss_n_f = abs(fft(ss_n_t))/f_sample;     %sn(t)傅里葉變換得到SN(f)幅度譜并歸一化
ss_n_f_rearrange = fftshift(ss_n_f);    %前后調轉幅度譜順序(簡單呼叫)

%-------------繪圖2:頻域信號--------------
figure;
subplot(311);plot((-N_sample/2+1:N_sample/2-1)*f_res,m_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |M(f)|");title("M(f)");
subplot(312);plot((-N_sample/2+1:N_sample/2-1)*f_res,ss_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |S(f)|");title("S(f)");
subplot(313);plot((-N_sample/2+1:N_sample/2-1)*f_res,ss_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |S(f)+N(f)|");title("S(f)加噪頻譜");
%------------------------------------------

%解調——時域
ssd_t = ss_t .* cos(2*pi*fc*n*T_sample);                    %無噪解調
ssd_n_t = ss_n_t .* cos(2*pi*fc*n*T_sample);                %有噪解調

%解調——頻域
ssd_f = abs(fft(ssd_t))/f_sample;                            %無噪解調
ssd_f_rearrange = fftshift(ssd_f);                           %無噪解調
ssd_n_f = abs(fft(ssd_n_t))/f_sample;                        %有噪解調
ssd_n_f_rearrange = fftshift(ssd_n_f);                       %有噪解調

%通過低通濾波器(無噪)
%----------------低通濾波器-----------------
%通過filterDesigner設計:
%ResponseType選擇Lowpass
%Fs=1000;Fpass=10;Fstop=16;
%Design Method選擇FIR->Window
%點擊DesignFilter后匯出資料命名為Num_LPF
load Num_LPF_DSB
%-------------------------------------------
mo_t = conv(ssd_t,Num_LPF);
%---------------抵消fdatool產生的相移---------------
count = 0;
mo_t_rearrange = zeros(1,1001);
for i=length(mo_t)/2-500:1:length(mo_t)/2+500
    count = count + 1;
    mo_t_rearrange(1,count) = mo_t(1,i);
end
%--------------------------------------------------

%通過低通濾波器(有噪)
mo_n_t = conv(ssd_n_t,Num_LPF);
%---------------抵消fdatool產生的相移---------------
count = 0;
mo_n_t_rearrange = zeros(1,1001);
for i=length(mo_n_t)/2-500:1:length(mo_n_t)/2+500
    count = count + 1;
    mo_n_t_rearrange(1,count) = mo_n_t(1,i);
end
%--------------------------------------------------

%-------------繪圖3:解調-時域--------------
figure;
subplot(411);plot(n*T_sample,ssd_t);
xlabel("Time t");ylabel("Ampl |ss_{d}(t)|");title("解調ss_{d}(t)未通過LPF(無噪)");
subplot(412);plot(n*T_sample,ssd_n_t);
xlabel("Time t");ylabel("Ampl |ssn_{d}(t)|");title("解調ss_{d}(t)未通過LPF(有噪)");
subplot(413);plot(n*T_sample,mo_t_rearrange);
xlabel("Time t");ylabel("Ampl |m_{o}(t)|");title("通過LPF后輸出信號(無噪)");
subplot(414);plot(n*T_sample,mo_n_t_rearrange);
xlabel("Time t");ylabel("Ampl |m_{no}(t)|");title("通過LPF后輸出信號(有噪)");
%---------------------------------------------

%傅里葉變換頻域觀察輸出頻譜
mo_f = abs(fft(mo_t_rearrange))/f_sample;       %頻域解調(無噪)
mo_f_rearrange = fftshift(mo_f);                %頻域解調(無噪)
mo_n_f = abs(fft(mo_n_t_rearrange))/f_sample;   %頻域解調(有噪)
mo_n_f_rearrange = fftshift(mo_n_f);            %頻域解調(有噪)

%-------------繪圖4:解調-頻域--------------
figure;
subplot(411);plot((-N_sample/2+1:N_sample/2-1)*f_res,ssd_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |ss_{d}(f)|");title("解調ss_{f}(t)未通過LPF(無噪)");
subplot(412);plot((-N_sample/2+1:N_sample/2-1)*f_res,ssd_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |ssn_{d}(f)|");title("解調ss_{d}(t)未通過LPF(有噪)");
subplot(413);plot((-N_sample/2+1:N_sample/2-1)*f_res,mo_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |m_{o}(f)|");title("通過LPF輸出m_{o}(f)(無噪)");
subplot(414);plot((-N_sample/2+1:N_sample/2-1)*f_res,mo_n_f_rearrange(1:N_sample-1));
xlabel("frequency f");ylabel("Ampl |m_{no}(f)|");title("通過LPF輸出m_{no}(f)(有噪)");
%---------------------------------------------

no_t = mo_t_rearrange-mo_n_t_rearrange;
%計算輸出信號功率、噪聲功率、信噪比(已通過LPF)
Pin(3,1) = sum(abs(mo_t_rearrange).^2)/length(mo_t_rearrange);          %輸出信號功率
Sin(3,1) = sum(abs(no_t).^2)/length(no_t);                              %噪聲功率
SNR_in(3,1) = 10*log10(Pin(3,1)/Sin(3,1));                              %信噪比

disp("輸入信噪比:"+SNR_in(1,1));
disp("輸出信噪比:"+SNR_in(3,1));


4.3.3 仿真結果

在這里插入圖片描述

圖4.3-2 調制信號、SSC調制信號、SSC調制加噪信號(時域)

在這里插入圖片描述

圖4.3-3 調制信號、SSC調制信號、SSC調制加噪信號(頻域)

在這里插入圖片描述

圖4.3-4 解調后有噪與無噪SSC信號、通過LPF后有噪和無噪輸出信號

在這里插入圖片描述

圖4.3-5 解調后有噪與無噪SSC信號、通過LPF后有噪和無噪輸出信號(頻域)

4.3.4 仿真結果與理論結果對比

在這里插入圖片描述

圖4.3-6 SSC理論結果與仿真結果對比

產生誤差的原因:
1、由MATLAB產生的加性高斯白噪聲并不完全符合隨機分布,因此雙邊功率譜密度不完全遵守幅值均為 N 0 / 2 N_0/2 N0?/2
2、信號通過濾波器時(如BPF、LPF),在MATLAB中用卷積抽樣函式得以實作,因此產生一定相移,即時通過將相位還原,濾波后的信號與原始信號在相位上仍然存在一定的誤差
3、仿真通過離散的抽樣點實作模擬信號的仿真,因此仿真信號并不是真正意義上的連續信號,因此產生誤差,若是提高時域的采樣速率,誤差會有一定程度的減小,但是對應的頻域采樣頻率增大,并不利于頻域分析,因此選擇一個合適的采樣頻率很重要,這個采樣頻率不能過大或過小,

5、小結

本次仿真實驗對信號的調制解調、噪聲的抑制以及濾波器的設計三個方面給出理論設計以及仿真設計,
在對濾波器的設計中,采用MATLAB內置filterDesigner功能對帶通濾波器BPF與低通濾波器LPF做出設計,由于設計得到的濾波器的采樣點數與原始信號不一致,因此原始時域信號與濾波器函式進行卷積后的信號長度并不是完全遵守二倍信號函式長度,因此需要對濾波后的信后做出相位調整,從而在后續比對剩余噪聲時可以極大減少誤差
在噪聲的抑制方面,采用高斯加性白噪聲,由于MATLAB所產生的隨機噪聲信號的隨機性并不是完全符合隨機分布,因此在進行噪聲比對時會產生一定誤差,

6、參考文獻

[1] 現代通信原理6.1 常規調幅調制(AM)與抑制載波雙邊帶(DSB-SC)調制
[2] 仿真作業3:噪聲通過DSB-SC解調器
[3] 現代通信原理A.2:FIR低通濾波器設計
[4] 現代通信原理6.2:單邊帶(SSB)調制
[5] 現代通信原理仿真報告總結
[6] 模擬幅度調制相干解調系統抗噪聲性能仿真分析

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/212762.html

標籤:其他

上一篇:網路CISCO問題

下一篇:基于esp8266的微信airkiss配網及局域網發現設備

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more