2024年4月17日发(作者:)

调制就是将基带信号的频谱搬移到信道通带中或者其中的某个频段上的过程,

而解调是将信道中来的频带信号恢复为基带信号的反过程。

调制的目的是把要传输的模拟信号或数字信号变换成适合信道传输的信号,这

就意味着把基带信号(信源)转变为一个相对基带频率而言频率非常高的带通信号。

该信号称为已调信号,而基带信号称为调制信号。调制可以通过使高频载波随信号

幅度的变化而改变载波的幅度、相位或者频率来实现。调制过程用于通信系统的发

端。在接收端需将已调信号还原成要传输的原始信号,也就是将基带信号从载波中

提取出来以便预定的接受者(信宿)处理和理解的过程。该过程称为解调。

根据所控制的信号参量的不同,调制可分为:

调幅,使载波的幅度随着调制信号的大小变化而变化的调制方式。

调频,使载波的频率随调制信号的大小变化而变化,而幅度保持不变的调制方

式。

调相,利用原始信号控制载波信号的相位。

一、FM信号的频谱

1、消息信号是[-5,5]之间均匀分布的随机整数,产生的的时间间隔为1/10s,消息

信号采用FM调制载波cos2*pi*fc*t。假设fc=250,t=[0,10],kf=50。画出消息信号

和已调信号的频谱。

clear all

ts=0.001; %信号抽样时间间隔

t=0:ts:10-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

msg=randint(100,1,[-3,3],123); %生成消息序列,随机数种子为123

------来源网络,仅供参考

msg1=msg*ones(1,fs/10); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df;

subplot(2,1,1)

plot(t,fftshift(abs(Pm)))

title('消息信号频谱')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

kf=50;

fc=250; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

Pfm=fft(Sfm)/fs; % FM信号频谱

subplot(2,1,2)

plot(f,fftshift(abs(Pfm))) % 画出已调信号频谱

title('FM信号频谱')

Pc=sum(abs(Sfm).^2)/length(Sfm) %已调信号功率

Ps=sum(abs(msg2).^2)/length(msg2) %消息信号功率

fm=50;

betaf=kf*max(msg)/fm % 调制指数

W=2*(betaf+1)*fm % 调制信号带宽

2、正弦波信号的频谱

clear all

ts=0.001; %信号抽样时间间隔

t=0:ts:10-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

msg=sawtooth([0:1:99]*pi/8,0.5);

msg1=msg.'*ones(1,fs/10); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

------来源网络,仅供参考

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df;

subplot(2,1,1)

plot(f,fftshift(abs(Pm)))

title('消息信号频谱')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

kf=50;

fc=300; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

Pfm=fft(Sfm)/fs; % FM信号频谱

subplot(2,1,2)

plot(f,fftshift(abs(Pfm))) % 画出已调信号频谱

title('FM信号频谱')

Pc=sum(abs(Sfm).^2)/length(Sfm) %已调信号功率

Ps=sum(abs(msg2).^2)/length(msg2) %消息信号功率

fm=50;

betaf=kf*max(msg)/fm % 调制指数

W=2*(betaf+1)*fm % 调制信号带宽

由上可见,调频波的频谱包含无穷多个分量。由于调频波的频谱包含分量有无穷

多个,因此,理论上调频波的频带宽度为无限宽。然而实际上边频幅度随着n的增大

------来源网络,仅供参考

而逐渐减小,因此,只要取适合的n值,使边频分量小到可以忽略,调频信号可近似

认为具有有限频谱。所以,根据这个原则,调频波的带宽为B=2(β+1)W

二、FM信号的调制与解调

1、正弦信号的调制与解调

clear all

ts=0.001; %信号抽样时间间隔

t=0:ts:10-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

msg=sin(2*pi*[0.00:0.01:0.99]);

msg1=msg.'*ones(1,fs/10); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df; %求消息信号的频谱

subplot(3,1,1)

plot(t,msg2) %画出消息信号

title('消息信号')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

kf=50;

fc=300; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t)); %FM调制信号相位

phi=unwrap(phase);

dem=(1/(2*pi*kf)*diff(phi)/ts); %求相位微分,得到消息信号

dem(length(t))=0;

subplot(3,1,2)

plot(t,dem);

title('无噪声的解调信号')

y1=awgn(Sfm,20,'measured'); %调制信号通过AWGN信道

y1(find(y1>1))=1; %调制信号限幅

y1(find(y1<-1))=-1;

phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t)); %信号解调

phi1=unwrap(phase1);

dem1=(1/(2*pi*kf)*diff(phi1)/ts);

dem1(length(t))=0;

subplot(3,1,3)

plot(t,dem1);

title('信噪比为20dB时的解调信号')

2、方波信号的调制与解调

clear all

------来源网络,仅供参考

ts=0.0025; %信号抽样时间间隔

t=0:ts:10-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

msg=square(15*pi*[0:0.01:0.99]);

msg1=msg.'*ones(1,fs/10); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df;

subplot(3,1,1)

plot(t,msg2) %画出消息信号

title('消息信号')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

kf=50;

fc=300; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t)); %FM调制信号相位

phi=unwrap(phase);

dem=(1/(2*pi*kf)*diff(phi)/ts); %求相位微分,得到消息信号

dem(length(t))=0;

subplot(3,1,2)

plot(t,dem);

title('无噪声的解调信号')

y1=awgn(Sfm,20,'measured'); %调制信号通过AWGN信道

y1(find(y1>1))=1; %调制信号限幅

y1(find(y1<-1))=-1;

------来源网络,仅供参考

phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t)); %信号解调

phi1=unwrap(phase1);

dem1=(1/(2*pi*kf)*diff(phi1)/ts);

dem1(length(t))=0;

subplot(3,1,3)

plot(t,dem1);

