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

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

2020-11-12 18:13:55 區塊鏈

文章目錄

  • 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/qukuanlian/212306.html

標籤:區塊鏈

上一篇:電腦、手機軟體推薦(多角度良心推薦)

下一篇:java利用ffmpeg合并多個視頻檔案

標籤雲
其他(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)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

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

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more