文章目錄
- 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的時域調制模型為
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?=10Hz、fc?=100Hz
已調信號
s
(
t
)
s(t)
s(t)通過疊加信道高斯白噪聲后通過帶通濾波器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.2 AM
常規調幅(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調制信號時域已調信號如下圖所示

為了不產生過調制現象,需要滿足
∣
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信號的頻譜如下圖所示:

與DSB-SC相同,AM調制得到的信號頻譜屬于雙邊帶信號,因此同樣可以通過一個帶通濾波器BPF濾除噪聲,以達到提高信噪比的目的,其時域信道模型如下圖所示: 
常規AM調制的最大優點是接識訓簡單,可以采用包絡檢波法,因此,其信道解調模型如下:

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


以下主要就第一種方法——濾波法,進行理論分析:
由上圖單邊帶信道的調制模型,可以得到單邊帶調制的公式為
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)
因此得到頻域的濾波原理圖為:

其中,(a)為下邊帶濾波,(b)為上邊帶濾波
3、抗噪聲性能理論分析
3.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抗噪性能

對于已調的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抗噪性能

對于已調的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抗噪性能

對于單邊帶調制,其已調信號為
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.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.4 仿真結果與理論結果對比

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

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.4 仿真結果與理論結果對比

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

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.4 仿真結果與理論結果對比

產生誤差的原因:
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問題
