ylabel('输出调制信号'); subplot(2,2,3);
plot(t,nit1,'r');
%length用于长度匹配
%画出输入信号与噪声叠加波形
title('大信噪比高斯白躁声'); xlabel(' t'); ylabel('nit'); subplot(2,2,4); plot(t,psnt1,'k');
title('叠加大信噪比已调信号波形'); xlabel('时间'); ylabel('输出调制信号');
运行结果:
%画出输出信号波形
由上图可见,当输入信号一定时,随着噪声的加强,接收端输入信号被干扰得越严重。而
非线性元件如滤波器等的存在。非线性失真也会随噪声加大而变大。
四、 SSB调制与解调及抗噪声性能分析
3.1 SSB
调制与解调
成绩:
11
3.1.1 SSB调制与解调原理
单边带调制信号是将双边带信号中的一个边带滤掉而形成的。根据方法的不同,产生SSB信号的方法有:滤波法和相移法。
由于滤波法在技术上比较难实现,所以在此我们将用相移法对SSB调制与解调系统进行讨论与设计。
相移法和SSB信号的时域表示 设单频调制信号为 m(t)?Amcos?mt载波为 c(t)?cos?ct
则其双边带信号DSB信号的时域表示式为
sDSB(t)?Amcos?mtcos?ct
11?Acos(???)t?Amcos(?c??m)tmcm
22
若保留上边带,则有 111s(t)?Acos(???)t ?Amcos?mcos?ct?Amsin?msin?ctUSBmCm222
若保留下边带,则有
1 11s(t)?Acos(???)t?Amcos?mtcos?ct?Amsin?mtsin?ctmCm LSB222
将上两式合并得:
由希尔伯特变换
?s?mt?Amsin?mtAmco
故单边带信号经过希尔伯特变换后得:
把上式推广到一般情况,则得到
?(?)为?(t)的傅里叶变换Mm式中
?(t)是m(t)的希尔伯特变换m若M(?)是m(t)的傅里叶变换,则
?(?)?M(?)???jsgn??M
成绩:
12
上式中的[-jsgn?]可以看作是希尔伯特滤波器传递函数,即
移相法SSB调制器方框图
?(?)/M(?)??jsgn?Hh(?)?M
相移法是利用相移网络,对载波和调制信号进行适当的相移,以便在合成过程中将其中的一个
边带抵消而获得SSB信号。相移法不需要滤波器具有陡峭的截止特性,不论载频有多高,均可一次实现SSB调制。
SSB信号的解调
SSB信号的解调不能采用简单的包络检波,因为SSB信号是抑制载波的已调信号,它的包络不能直接反映调制信号的变化,所以仍需采用相干解调。
SSB信号的性能
SSB信号的实现比AM、DSB要复杂,但SSB调制方式在传输信息时,不仅可节省发射功率,而且它所占用的频带宽度比AM、DSB减少了一半。它目前已成为短波通信中一种重要的调制方式。
3.1.2调试过程
先建立3个M文件 1. afd_butt
function [b,a] = afd_butt(Wp,Ws,Rp,As); if Wp <= 0
error('Passband edge must be larger than 0') end
if Ws <= Wp
error('Stopband edge must be larger than Passband edge') end
if (Rp <= 0) | (As < 0)
error('PB ripple and/or SB attenuation ust be larger than 0') end
N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws))); fprintf('\\n*** Butterworth Filter Order = %2.0f \\n',N) OmegaC = Wp/((10^(Rp/10)-1)^(1/(2*N))); [b,a]=u_buttap(N,OmegaC);
成绩:
13
2. u_buttap
function [b,a] = u_buttap(N,Omegac); [z,p,k] =u_buttap(N); p = p*Omegac; k = k*Omegac^N; B = real(poly(z)); b0 = k; b = k*B;
a = real(poly(p));
3. imp_invr
%脉冲响应不变法子程序
function [b,a]=imp_invr(c,d,T) [R,p,k]=residue(c,d); p=exp(p*T);
[b,a]=residuez(R,p,k); b=real(b).*T; a=real(a);
程序:
>> t0=0.1;fs=12000; %t0采样区间,fs采样频率
>> fc=1000;Vm0=2.5;ma=0.25; ü载波频率,Vm0输出载波电压振幅,ma调幅度 >> n=-t0/2:1/fs:t0/2; %定义变量区间 >> N=length(n);
>> A=4; %定义调制信号幅度
>> x1=A*cos(150*pi*n); %调制信号
>> x2=hilbert(x1,N); %对x1做希尔伯特变换
>> y=(Vm0*x1.*cos(2*pi*fc*n)-Vm0*x2.*sin(2*pi*fc*n))/2; %保留上边带的已调波信号>> xzb=2; %输入信噪比(dB) >> snr=10.^(xzb/10);
>> [h,l]=size(x1); %求调制信号的维度
>> fangcha=A*A./(2*snr); %由信噪比求方差
>> nit=sqrt(fangcha).*randn(h,l); %产生高斯白噪声 >> yn=y+nit; %叠加噪声的已调波信号 >> figure(1)
>> subplot(3,1,1) %划分画图区间 >> plot(n,x1) %画出调制信号的波形 >> title('调制信号');
>> subplot(3,1,2) %划分画图区间 >> plot(n,y) %画出已调波信号波形 >> title('已调波信号');
>> subplot(3,1,3) %划分画图区间
>> plot(n,yn) %画出叠加噪声的已调波信号波形 >> title('叠加噪声的已调波信号');
>> X=fft(x1); %调制信号x1的傅里叶变换 >> Y=fft(y); %已调信号y的傅里叶变换
>> Yn=fft(yn); %叠加噪声的已调信号yn的傅里叶变换 >> w=0:2*pi/(N-1):2*pi; %定义变量区间 >> figure(2)
>> subplot(3,1,1) %划分画图区间
>> plot(w,abs(X)) %画出调制信号频谱波形 >> axis([0,pi/4,0,3000]); %给出横纵坐标的范围
成绩:
14
>> title('调制信号频谱');
>> subplot(3,1,2) %划分画图区间
>> plot(w,abs(Y)) %画出已调波信号频谱
>> axis([pi/6,pi/4,0,2500]); %给出横纵坐标的范围 >> title('已调波信号频谱');
>> subplot(3,1,3) %划分画图区间
>> plot(w,abs(Yn)) %画出叠加噪声的已调波信号频谱 >> axis([pi/6,pi/4,0,2500]); %给出横纵坐标的范围 >> title('叠加噪声的已调波信号频谱'); >> y1=y-2*cos(1500*pi*n);
>> y2=Vm0*y1.*cos(2*pi*fc*n); %将已调幅波信号的频谱搬移到原调制信号的频谱处>> wp=40/N*pi;ws=60/N*pi;Rp=1;As=15;T=1; %滤波器参数设计 >> OmegaP=wp/T;OmegaS=ws/T;
>> [cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As); >> [b,a]=imp_invr(cs,ds,T); >> y=filter(b,a,y2); >> yn=y+nit; >> figure(3)
>> subplot(2,1,1) %划分画图区间 >> plot(n,y) %画出解调波波形 >> title('解调波');
>> subplot(2,1,2) %划分画图区间
>> plot(n,yn) %画出叠加噪声的解调波波形 >> title('叠加噪声的解调波'); >> figure(4)
>> Y=fft(y); %解调波y的傅里叶变换 >> subplot(2,1,1) %划分画图区间 >> plot(w,abs(Y)) %画出解调信号频谱
>> axis([0,pi/6,0,2500]); %给出横纵坐标的范围 >> title('解调信号频谱');
>> Yn=fft(yn); %叠加噪声的解调波yn的傅里叶变换 >> subplot(2,1,2) %划分画图区间
>> plot(w,abs(Yn)) %画出叠加噪声的解调信号频谱 >> axis([0,pi/6,0,2500]); %给出横纵坐标的范围 >> title('叠加噪声的解调信号频谱');
运行结果:
成绩:
15