基于MATLAB的仿真实现
模拟仿真AM、DSB-SC、SSB三种幅度调制器,掌握其调制原理和设计思想。分析高斯白噪声对模拟调制系统的影响
其时域表达式为: s A M ( t ) = A c [ 1 + m ( t ) ] c o s 2 π f c t ) (2.1.1) s_{AM}(t) =A_c[1+m(t)]cos2\pi f_ct \tag{2.1.1}) sAM(t)=Ac[1+m(t)]cos2πfct)(2.1.1)
其中 m ( t ) m(t) m(t)为基带信号, s A M ( t ) s_{AM}(t) sAM(t)为调制信号
其频域表达式为: S A M ( f ) = A c 2 [ δ ( f − f c ) + δ ( f + f c ) ] + A c 2 [ M ( f − f c ) + M ( f + f c ) ] (2.1.2) S_{AM} (f)=\frac{A_c}{2}[\delta(f-f_c)+\delta(f+f_c)]+\frac{A_c}{2}[M(f-f_c)+M(f+f_c)] \tag{2.1.2} SAM(f)=2Ac[δ(f−fc)+δ(f+fc)]+2Ac[M(f−fc)+M(f+fc)](2.1.2)
其模型图:
-其解调模型图:
其时域表达式: s D S B ( t ) = A c m ( t ) c o s 2 π f c t (2.2.1) s_{DSB}(t) =A_cm(t)cos2\pi f_ct \tag{2.2.1} sDSB(t)=Acm(t)cos2πfct(2.2.1)
其频域表达式: S D S B ( f ) = A c 2 [ M ( f − f c ) + M ( f + f c ) ] (2.2.2) S_{DSB} (f)=\frac{A_c}{2}[M(f-f_c)+M(f+f_c)] \tag{2.2.2} SDSB(f)=2Ac[M(f−fc)+M(f+fc)](2.2.2)
模型图:
由于DSB的频谱上边带和下边带是一样的,可以去掉其中一个边带,即为单边带调制,本文将以上边带调制为例。SSB信号有两种方法产生,滤波法和相移法。
H S S B ( f ) H_{SSB}(f) HSSB(f)为单边带滤波器的传输函数,
若它具有如下理想高通特性:
H U S S B = { 1 , ∣ f ∣ > f c 0 , ∣ f ∣ ≤ f c (2.3.1) H_{USSB}=\begin{cases} 1,&\text { $\vert f \vert\gt f_c$}\\ 0,&\text{ $\vert f \vert\le f_c$} \end{cases} \tag{2.3.1} HUSSB={1,0, ∣f∣>fc ∣f∣≤fc(2.3.1)
则可滤除下边带,保留上边带( USB);
对于AM信号一般采用相干解调的方式(如图3.1.1),利用相干解调器进行解调。
对于常规的AM信号,接收信号带宽 B A M = B T = 2 B ( B 为 m ( t ) 带 宽 ) (3.1.1) B_{AM}=B_T=2B(B为m(t)带宽) \tag{3.1.1} BAM=BT=2B(B为m(t)带宽)(3.1.1)。
其功率为 P m = A c 2 2 [ 1 + m 2 ( t ) ‾ ] (3.1.2) P_{m}=\frac{A_c^2}{2}[1+\overline {m^2(t)}] \tag{3.1.2} Pm=2Ac2[1+m2(t)](3.1.2)
可知 s ( t ) s(t) s(t)的时域表达式:
s ( t ) = A c [ m ( t ) + 1 ] c o s 2 π f c t (3.1.3) s(t)=A_c[m(t)+1]cos2\pi f_ct \tag{3.1.3} s(t)=Ac[m(t)+1]cos2πfct(3.1.3)
通过乘法器:
s d ( t ) = A c 2 [ m ( t ) + 1 ] [ 1 + c o s 4 π f c t ] (3.1.4) s_d(t)=\frac{A_c}{2}[m(t)+1][1+cos4\pi f_ct] \tag{3.1.4} sd(t)=2Ac[m(t)+1][1+cos4πfct](3.1.4)
输出:
s o ( t ) = A c 2 [ m ( t ) ] (3.1.5) s_o(t)=\frac{A_c}{2}[m(t) ] \tag{3.1.5} so(t)=2Ac[m(t)](3.1.5)
其白噪声 n ( t ) n(t) n(t)表达式为:
n ( t ) = n c ( t ) c o s 2 π f c t − n s ( t ) s i n 2 π f c t (3.1.6) n(t)=n_c(t)cos2\pi f_ct-n_s(t)sin2\pi f_ct \tag{3.1.6} n(t)=nc(t)cos2πfct−ns(t)sin2πfct(3.1.6)
通过乘法器后:
n d ( t ) = n c ( t ) c o s 2 2 π f c t − n s ( t ) s i n 2 π f c t c o s 2 π f c t = 1 2 n c ( t ) + 1 2 n c ( t ) c o s 4 π f c ( t ) − 1 2 n s ( t ) s i n 4 π f c t (3.1.7) n_d(t)=n_c(t)cos^2 2\pi f_ct-n_s(t)sin2\pi f_ctcos2\pi f_ct=\frac{1}{2}n_c(t)+\frac{1}{2}n_c(t)cos4\pi f_c(t)-\frac{1}{2}n_s(t)sin4\pi f_ct \tag{3.1.7} nd(t)=nc(t)cos22πfct−ns(t)sin2πfctcos2πfct=21nc(t)+21nc(t)cos4πfc(t)−21ns(t)sin4πfct(3.1.7)
输出:
n o ( t ) = 1 2 n c ( t ) (3.1.8) n_o(t)=\frac{1}{2}n_c(t) \tag{3.1.8} no(t)=21nc(t)(3.1.8)
由此我们可以计算输入输出信噪比(SNR)
Input SNR:
S i n = ⟨ s 2 ( t ) ⟩ = A c 2 2 [ 1 + P m ] (3.1.9) S_{in}=\langle s^2(t) \rangle=\frac{A_c^2}{2}[1+P_m] \tag{3.1.9} Sin=⟨s2(t)⟩=2Ac2[1+Pm](3.1.9)
N i n = E [ n 2 ( t ) ] = n 0 B A M = 2 n 0 B (3.1.10) N_{in}=E[n^2(t)]=n_0B_{AM}=2n_0B \tag{3.1.10} Nin=E[n2(t)]=n0BAM=2n0B(3.1.10)
( S / N ) i n = S i n N i n = A c 2 2 [ 1 + P m ] 2 n 0 B (3.1.11) (S/N)_{in}=\frac{S_{in}}{N_{in}}=\frac{\frac{A_c^2}{2}[1+P_m]}{2n_0B} \tag{3.1.11} (S/N)in=NinSin=2n0B2Ac2[1+Pm](3.1.11)
Output SNR:
S o u t = ⟨ s o 2 ( t ) ⟩ = A c 2 P m 4 (3.1.12) S_{out}=\langle s_o^2(t) \rangle=\frac{A_c^2P_m}{4} \tag{3.1.12} Sout=⟨so2(t)⟩=4Ac2Pm(3.1.12)
N o u t = E [ n o 2 ( t ) ] = 1 4 N i n (3.1.13) N_{out}=E[n_o^2(t)]=\frac{1}{4}N_{in} \tag{3.1.13} Nout=E[no2(t)]=41Nin(3.1.13)
( S / N ) o u t = S o u t N o u t = A c 2 P m 2 n 0 B (3.1.14) (S/N)_{out}=\frac{S_{out}}{N_{out}}=\frac{A_c^2P_m}{2n_0B} \tag{3.1.14} (S/N)out=NoutSout=2n0BAc2Pm(3.1.14)
所以 G A M = 2 P m 1 + P m (3.1.15) G_{AM}=\frac{2P_m}{1+P_m} \tag{3.1.15} GAM=1+Pm2Pm(3.1.15)
同理如AM相干解调系统,DSB-SC系统使用的也为相干解调器如上图3.2.1所示。
对于DSB-SC系统,接收信号带宽 B D S B = B T = 2 B (3.2.1) B_{DSB}=B_T=2B \tag{3.2.1} BDSB=BT=2B(3.2.1)。
其功率为: P m = A c 2 2 m 2 ( t ) ‾ (3.2.2) P_{m}=\frac{A_c^2}{2}\overline {m^2(t)} \tag{3.2.2} Pm=2Ac2m2(t)(3.2.2)
可知 s ( t ) s(t) s(t)的时域表达式:
s ( t ) = A c c o s 2 π f c t (3.2.3) s(t)=A_ccos2\pi f_ct \tag{3.2.3} s(t)=Accos2πfct(3.2.3)
通过乘法器:
s d ( t ) = A c m ( t ) c o s 2 2 π f c t = A c 2 m ( t ) [ 1 + c o s 4 π f c t ] (3.2.4) s_d(t)=A_cm(t)cos^22\pi f_ct=\frac{A_c}{2}m(t)[1+cos4\pi f_ct]\tag{3.2.4} sd(t)=Acm(t)cos22πfct=2Acm(t)[1+cos4πfct](3.2.4)
输出:
s o ( t ) = A c 2 [ m ( t ) ] (3.2.5) s_o(t)=\frac{A_c}{2}[m(t) ]\tag{3.2.5} so(t)=2Ac[m(t)](3.2.5)
其白噪声 n ( t ) n(t) n(t)表达式为:
n ( t ) = n c ( t ) c o s 2 π f c t − n s ( t ) s i n 2 π f c t (3.2.6) n(t)=n_c(t)cos2\pi f_ct-n_s(t)sin2\pi f_ct\tag{3.2.6} n(t)=nc(t)cos2πfct−ns(t)sin2πfct(3.2.6)
通过乘法器后:
n d ( t ) = n c ( t ) c o s 2 2 π f c t − n s ( t ) s i n 2 π f c t c o s 2 π f c t = 1 2 n c ( t ) + 1 2 n c ( t ) c o s 4 π f c ( t ) − 1 2 n s ( t ) s i n 4 π f c t (3.2.7) n_d(t)=n_c(t)cos^2 2\pi f_ct-n_s(t)sin2\pi f_ctcos2\pi f_ct=\frac{1}{2}n_c(t)+\frac{1}{2}n_c(t)cos4\pi f_c(t)-\frac{1}{2}n_s(t)sin4\pi f_ct\tag{3.2.7} nd(t)=nc(t)cos22πfct−ns(t)sin2πfctcos2πfct=21nc(t)+21nc(t)cos4πfc(t)−21ns(t)sin4πfct(3.2.7)
输出:
n o ( t ) = 1 2 n c ( t ) (3.2.8) n_o(t)=\frac{1}{2}n_c(t)\tag{3.2.8} no(t)=21nc(t)(3.2.8)
由此我们可以计算输入输出信噪比(SNR)
Input SNR:
S i n = ⟨ s 2 ( t ) ⟩ = A c 2 P m 2 (3.2.9) S_{in}=\langle s^2(t) \rangle=\frac{A_c^2P_m}{2}\tag{3.2.9} Sin=⟨s2(t)⟩=2Ac2Pm(3.2.9)
N i n = E [ n 2 ( t ) ] = n 0 B D S B = 2 n 0 B (3.2.10) N_{in}=E[n^2(t)]=n_0B_{DSB}=2n_0B\tag{3.2.10} Nin=E[n2(t)]=n0BDSB=2n0B(3.2.10)
( S / N ) i n = S i n N i n = 1 2 A c 2 P m 2 n 0 B (3.2.11) (S/N)_{in}=\frac{S_{in}}{N_{in}}=\frac{1}{2}\frac{{A_c^2}P_m}{2n_0B}\tag{3.2.11} (S/N)in=NinSin=212n0BAc2Pm(3.2.11)
Output SNR:
S o u t = E [ s o 2 ( t ) ] = A c 2 P m 4 = 1 2 S i n (3.2.12) S_{out}=E[s_o^2(t)]=\frac{A_c^2P_m}{4}=\frac{1}{2}S_{in}\tag{3.2.12} Sout=E[so2(t)]=4Ac2Pm=21Sin(3.2.12)
N o u t = E [ n o 2 ( t ) ] = 1 4 N i n (3.2.13) N_{out}=E[n_o^2(t)]=\frac{1}{4}N_{in}\tag{3.2.13} Nout=E[no2(t)]=41Nin(3.2.13)
( S / N ) o u t = S o u t N o u t = 2 S i n N i n = A c 2 P m 2 n 0 B (3.2.14) (S/N)_{out}=\frac{S_{out}}{N_{out}}=2\frac{S_{in}}{N_{in}}=\frac{A_c^2P_m}{2n_0B}\tag{3.2.14} (S/N)out=NoutSout=2NinSin=2n0BAc2Pm(3.2.14)
所以 G D S B = 2 (3.2.15) G_{DSB}=2\tag{3.2.15} GDSB=2(3.2.15)
同理,SSB系统使用的也为相干解调器如上图3.3.1所示。
对于SSB系统,SSB信号的频谱只有DSB的一半,所以 P m = P D S B 2 = A c 2 4 m 2 ( t ) ‾ (3.3.1) P_m=\frac{P_{DSB}}{2}=\frac{A_c^2}{4}\overline {m^2(t)}\tag{3.3.1} Pm=2PDSB=4Ac2m2(t)(3.3.1)
接收信号带宽 B S S B = B T = B (3.3.2) B_{SSB}=B_T=B\tag{3.3.2} BSSB=BT=B(3.3.2)
可知 s ( t ) s(t) s(t)的时域表达式:
s ( t ) = A c 2 m ( t ) c o s 2 π f c t ∓ A c 2 m ^ ( t ) s i n 2 π f c t (3.3.3) s(t)=\frac{A_c}{2}m(t)cos2\pi f_ct \mp \frac{A_c}{2}\hat m(t)sin2\pi f_ct\tag{3.3.3} s(t)=2Acm(t)cos2πfct∓2Acm^(t)sin2πfct(3.3.3)
通过乘法器:
s d ( t ) = A c 4 m ( t ) + A c 4 m ( t ) c o s 4 π f c t ∓ A c 4 m ^ ( t ) s i n 4 π f c t (3.3.4) s_d(t)=\frac{A_c}{4}m(t)+\frac{A_c}{4}m(t)cos4\pi f_ct \mp \frac{A_c}{4}\hat m(t)sin4\pi f_ct\tag{3.3.4} sd(t)=4Acm(t)+4Acm(t)cos4πfct∓4Acm^(t)sin4πfct(3.3.4)
输出:
s o ( t ) = A c 4 m ( t ) (3.3.5) s_o(t)=\frac{A_c}{4}m(t)\tag{3.3.5} so(t)=4Acm(t)(3.3.5)
其白噪声 n ( t ) n(t) n(t)表达式为:
n ( t ) = n c ( t ) c o s 2 π f c t − n s ( t ) s i n 2 π f c t (3.3.6) n(t)=n_c(t)cos2\pi f_ct-n_s(t)sin2\pi f_ct\tag{3.3.6} n(t)=nc(t)cos2πfct−ns(t)sin2πfct(3.3.6)
通过乘法器后:
n d ( t ) = n c ( t ) c o s 2 2 π f c t − n s ( t ) s i n 2 π f c t c o s 2 π f c t = 1 2 n c ( t ) + 1 2 n c ( t ) c o s 4 π f c ( t ) − 1 2 n s ( t ) s i n 4 π f c t (3.3.7) n_d(t)=n_c(t)cos^2 2\pi f_ct-n_s(t)sin2\pi f_ctcos2\pi f_ct=\frac{1}{2}n_c(t)+\frac{1}{2}n_c(t)cos4\pi f_c(t)-\frac{1}{2}n_s(t)sin4\pi f_ct\tag{3.3.7} nd(t)=nc(t)cos22πfct−ns(t)sin2πfctcos2πfct=21nc(t)+21nc(t)cos4πfc(t)−21ns(t)sin4πfct(3.3.7)
输出:
n o ( t ) = 1 2 n c ( t ) (3.3.8) n_o(t)=\frac{1}{2}n_c(t)\tag{3.3.8} no(t)=21nc(t)(3.3.8)
由此我们可以计算输入输出信噪比(SNR)
Input SNR:
S i n = ⟨ s 2 ( t ) ⟩ = A c 2 P m 4 (3.3.9) S_{in}=\langle s^2(t) \rangle=\frac{A_c^2P_m}{4}\tag{3.3.9} Sin=⟨s2(t)⟩=4Ac2Pm(3.3.9)
N i n = E [ n 2 ( t ) ] = n 0 B S S B = n 0 B (3.3.10) N_{in}=E[n^2(t)]=n_0B_{SSB}=n_0B\tag{3.3.10} Nin=E[n2(t)]=n0BSSB=n0B(3.3.10)
( S / N ) i n = S i n N i n = 1 4 A c 2 P m n 0 B (3.3.11) (S/N)_{in}=\frac{S_{in}}{N_{in}}=\frac{1}{4}\frac{{A_c^2}P_m}{n_0B}\tag{3.3.11} (S/N)in=NinSin=41n0BAc2Pm(3.3.11)
Output SNR:
S o u t = ⟨ s o 2 ( t ) ⟩ = ⟨ m 2 ( t ) ⟩ 16 = 1 4 S i n (3.3.12) S_{out}=\langle s_o^2(t) \rangle=\frac{\langle m^2(t) \rangle}{16}=\frac{1}{4}S_{in}\tag{3.3.12} Sout=⟨so2(t)⟩=16⟨m2(t)⟩=41Sin(3.3.12)
N o u t = E [ n o 2 ( t ) ] = 1 4 N i n (3.3.13) N_{out}=E[n_o^2(t)]=\frac{1}{4}N_{in}\tag{3.3.13} Nout=E[no2(t)]=41Nin(3.3.13)
( S / N ) o u t = S o u t N o u t = S i n N i n = 1 4 A c 2 P m n 0 B (3.3.14) (S/N)_{out}=\frac{S_{out}}{N_{out}}=\frac{S_{in}}{N_{in}}=\frac{1}{4}\frac{A_c^2P_m}{n_0B}\tag{3.3.14} (S/N)out=NoutSout=NinSin=41n0BAc2Pm(3.3.14)
所以 G S S B = 1 (3.3.15) G_{SSB}=1\tag{3.3.15} GSSB=1(3.3.15)
参数设置
%...........参数设置..............
close all,
clear
T_start=0;%开始时间
T_stop=1;%截止时间
T=T_stop-T_start;%仿真持续时间
T_sample=1/400;%采样间隔
f_sample=1/T_sample;%采样速
N_sample=T/T_sample;%采样点数
t=[0:T_sample:T];
snr=20; %dB表示的信噪比
snr_lin=10^(snr/10); %线性信噪比的值
df0=0.2;
消息信号载波信号和调制信号的时域表示
%--------------------
%信号参数设置
%--------------------
n=0:N_sample-1;
f_m=10;%基带信号频率
f_c=100;%载波信号频率
Ac=1;%载波信号幅度
%消息信号m(t)的时域表达
m=cos(2*pi*f_m*t); %消息信号m(t)
N1=length(m);
N2=f_sample/df0;
N=2^(nextpow2(max(N1, N2)));
df=f_sample/N;
f=linspace(-f_sample/2,f_sample/2-df,N);
%载波信号c(t)的时域表达
c=cos(2*pi*f_c*t);
%AM已调信号u(t)的时域表达
A0=1;
s_am=(A0+m).*c;
画出时域谱和频域
%画出消息信号、载波信号、调制信号的时域图和幅度谱
figure
subplot(3,2,1)
plot(t,m)
xlabel('t/s')
ylabel('m(t)')
title('消息信号m(t)时域图')
axis([0,0.5,-1.1,2.1])
subplot(3,2,2)
M=fftshift(fft(m,N)/f_sample);
plot(f,abs(M));
title('消息信号m(t频域波形'),xlabel('f'),ylabel('M(f)');
subplot(3,2,3)
plot(t,c)
xlabel('t/s')
ylabel('c(t)')
title('载波信号c(t)时域图')
subplot(3,2,4)
C=fftshift(fft(c,N)/f_sample);
plot(f,abs(C));
title('载波信号c(t)频域波形'),xlabel('f'),ylabel('C(f)');
subplot(3,2,5)
plot(t,s_am)
xlabel('t/s')
ylabel('s(t)')
title('调制信号s(t)时域图')
subplot(3,2,6)
S=fftshift(fft(s_am,N)/f_sample);
plot(f,abs(S));
title('调制信号s(t)频域波形'),xlabel('f'),ylabel('S(f)');
加噪声
%........... 第二部分: 加噪声 ...........
signal_power=(sum(s_am.^2))/length(s_am); %计算(已调)信号的功率
noise_power=signal_power/snr_lin; %计算噪声的功率,均值为0,所以对应噪声的方差
noise_std=sqrt(noise_power); %计算噪声的标准差
noise=noise_std*randn(1,length(s_am)); %得到噪声向量
r=s_am+noise; %接收端的接收信号,加入了噪声
%画出接收信号的时域图和幅度谱
figure
subplot(2,1,1)
plot(t,r)
xlabel('t/s')
ylabel('r(t)')
subplot(2,1,2)
R=fftshift(fft(r,N)/f_sample);
plot(f,abs(R));
xlabel('f/Hz')
ylabel('R(f)')
相干解调
y=r.*c;
s=s_am.*c; %与一个同载波同频同相的正弦信号相乘
; %与一个同载波同频同相的正弦信号相乘
%求截止频率为30Hz的低通滤波器的H(f)
fL=30; %%%%
H=zeros(1,N);
num1=round((f_sample/2-fL)/df)+1;
num2=round((f_sample/2+fL)/df)+1;
H(num1:num2)=ones(1,num2-num1+1);
%求y(t)经过理想低通的输出
S=fftshift(fft(s,N)/f_sample); %求s(t)的傅立叶变换
S=S.*H; %求s(t)过低通滤波器后的傅立叶变换
s=ifft(ifftshift(S)*f_sample);
Y=fftshift(fft(y,N)/f_sample); %求y(t)的傅立叶变换
Y=Y.*H; %求y(t)过低通滤波器后的傅立叶变换
y=ifft(ifftshift(Y)*f_sample); %求y(t)的时域表达
snr=SNR_singlech(y,s);
snr_1=SNR_singlech(r,s_am);
disp(snr/snr_1);
function snr=SNR_singlech(I,In)
% 计算信噪比函数
% I :original signal
% In:noisy signal(ie. original signal + noise signal)
snr=0;
Ps=sum(sum((I-mean(mean(I))).^2));
Pn=sum(sum((I-In).^2));
snr=(Ps/Pn);
end
同时经计算可知 G = 0.9983 G= 0.9983 G=0.9983
同理如AM调制
先参数设置
close all,clear
f_sample=400; %采样频率,由采样定理决定
t_sample=1/f_sample;%采样间隔
f_c=100;%载波频率
f_m=10;
T=0.5;
t=[0:t_sample:T]; %时间向量的表达,时间范围[0,t0]。
df0=0.2;%频率分辨率的下限为0.2
消息信号及调制过程
m=cos(2*pi*f_m*t);%消息信号m(t)赋初值
%........... 第一部分:调制 ...........
c=cos(2*pi*f_c*t); %正弦载波信号c(t)的时域表达
s_DSB=m.*c; %DSB已调信号u(t)的时域表达
%求出消息信号和已调信号的傅立叶变换
N1=length(m);
N2=f_sample/df0;
N=2^(nextpow2(max(N1, N2))); %求fft的点数N
df=f_sample/N; %最终的频率分辨率
f=linspace(-f_sample/2,f_sample/2-df,N);%频域轴的向量,0频点在中间
M=fftshift(fft(m,N)/f_sample); %求消息信号的傅立叶变换
C=fftshift(fft(c,N)/f_sample); %求载波信号的傅立叶变换
S=fftshift(fft(s_DSB,N)/f_sample); %求已调信号的傅立叶变换
%画出消息信号和已调信号的时域图和幅度谱
figure
subplot(3,2,1)
plot(t,m)
xlabel('t/s')
ylabel('m(t)')
title('消息信号m(t)时域图')
axis([0,0.5,-1.1,1.1])
subplot(3,2,3)
plot(t,c)
xlabel('t/s')
ylabel('c(t)')
title('载波信号c(t)时域图')
axis([0,0.5,-1.1,1.1])
subplot(3,2,5)
plot(t,s_DSB)
xlabel('t/s')
ylabel('s(t)')
title('调制信号s(t)时域图')
axis([0,0.5,-1.1,1.1])
subplot(3,2,2)
plot(f,abs(M))
xlabel('f/Hz')
ylabel('M(f)')
title('消息信号M(f)频域图')
subplot(3,2,4)
plot(f,abs(C))
xlabel('f/Hz')
ylabel('C(f)')
title('载波信号C(f)频域图')
subplot(3,2,6)
plot(f,abs(S))
xlabel('f/Hz')
ylabel('S(f)')
title('调制信号S(f)频域图')
加噪声
snr=15;
snr_lin=10^(snr/10); %换算成比值
signal_power=(sum(s_DSB.^2))/length(s_DSB); %%%%%abs计算(已调)信号的功率或者signal_power=(norm(s)^2)/length(s);
noise_power=signal_power/snr_lin; %计算噪声的功率
noise_std=sqrt(noise_power); %计算噪声的标准差
noise=noise_std*randn(1,length(s_DSB)); %%%%%%得到噪声向量
r=s_DSB+noise; %接收端的接收信号,加入了噪声
%画出接收信号的时域图和幅度谱
figure
subplot(2,1,1)
plot(t,r)
xlabel('t/s')
ylabel('r(t)')
title('加噪声后调制信号r(t)时域图')
axis([0,0.5,-1,1])
subplot(2,1,2)
R=fftshift(fft(r,N)/f_sample); %求消息信号的傅立叶变换
plot(f,abs(R))
xlabel('f/Hz')
ylabel('R(f)')
title('加噪声后调制信号R(f)频域图')
相干解调及信噪比计算
%........... 第三部分: 相干解调 ...........
y=r.*c; %与一个同载波同频同相的正弦信号相乘
s=s_DSB.*c;
%求截止频率为30Hz的低通滤波器的H(f)
fL=30;
H=zeros(1,N);
num1=round((f_sample/2-fL)/df)+1;
num2=round((f_sample/2+fL)/df)+1;
H(num1:num2)=ones(1,num2-num1+1);
%求y(t)经过理想低通的输出
Y=fftshift(fft(y,N)/f_sample); %求y(t)的傅立叶变换
Y=Y.*H; %求y(t)过低通滤波器后的傅立叶变换
y=ifft(ifftshift(Y)*f_sample); %求y(t)的时域表达
S=fftshift(fft(s,N)/f_sample); %求s(t)的傅立叶变换
S=S.*H; %求s(t)过低通滤波器后的傅立叶变换
s=ifft(ifftshift(S)*f_sample); %求s(t)的时域表达
snr=SNR_singlech(y,s);
snr_1=SNR_singlech(r,s_DSB);
disp(snr/snr_1);
function snr=SNR_singlech(I,In)
% 计算信噪比函数
% I :original signal
% In:noisy signal(ie. original signal + noise signal)
snr=0;
Ps=sum(sum((I-mean(mean(I))).^2));%signal power
Pn=sum(sum((I-In).^2)); %noise power
snr=(Ps/Pn);
end
同时可知 G = 1.8232 G=1.8232 G=1.8232
参数设置
%...........参数设置..............
close all,clear
f_sample=400; %采样频率,由采样定理决定
t_sample=1/f_sample; %采样间隔ts由fs决定
f_c=100; %载波频率
f_m=10;
snr=15; %dB表示的信噪比
snr_lin=10^(snr/10); %线性信噪比的值
T=0.5;
t=[0:t_sample:T]; %时间向量的表达,时间范围[0,t0]。
df0=0.2; %频率分辨率的下限为0.2
时域表达频域表达及调制
%...........消息信号m(t)的时域描述...........
m=cos(2*pi*f_m*t); %消息信号m(t)赋初值
%........... 第一部分:调制 ...........
c=cos(2*pi*f_c*t); %正弦载波信号c(t)的时域表达,分sin,cos
s=sin(2*pi*f_c*t);
m_hilbert=imag(hilbert(m)); %消息信号m(t)的希尔波特变换,产生m^(t)
u=0.5*m.*c+0.5*m_hilbert.*s; %%%%%%USSB已调信号u(t)的时域表达,上边带,下边带
%求出消息信号和已调信号的傅立叶变换
N1=length(m);
N2=f_sample/df0;
N=2^(nextpow2(max(N1, N2))); %求fft的点数N
df=f_sample/N; %最终的频率分辨率
f=linspace(-f_sample/2,f_sample/2-df,N); %频域轴的向量,0频点在中间
M=fftshift(fft(m,N)/f_sample); %求消息信号的傅立叶变换
C=fftshift(fft(c,N)/f_sample); %求消息信号的傅立叶变换
U=fftshift(fft(u,N)/f_sample); %求已调信号的傅立叶变换
画出消息信号和已调信号的时域图和幅度谱,画图部分基本同上一个
signal_power=(sum(u.^2))/length(u); %计算(已调)信号的功率
noise_power=signal_power/snr_lin; %计算噪声的功率
noise_std=sqrt(noise_power); %计算噪声的标准差
noise=noise_std*randn(1,length(u)); %得到噪声向量
r=u+noise; %接收端的接收信号,加入了噪声
%画出接收信号的时域图和幅度谱
figure
subplot(2,1,1)
plot(t,r)
xlabel('t/s')
ylabel('r(t)')
axis([0,0.5,-1,1])
subplot(2,1,2)
R=fftshift(fft(r,N)/f_sample); %求消息信号的傅立叶变换
plot(f,abs(R))
xlabel('f/Hz')
ylabel('R(f)')
相干解调及求信噪比
y=r.*c; %与一个同载波同频同相的正弦信号相乘
s=u.*c;
%求截止频率为30Hz的低通滤波器的H(f)
fL=30;
H=zeros(1,N);
num1=round((f_sample/2-fL)/df)+1;
num2=round((f_sample/2+fL)/df)+1;
H(num1:num2)=ones(1,num2-num1+1);
%求y(t)经过理想低通的输出
Y=fftshift(fft(y,N)/f_sample); %求y(t)的傅立叶变换
Y=Y.*H; %求y(t)过低通滤波器后的傅立叶变换
y=ifft(ifftshift(Y)*f_sample); %求y(t)的时域表达
S=fftshift(fft(s,N)/f_sample); %求s(t)的傅立叶变换
S=S.*H; %求s(t)过低通滤波器后的傅立叶变换
s=ifft(ifftshift(S)*f_sample); %求s(t)的时域表达
snr=SNR_singlech(y,s);
snr_1=SNR_singlech(r,u);
disp(snr/snr_1);
function snr=SNR_singlech(I,In)
% 计算信噪比函数
% I :original signal
% In:noisy signal(ie. original signal + noise signal)
snr=0;
Ps=sum(sum((I-mean(mean(I))).^2));%signal power
Pn=sum(sum((I-In).^2)); %noise power
snr=(Ps/Pn);
end
由此可知 G = 1.2131 G=1.2131 G=1.2131
有此我们可以得出:
通过这次仿真实验,我们对DSB-SC、SSB、AM调制系统有了更加深刻的理解,对matlab的操作也有了更多的掌握。由上述分析可得,DSB-SC调制解调系统的抗干扰能力比SSB更好,且是一个定值2,而AM调制系统的抗干扰能力受基带信号的功率影响,基带功率越大,抗干扰能力越强。
通过对比理论及仿真值,我们可以发现虽然SSB的功率谱相比DSB-SC利用率减少了,因此噪声的影响也减少了,所以最后的输出信噪比和DSB-SC的输出信噪比相当。
但在仿真过程中仍存在许多问题导致理论值与实际仿真值仍存在着较大误差。