title('信噪比为20dB时的解调信号')

三、不同信噪比下,同一信号解调输出的对比

消息信号是[-5,5]之间均匀分布的随机整数,产生的的时间间隔为1/2s,消息信号

采用FM调制载波cos2*pi*fc*t。假设fc=300,t=[0,5],kf=50

(1)画出原始信号和解调信号。

(2)假设通过AWGN信道,信噪比为3,画出原始信号和解调信号。

clear all

ts=0.001; %信号抽样时间间隔

t=0:ts:5-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

msg=randint(10,1,[-5,5],456); %生成消息序列,随机数种子为123

msg1=msg*ones(1,fs/2); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df;

subplot(3,1,1)

plot(t,msg2) %画出消息信号

title('消息信号')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

------来源网络,仅供参考

kf=50;

fc=300; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t)); %FM调制信号相位

phi=unwrap(phase);

dem=(1/(2*pi*kf)*diff(phi)/ts); %求相位微分,得到消息信号

dem(length(t))=0;

subplot(3,1,2)

plot(t,dem);

title('无噪声的解调信号')

y1=awgn(Sfm,3,'measured'); %调制信号通过AWGN信道

y1(find(y1>1))=1; %调制信号限幅

y1(find(y1<-1))=-1;

phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t)); %信号解调

phi1=unwrap(phase1);

dem1=(1/(2*pi*kf)*diff(phi1)/ts);

dem1(length(t))=0;

subplot(3,1,3)

plot(t,dem1);

title('信噪比为3dB时的解调信号')

消息信号是[-5,5]之间均匀分布的随机整数,产生的的时间间隔为1/2s,消息信号

采用FM调制载波cos2*pi*fc*t。假设fc=300,t=[0,5],kf=50

(3)画出原始信号和解调信号。

(4)假设通过AWGN信道,信噪比为10,画出原始信号和解调信号。

clear all

ts=0.001; %信号抽样时间间隔

t=0:ts:5-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

------来源网络,仅供参考

msg=randint(10,1,[-5,5],456); %生成消息序列,随机数种子为123

msg1=msg*ones(1,fs/2); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df;

subplot(3,1,1)

plot(t,msg2) %画出消息信号

title('消息信号')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

kf=50;

fc=300; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t)); %FM调制信号相位

phi=unwrap(phase);

dem=(1/(2*pi*kf)*diff(phi)/ts); %求相位微分,得到消息信号

dem(length(t))=0;

subplot(3,1,2)

plot(t,dem);

title('无噪声的解调信号')

y1=awgn(Sfm,10,'measured'); %调制信号通过AWGN信道

y1(find(y1>1))=1; %调制信号限幅

y1(find(y1<-1))=-1;

phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t)); %信号解调

phi1=unwrap(phase1);

dem1=(1/(2*pi*kf)*diff(phi1)/ts);

dem1(length(t))=0;

subplot(3,1,3)

plot(t,dem1);

------来源网络,仅供参考

title('信噪比为10dB时的解调信号')

消息信号是[-5,5]之间均匀分布的随机整数,产生的的时间间隔为1/2s,消息信号

采用FM调制载波cos2*pi*fc*t。假设fc=300,t=[0,5],kf=50

(5)画出原始信号和解调信号。

(6)假设通过AWGN信道,信噪比为40,画出原始信号和解调信号。

clear all

ts=0.001; %信号抽样时间间隔

t=0:ts:5-ts; %时间向量

fs=1/ts; %抽样频率

df=fs/length(t); %fft的频率分辨率

msg=randint(10,1,[-5,5],456); %生成消息序列,随机数种子为123

msg1=msg*ones(1,fs/2); %扩展成取样信号形式

msg2=reshape(msg1.',1,length(t));

Pm=fft(msg2)/fs; %求消息信号的频谱

f=-fs/2:df:fs/2-df;

subplot(3,1,1)

plot(t,msg2) %画出消息信号

title('消息信号')

int_msg(1)=0; %消息信号积分

for ii=1:length(t)-1

int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;

end

kf=50;

fc=300; %载波频率

Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg); %调频信号

phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t)); %FM调制信号相位

phi=unwrap(phase);

------来源网络,仅供参考

dem=(1/(2*pi*kf)*diff(phi)/ts); %求相位微分,得到消息信号

dem(length(t))=0;

subplot(3,1,2)

plot(t,dem);

title('无噪声的解调信号')

y1=awgn(Sfm,40,'measured'); %调制信号通过AWGN信道

y1(find(y1>1))=1; %调制信号限幅

y1(find(y1<-1))=-1;

phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t)); %信号解调

phi1=unwrap(phase1);

dem1=(1/(2*pi*kf)*diff(phi1)/ts);

dem1(length(t))=0;

subplot(3,1,3)

plot(t,dem1);

title('信噪比为40dB时的解调信号')

由上可见,当信噪比为3时,消息信号的解调输出模糊不清,几乎不能分辨出原

消息的内容,无法达到信息传递的目的。当信噪比为10时,解调输出仍然模糊,但

可以看出与原信号幅度变化基本一致。当信噪比为40时,解调输出基本清晰可见,

与无噪声输出基本一致。不难看出,调制信号在经过AWGN信道时,随着信噪比的不

断增加,解调输出就会越接近原始信号,并准确还原出原始信号所包含的各种信息。

因此,在通信系统传输过程中,信噪比也是保证传输质量的重要因素,提高传

输信噪比,能有效的提高通信传输的准确性。

实验总结

通过本次试验,我们掌握了使用MATLAB工具对FM信号进行调制与解调,通过软

件的仿真,我们更直观的了解了FM信号在通信传输中的特性,以及传输信噪比对信

号传输的影响,对理论知识形成更深刻的认识。

------来源网络,仅供参考