1.引言
信号发送端产生高频载波信号,让高频载波的幅度、频率或相位随之调制信号变化,接收端接收后,从中将调制信号恢复出来,这就是基带信号通过调制转化为频带信号的过程。而在实际应用时,信号在传播过程中难免受到噪声的干扰。由于模拟信号的调制有不同的方式,因此对于不同的模拟幅度调制系统抗干扰性能的分析显得尤为重要。
本文将利用matlab仿真,对比理论推导,对不同的模拟调制系统的抗干扰性能做出分析和对比,其中包括AM调制、DSB-SC调制、SSB调制。噪声为加性高斯白噪声。
2.系统模型
本文分析模拟幅度调制系统的抗噪声性能,系统模型如图2.1所示。
在图2.1中,m(t)是带宽为W,功率为Pm 的模拟基带信号。s(t)是带宽为B,功率为PR的已调信号。本文考虑的已调信号包括DSB-SC、SSB、AM。
2.1 AM 常规调幅模型
2.1.1 调制原理
调制信号:m(t)
载波信号:Accos2
π
\pi
πfct
已调信号SAM(t)=Ac[1+m(t)]cos2
π
\pi
πfct
调幅指数
β
\beta
βAM=max|m(t)|
2.1.2 解调原理
利用二极管的单向导通性和电容的高频旁路和隔直特性可以实现解调。
2.1.3 频谱分析
时域:sAM(t)=AC[1+m(t)]cos2
π
\pi
πfct
频域:SAM(f)=2Ac[δ(f−fc)+δ(f+fc)]+2Ac[M(f−fc)+M(f+fc)].
2.2 DSB-SC 抑制双边带调幅模型
2.2.1 调制原理
调制信号:m(t)
载波信号:c(t)=Accos2
π
\pi
πfct
已调信号:sDSB(t)=Acm(t)cos2
π
\pi
πfct
2.2.2解调原理
如果仍然使用包络检波法解调,信号则会发生严重的失真。正确的解调方法是相干解调,具体方法为:在接收端提取同步信息,产生一个高频载波信号同频同相的本地载波,与接受信号相乘,再通过低通滤波,即可恢复出调制信号。原理框图如下图所示:
2.3 SSB 抑制单边带调幅模型
2.3.1 调制原理
2.3.2 解调原理
解调与DSB-SC调制一样,采用相干解调:在接收端提取同步信息,产生一个高频载波信号同频同相的本地载波,与接受信号相乘,再通过低通滤波,即可恢复出调制信号。
3. 抗干扰性能理论分析
3.1 AM 常规调幅系统抗干扰性能理论分析
信号:
s(t)=Ac[m(t)+1]cos2 π \pi πfct
sd(t)= 1 2 \frac{1}{2} 21Ac[m(t)+1][1+cos4 π \pi πfct]
so(t)= 1 2 \frac{1}{2} 21Acm(t)
噪声:
n(t)=nc(t)cos2 π \pi πfct-ns(t)sin2 π \pi πfct
nd(t)=nc(t)cos22
π
\pi
πfct-ns(t)sin2
π
\pi
πfctcos2
π
\pi
πfct
=
1
2
\frac{1}{2}
21nc(t)+
1
2
\frac{1}{2}
21nc(t)cos4
π
\pi
πfct-
1
4
\frac{1}{4}
41ns(t)sin4
π
\pi
πfct
no(t)= 1 2 \frac{1}{2} 21nc(t)
输入信噪比:
Sin=<s2(t)>= 1 2 \frac{1}{2} 21Ac2[1+Pm]
Nin=E[n2(t)]=n0BAM=2n0B
( S N \frac{S}{N} NS)in=Sin/Nin={ 1 2 \frac{1}{2} 21Ac2[1+Pm]}/{2n0B}
输出信噪比:
Sout=<so2(t)>= 1 4 \frac{1}{4} 41Ac2Pm
Nout=E[no2(t)]= 1 4 \frac{1}{4} 41E[nc2(t)]= 1 4 \frac{1}{4} 41Nin
(
S
N
\frac{S}{N}
NS)out=Sout/Nout={Ac2Pm}/{2n0B}
GAM=2PAM/(1+PAM)
3.2 DSB-SC 抑制双边带调幅系统抗干扰性能理论分析
信号:
s(t)=Acm(t)cos2 π \pi πfct
sd(t)= 1 2 \frac{1}{2} 21Acm(t)[1+cos4 π \pi πfct]
so(t)= 1 2 \frac{1}{2} 21Acm(t)
噪声:
n(t)=nc(t)cos2 π \pi πfct-ns(t)sin2 π \pi πfct
nd(t)=nc(t)cos22
π
\pi
πfct-ns(t)sin2
π
\pi
πfctcos2
π
\pi
πfct
=
1
2
\frac{1}{2}
21nc(t)+
1
2
\frac{1}{2}
21nc(t)cos4
π
\pi
πfct-
1
4
\frac{1}{4}
41ns(t)sin4
π
\pi
πfct
no(t)= 1 2 \frac{1}{2} 21nc(t)
输入信噪比:
Sin= 1 2 \frac{1}{2} 21Ac2Pm
Nin=E[n2(t)]=n0BDSB-SC=2n0B
( S N \frac{S}{N} NS)in=Sin/Nin={ 1 2 \frac{1}{2} 21Ac2Pm}/{2n0B}
输出信噪比:
Sout=E[so2(t)]= 1 4 \frac{1}{4} 41Ac2Pm= 1 2 \frac{1}{2} 21Sin
Nout=E[no2(t)]= 1 4 \frac{1}{4} 41E[nc2(t)]= 1 4 \frac{1}{4} 41Nin
(
S
N
\frac{S}{N}
NS)out=Sout/Nout=2(
S
N
\frac{S}{N}
NS)in={Ac2Pm}/{2n0B}
GDSB-SC=2
3.3 SSB 抑制单边带调幅系统抗干扰性能理论分析
信号:
s(t)=
1
2
\frac{1}{2}
21Acm(t)cos2
π
\pi
πfct+
1
2
\frac{1}{2}
21Ac
m
^
(
t
)
\widehat{m}(t)
m
(t)sin2
π
\pi
πfct
或 s(t)=
1
2
\frac{1}{2}
21Acm(t)cos2
π
\pi
πfct-
1
2
\frac{1}{2}
21Ac
m
^
(
t
)
\widehat{m}(t)
m
(t)sin2
π
\pi
πfct
sd(t)=
1
4
\frac{1}{4}
41Acm(t)+
1
4
\frac{1}{4}
41Acm(t)cos4
π
\pi
πfct+
1
4
\frac{1}{4}
41Ac
m
^
(
t
)
\widehat{m}(t)
m
(t)sin4
π
\pi
πfct
或 sd(t)=
1
4
\frac{1}{4}
41Acm(t)+
1
4
\frac{1}{4}
41Acm(t)cos4
π
\pi
πfc-
1
4
\frac{1}{4}
41Ac
m
^
(
t
)
\widehat{m}(t)
m
(t)sin4
π
\pi
πfct
so(t)= 1 4 \frac{1}{4} 41Acm(t)
噪声:
nc(t)cos2 π \pi πfct-ns(t)sin2 π \pi πfct
nd(t)=nc(t)cos22
π
\pi
πfct-ns(t)sin2
π
\pi
πfctcos2
π
\pi
πfct
=
1
2
\frac{1}{2}
21nc(t)+
1
2
\frac{1}{2}
21nc(t)cos4
π
\pi
πfct-
1
4
\frac{1}{4}
41ns(t)sin4
π
\pi
πfct
no(t)= 1 2 \frac{1}{2} 21nc(t)
输入信噪比:
Sin= 1 4 \frac{1}{4} 41Ac2Pm
Nin=E[n2(t)]=n0BSSB=n0B
( S N \frac{S}{N} NS)in=Sin/Nin={ 1 4 \frac{1}{4} 41Ac2Pm}/{n0B}
输出信噪比:
Sout=<so2(t)>= 1 4 \frac{1}{4} 41Sin
Nout=E[no2(t)]= 1 4 \frac{1}{4} 41E[nc2(t)]= 1 4 \frac{1}{4} 41Nin
(
S
N
\frac{S}{N}
NS)out=Sout/Nout=(
S
N
\frac{S}{N}
NS)in={Ac2Pm}/{4n0B}
GSSB=1
4. 仿真实现与仿真结果
4.1 AM 常规调幅系统抗干扰性能仿真
clear;
%------------------
%系统参数设置
%-----------------
T_start=0;%开始时间
T_stop=1;%截止时间
T=T_stop-T_start;%仿真持续时间
T_sample=0.0001;%采样间隔
f_sample=1/T_sample; % 采样速率
N_sample=T/T_sample;% 采样点数
%-----------------
%信号参数设置
%-----------------
fm=10;
fc=100;
n=0:N_sample;
m=cos(2.*pi.*fm.*n.*T_sample);%输入信号m(t)
c=cos(2.*pi.*fc.*n.*T_sample);%载波信号c(t)
s=(m+1).*c;%调制后的信号sd=s.*c;%相干解调
%低通滤波器
h=2*fm*sinc(2*fm*n*T_sample);
fvtool(h,1);
%-----------------
%频谱特性
%-----------------
f_res=f_sample/N_sample;%频率分辨率
f_max=f_res*N_sample/2;%最大频率
%m(t)的傅里叶变换
M=abs(fft(m));
m_rearrange=[M(N_sample/2+1:N_sample-1),M(1:N_sample/2)];
%s(t)的傅里叶变换
S=abs(fft(s));
s_rearrange=[S(N_sample/2+1:N_sample-1),S(1:N_sample/2)];
%sd(t)的傅里叶变换
Sd=abs(fft(sd));
sd_rearrange=[Sd(N_sample/2+1:N_sample-1),Sd(1:N_sample/2)];
%h(t)的傅里叶变换
H=abs(fft(h));
h_rearrange=[H(N_sample/2+1:N_sample-1),H(1:N_sample/2)];
So=H.*Sd;%通过低通滤波器后得到的解调信号
so=ifft(So);
%so(t)的傅里叶变换
So=abs(fft(so));
so_rearrange=[So(N_sample/2+1:N_sample-1),So(1:N_sample/2)];
%-----------------
%作图
%-----------------
figure(2);
subplot(4,2,1);
plot(n*T_sample,m);
title("m(t)时域波形");
subplot(4,2,2);
plot((-N_sample/2+1:N_sample/2-1)*f_res,m_rearrange(1:N_sample-1));
title("M(f)频谱图");
subplot(4,2,3);
plot(n*T_sample,s);
title("s(t)时域波形");
subplot(4,2,4);
plot((-N_sample/2+1:N_sample/2-1)*f_res,s_rearrange(1:N_sample-1));
title("S(f)频谱图");
subplot(4,2,5);
plot(n*T_sample,sd);
title("sd(t)时域波形");
subplot(4,2,6);
plot((-N_sample/2+1:N_sample/2-1)*f_res,sd_rearrange(1:N_sample-1));
title("Sd(f)频谱图");
subplot(4,2,7);
plot(n*T_sample,so);
title("so(t)时域波形");
subplot(4,2,8);
plot((-N_sample/2+1:N_sample/2-1)*f_res,so_rearrange(1:N_sample-1));
title("So(f)频谱图");
figure(3);
subplot(211);
plot(n*T_sample,m);
title("基带信号波形");
subplot(212);
plot(n*T_sample,so);
title("解调信号波形");
figure(4);
subplot(211);
plot((-N_sample/2+1:N_sample/2-1)*f_res,m_rearrange(1:N_sample-1));
title("基带信号频谱图");
subplot(212);
plot((-N_sample/2+1:N_sample/2-1)*f_res,so_rearrange(1:N_sample-1));
title("解调信号频谱图");
仿真结果:
代码更新:(加入噪声)
%...........参数设置..............
echo off
close all,clear
fs=100; %采样频率,由采样定理决定
ts=1/fs; %采样间隔ts由fs决定
fc=50; %载波频率
snr=10; %dB表示的信噪比
snr_lin=10^(snr/10); %线性信噪比的值
t0=0.5;
t=[0:ts:t0]; %时间向量的表达,时间范围[0,t0]
df0=0.2; %频率分辨率的下限为0.2
fm=5;
m=cos(2*pi*fm*t);
%调制
%正弦载波信号c(t)的时域表达
c=cos(2*pi*fc*t);
%DSB已调信号u(t)的时域表达
A0=1;
s=(A0+m).*c;
%求信号和已调信号的傅立叶变换
N1=length(m);
N2=fs/df0;
N=2^(nextpow2(max(N1, N2))); %求fft的点数N
df=fs/N; %最终的频率分辨率
f=linspace(-fs/2,fs/2-df,N); %频域轴的向量,0频点在中间
M=fftshift(fft(m,N)/fs); %求消息信号的傅立叶变换
S=fftshift(fft(s,N)/fs); %求已调信号的傅立叶变换
%信号和已调信号的时域图和幅度谱
figure
subplot(3,2,1)
plot(t,m)
xlabel('t/s')
ylabel('m(t)')
title('基带调频信号波形');
axis([0,0.5,-1.1,2.1])
subplot(3,2,3)
plot(t,s)
xlabel('t/s')
ylabel('s(t)')
title('未加噪声时已调信号波形');
axis([0,0.5,-6,6]);
subplot(3,2,2)
plot(f,abs(M))
xlabel('f/Hz')
ylabel('M(f)')
title('基带调频信号频谱');
subplot(3,2,4)
plot(f,abs(S))
xlabel('f/Hz')
ylabel('S(f)')
title('未加噪声时已调信号频谱');
%加入噪声
signal_power=(sum(s.^2))/length(s) %计算(已调)信号的功率
noise_power=signal_power/snr_lin %计算噪声的功率,均值为0,所以对应噪声的方差
noise_std=sqrt(noise_power); %计算噪声的标准差
noise=noise_std*randn(1,length(s)); %得到噪声向量
r=s+noise; %接收端的接收信号,加入了噪声
%接收信号的时域图和幅度谱
subplot(3,2,5)
plot(t,r)
xlabel('t/s')
ylabel('r(t)')
title('加噪声后已调信号波形');
axis([0,0.5,-6,6])
subplot(3,2,6)
R=fftshift(fft(r,N)/fs); %求消息信号的傅立叶变换
plot(f,abs(R))
xlabel('f/Hz')
ylabel('R(f)')
title('加噪声后已调信号频谱');
%相干解调
y=r.*c; %与一个同载波同频同相的正弦信号相乘
y=y-A0/2;
%截止频率为30Hz的低通滤波器的H(f)
fL=30;
H=zeros(1,N);
num1=round((fs/2-fL)/df)+1;
num2=round((fs/2+fL)/df)+1;
H(num1:num2)=ones(1,num2-num1+1);
%y(t)经过理想低通的输出
Y=fftshift(fft(y,N)/fs); %求y(t)的傅立叶变换
Y=Y.*H; %求y(t)过低通滤波器后的傅立叶变换
y=ifft(ifftshift(Y)*fs); %求y(t)的时域表达
%最后解调信号的时域图和幅度谱
figure
subplot(2,1,1)
plot(t,real(y(1:length(t)))) %舍弃很小的虚部
xlabel('t/s')
ylabel('y(t)')
title('加噪声后解调信号波形');
subplot(2,1,2)
plot(f,abs(Y))
xlabel('f/Hz')
ylabel('Y(f)')
title('加噪声后解调信号频谱');
y1=s.*c; %与一个同载波同频同相的正弦信号相乘
y1=y1-A0/2;
%y(t)经过理想低通的输出
Y1=fftshift(fft(y1,N)/fs); %求y(t)的傅立叶变换
Y1=Y1.*H; %求y(t)过低通滤波器后的傅立叶变换
y1=ifft(ifftshift(Y1)*fs); %求y(t)的时域表达
%最后解调信号的时域图和幅度谱
figure
subplot(2,1,1)
plot(t,real(y1(1:length(t)))) %舍弃很小的虚部
xlabel('t/s')
ylabel('y1(t)')
title('未加噪声时解调信号波形');
subplot(2,1,2)
plot(f,abs(Y1))
xlabel('f/Hz')
ylabel('Y1(f)')
title('未加噪声时解调信号频谱');
so_power=(sum(y1.^2))/length(y1)
no_power=(sum((y-y1).^2))/length(y-y1)
SNRi=snr_lin
SNRo=so_power/no_power
G=SNRo/SNRi
仿真结果:
signal_power = 1.5098
noise_power = 0.1510
so_power = 0.0751
no_power = 0.0142
SNRi =10
SNRo =5.3078
G = 0.5308
4.2 DSB-SC 抑制双边带调幅系统抗干扰性能仿真
Matlab代码如下:
clear;
%------------------
%系统参数设置
%-----------------
T_start=0;%开始时间
T_stop=1;%截止时间
T=T_stop-T_start;%仿真持续时间
T_sample=0.0001;%采样间隔
f_sample=1/T_sample; % 采样速率
N_sample=T/T_sample;% 采样点数
%-----------------
%信号参数设置
%-----------------
fm=10;
fc=100;
n=0:N_sample;
m=cos(2.*pi.*fm.*n.*T_sample);%输入信号m(t)
c=cos(2.*pi.*fc.*n.*T_sample);%载波信号c(t)
s=m.*c;%调制后的信号
sd=s.*c;%相干解调
%低通滤波器
h=2*fm*sinc(2*fm*n*T_sample);
fvtool(h,1);
%-----------------
%频谱特性
%-----------------
f_res=f_sample/N_sample;%频率分辨率
f_max=f_res*N_sample/2;%最大频率
%m(t)的傅里叶变换
M=abs(fft(m));
m_rearrange=[M(N_sample/2+1:N_sample-1),M(1:N_sample/2)];
%s(t)的傅里叶变换
S=abs(fft(s));
s_rearrange=[S(N_sample/2+1:N_sample-1),S(1:N_sample/2)];
%sd(t)的傅里叶变换
Sd=abs(fft(sd));
sd_rearrange=[Sd(N_sample/2+1:N_sample-1),Sd(1:N_sample/2)];
%h(t)的傅里叶变换
H=abs(fft(h));
h_rearrange=[H(N_sample/2+1:N_sample-1),H(1:N_sample/2)];
So=H.*Sd;%通过低通滤波器后得到的解调信号
so=ifft(So);
%so(t)的傅里叶变换
So=abs(fft(so));
so_rearrange=[So(N_sample/2+1:N_sample-1),So(1:N_sample/2)];
%-----------------
%作图
%-----------------
figure(2);
subplot(4,2,1);
plot(n*T_sample,m);
title("m(t)时域波形");
subplot(4,2,2);
plot((-N_sample/2+1:N_sample/2-1)*f_res,m_rearrange(1:N_sample-1));
title("M(f)频谱图");
subplot(4,2,3);
plot(n*T_sample,s);
title("s(t)时域波形");
subplot(4,2,4);
plot((-N_sample/2+1:N_sample/2-1)*f_res,s_rearrange(1:N_sample-1));
title("S(f)频谱图");
subplot(4,2,5);
plot(n*T_sample,sd);
title("sd(t)时域波形");
subplot(4,2,6);
plot((-N_sample/2+1:N_sample/2-1)*f_res,sd_rearrange(1:N_sample-1));
title("Sd(f)频谱图");
subplot(4,2,7);
plot(n*T_sample,so);
title("so(t)时域波形");
subplot(4,2,8);
plot((-N_sample/2+1:N_sample/2-1)*f_res,so_rearrange(1:N_sample-1));
title("So(f)频谱图");
figure(3);
subplot(211);
plot(n*T_sample,m);
title("基带信号波形");
subplot(212);
plot(n*T_sample,so);
title("解调信号波形");
figure(4);
subplot(211);
plot((-N_sample/2+1:N_sample/2-1)*f_res,m_rearrange(1:N_sample-1));
title("基带信号频谱图");
subplot(212);
plot((-N_sample/2+1:N_sample/2-1)*f_res,so_rearrange(1:N_sample-1));
title("解调信号频谱图");
仿真结果:
代码更新:(加入噪声)
close all,clear
echo off
fs=200; %%%%%%%采样频率,由采样定理决定
ts=1/fs; %采样间隔ts由fs决定
fc=50; %载波频率
fm=5;
t0=0.5;
t=[0:ts:t0]; %时间向量的表达,时间范围[0,t0]。
df0=0.2; %频率分辨率的下限为0.2
m=cos(2*pi*fm*t); %消息信号m(t)赋初值
c=cos(2*pi*fc*t); %正弦载波信号c(t)的时域表达
s=m.*c; %DSB已调信号s(t)的时域表达
N1=length(m);
N2=fs/df0;
N=2^(nextpow2(max(N1, N2))); %求fft的点数N
df=fs/N; %最终的频率分辨率
f=linspace(-fs/2,fs/2-df,N); %频域轴的向量,0频点在中间
M=fftshift(fft(m,N)/fs); %求消息信号的傅立叶变换
S=fftshift(fft(s,N)/fs); %求已调信号的傅立叶变换
figure
subplot(3,2,1)
plot(t,m)
xlabel('t/s')
ylabel('m(t)')
title('基带调频信号波形');
axis([0,0.5,-1.1,1.1])
subplot(3,2,3)
plot(t,s)
xlabel('t/s')
ylabel('s(t)')
title('未加噪声时已调信号波形');
axis([0,0.5,-6,6]);
subplot(3,2,2)
plot(f,abs(M))
xlabel('f/Hz')
ylabel('M(f)')
title('基带调频信号频谱');
subplot(3,2,4)
plot(f,abs(S))
xlabel('f/Hz')
ylabel('S(f)')
title('未加噪声时已调信号频谱');
snr=15;
snr_lin=10^(snr/10); %换算成比值
signal_power=(sum(s.^2))/length(s); %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)); %得到噪声向量
r=s+noise; %接收端的接收信号,加入了噪声
subplot(3,2,5)
plot(t,r)
xlabel('t/s')
ylabel('r(t)')
title('加噪声后已调信号波形');
axis([0,0.5,-1,1])
subplot(3,2,6)
R=fftshift(fft(r,N)/fs); %求消息信号的傅立叶变换
plot(f,abs(R))
xlabel('f/Hz')
ylabel('R(f)')
title('加噪声后已调信号频谱');
y=r.*c; %与一个同载波同频同相的正弦信号相乘
fL=30;
H=zeros(1,N);
num1=round((fs/2-fL)/df)+1;
num2=round((fs/2+fL)/df)+1;
H(num1:num2)=ones(1,num2-num1+1);
Y=fftshift(fft(y,N)/fs); %求y(t)的傅立叶变换
Y=Y.*H; %求y(t)过低通滤波器后的傅立叶变换
y=ifft(ifftshift(Y)*fs); %求y(t)的时域表达
figure
subplot(2,1,1)
plot(t,real(y(1:length(t)))) %舍弃很小的虚部
xlabel('t/s')
ylabel('y(t)')
title('加噪声后解调信号波形');
subplot(2,1,2)
plot(f,abs(Y))
xlabel('f/Hz')
ylabel('Y(f)')
title('加噪声后解调信号频谱');
y1=s.*c; %与一个同载波同频同相的正弦信号相乘
Y1=fftshift(fft(y1,N)/fs); %求y(t)的傅立叶变换
Y1=Y1.*H; %求y(t)过低通滤波器后的傅立叶变换
y1=ifft(ifftshift(Y1)*fs); %求y(t)的时域表达
figure
subplot(2,1,1)
plot(t,real(y1(1:length(t)))) %%%%%%舍弃很小的虚部
xlabel('t/s')
ylabel('y1(t)')
title('未加噪声时解调信号波形');
subplot(2,1,2)
plot(f,abs(Y1))
xlabel('f/Hz')
ylabel('Y1(f)')
title('未加噪声时解调信号频谱');
so_power=(sum(y1.^2))/length(y1);
no_power=(sum((y-y1).^2))/length(y-y1);
SNRi=snr_lin
SNRo=so_power/no_power
G=SNRo/SNRi
仿真结果:
SNRi =31.6228
SNRo =126.2243
G =3.9916
4.3 SSB 抑制单边带调幅系统抗干扰性能仿真
Matlab代码如下:
clear;
%------------------
%系统参数设置
%-----------------
T_start=0;%开始时间
T_stop=1;%截止时间
T=T_stop-T_start;%仿真持续时间
T_sample=0.001;%采样间隔
f_sample=1/T_sample;%采样速率
N_sample=T/T_sample;%采样点数
%-----------------
%信号参数设置
%-----------------
fm=10;fc=100;n=0:N_sample;
m=cos(2.*pi.*fm.*n.*T_sample);%输入信号m(t)
c=cos(2.*pi.*fc.*n.*T_sample);%载波信号c(t)
s=m.*c;
%低通滤波器
h=2*fm*sinc(fm*n*T_sample);fvtool(h,1);
%h(t)的傅里叶变换
H=abs(fft(h));h_rearrange=[H(N_sample/2+1:N_sample-1),H(1:N_sample/2)];
%s(t)的傅里叶变换
S=abs(fft(s));s_rearrange=[S(N_sample/2+1:N_sample-1),S(1:N_sample/2)];
S=H.*S;%通过低通滤波器得到下边带调制信号
s=ifft(S);so=s.*c;
%so(t)的傅里叶变换
So=abs(fft(so));so_rearrange=[So(N_sample/2+1:N_sample-1),So(1:N_sample/2)];So=H.*So;
%解调
so=ifft(So);
%so(t)的傅里叶变换
So=abs(fft(so));so_rearrange=[So(N_sample/2+1:N_sample-1),So(1:N_sample/2)];
%-----------------
%频谱特性
%-----------------
f_res=f_sample/N_sample;%频率分辨率
f_max=f_res*N_sample/2;%最大频率
%m(t)的傅里叶变换
M=abs(fft(m));m_rearrange=[M(N_sample/2+1:N_sample-1),M(1:N_sample/2)];
%-----------------
%作图
%-----------------
figure(2);
subplot(3,2,1);plot(n*T_sample,m);title("m(t)时域波形");
subplot(3,2,2);plot((-N_sample/2+1:N_sample/2-1)*f_res,m_rearrange(1:N_sample-1));title("M(f)频谱图");
subplot(3,2,3);plot(n*T_sample,s);title("s(t)时域波形");
subplot(3,2,4);plot((-N_sample/2+1:N_sample/2-1)*f_res,s_rearrange(1:N_sample-1))title("S(f)频谱图");
subplot(3,2,5);plot(n*T_sample,so);title("so(t)时域波形");
subplot(3,2,6);plot((-N_sample/2+1:N_sample/2-1)*f_res,so_rearrange(1:N_sample-1));title("So(f)频谱图");
figure(3);
subplot(2,1,1);plot(n*T_sample,m);title("基带信号波形");
subplot(2,1,2);plot(n*T_sample,so);title("解调信号波形");
figure(4);
subplot(2,1,1);plot((-N_sample/2+1:N_sample/2-1)*f_res,m_rearrange(1:N_sample-1));title("基带信号频谱");
subplot(2,1,2);plot((-N_sample/2+1:N_sample/2-1)*f_res,so_rearrange(1:N_sample-1));
title("解调信号频谱");
仿真结果:
代码更新:(加入噪声)
close all,clear
echo off
fs=100; %采样频率,由采样定理决定
ts=1/fs; %采样间隔ts由fs决定
fc=50; %载波频率
fm=5;
snr=15; %dB表示的信噪比
snr_lin=10^(snr/10); %线性信噪比的值
t0=0.5;
t=[0:ts:t0]; %时间向量的表达,时间范围[0,t0]。
df0=0.2; %频率分辨率的下限为0.2
m=cos(2*pi*fm*t); %消息信号m(t)赋初值
c=cos(2*pi*fc*t); %正弦载波信号c(t)的时域表达,分sin,cos
s=sin(2*pi*fc*t);
m_hilbert=imag(hilbert(m)); %消息信号m(t)的希尔波特变换,产生m^(t)
s=0.5*m.*c+0.5*m_hilbert.*s; %USSB已调信号u(t)的时域表达,上边带,下边带
N1=length(m);
N2=fs/df0;
N=2^(nextpow2(max(N1, N2))); %求fft的点数N
df=fs/N; %最终的频率分辨率
f=linspace(-fs/2,fs/2-df,N); %频域轴的向量,0频点在中间
M=fftshift(fft(m,N)/fs); %求消息信号的傅立叶变换
S=fftshift(fft(s,N)/fs); %求已调信号的傅立叶变换
figure
subplot(3,2,1)
plot(t,m)
xlabel('t/s')
ylabel('m(t)')
title('基带调频信号波形');
axis([0,0.5,-1.1,1.1])
subplot(3,2,3)
plot(t,s)
xlabel('t/s')
ylabel('s(t)')
title('未加噪声时已调信号波形');
axis([0,0.5,-6,6]);
subplot(3,2,2)
plot(f,abs(M))
xlabel('f/Hz')
ylabel('M(f)')
title('基带调频信号频谱');
subplot(3,2,4)
plot(f,abs(S))
xlabel('f/Hz')
ylabel('S(f)')
title('未加噪声时已调信号频谱');
signal_power=(sum(s.^2))/length(s); %计算(已调)信号的功率
noise_power=signal_power/snr_lin; %计算噪声的功率
noise_std=sqrt(noise_power); %计算噪声的标准差
noise=noise_std*randn(1,length(s)); %得到噪声向量
r=s+noise; %接收端的接收信号,加入了噪声
subplot(3,2,5)
plot(t,r)
xlabel('t/s')
ylabel('r(t)')
title('加噪声后已调信号波形');
axis([0,0.5,-1,1])
subplot(3,2,6)
R=fftshift(fft(r,N)/fs); %求消息信号的傅立叶变换
plot(f,abs(R))
xlabel('f/Hz')
ylabel('R(f)')
title('加噪声后已调信号频谱');
y=r.*c; %与一个同载波同频同相的正弦信号相乘
fL=30;
H=zeros(1,N);
num1=round((fs/2-fL)/df)+1;
num2=round((fs/2+fL)/df)+1;
H(num1:num2)=ones(1,num2-num1+1);
Y=fftshift(fft(y,N)/fs); %求y(t)的傅立叶变换
Y=Y.*H; %求y(t)过低通滤波器后的傅立叶变换
y=ifft(ifftshift(Y)*fs); %求y(t)的时域表达
figure
subplot(2,1,1)
plot(t,real(y(1:length(t)))) %舍弃很小的虚部
xlabel('t/s')
ylabel('y(t)')
title('加噪声后解调信号波形');
subplot(2,1,2)
plot(f,abs(Y))
xlabel('f/Hz')
ylabel('Y(f)')
title('加噪声后解调信号频谱');
y1=s.*c; %与一个同载波同频同相的正弦信号相乘
Y1=fftshift(fft(y1,N)/fs); %求y(t)的傅立叶变换
Y1=Y1.*H; %求y(t)过低通滤波器后的傅立叶变换
y1=ifft(ifftshift(Y1)*fs); %求y(t)的时域表达
figure
subplot(2,1,1)
plot(t,real(y1(1:length(t)))) %舍弃很小的虚部
xlabel('t/s')
ylabel('y1(t)')
title('未加噪声时解调信号波形');
subplot(2,1,2)
plot(f,abs(Y1))
xlabel('f/Hz')
ylabel('Y1(f)')
title('未加噪声时解调信号频谱');
so_power=(sum(y1.^2))/length(y1);
no_power=(sum((y-y1).^2))/length(y-y1);
SNRi=snr_lin
SNRo=so_power/no_power
G=SNRo/SNRi
仿真结果:
SNRi = 31.6228
SNRo = 69.6563
G = 2.2027
5. 小结
对同一基带信号用不同的调幅方式调制,信噪比是不同的。其中SSB调制系统的解调增益为1,DSB-SC调制系统的解调增益为2,而AM调制系统的解调增益与基带信号的功率有关,为小于2 的变量。即DSB-SC系统的抗干扰能力最强,SSB系统的抗干扰能力为它的一半。AM系统的抗干扰能力与基带信号的功率相关,基带信号功率越大系统抗干扰能力越强。
信息论指出:对常用频宽为F的限时、白色高斯噪声信道,信道容量 。当容量不变时,增大带宽可降低信噪比,提高信噪比必须压缩带宽。因此,抗干扰为主要矛盾时,可扩展频带换取低信噪比下接收,调频与扩频均基于这一原理。频带为主要矛盾时,则可用信噪比换取频带。
6. 参考文献
1.Markdown使用之语法字体、字号、颜色与居中(CSDN)
2.MATLAB通信仿真实例1:无噪声信道下DSB-SC调制解调器
3.模拟幅度调制系统抗干扰性能仿真分析模板
4.现代通信原理6.2:单边带(SSB)调制