通信原理Matlab仿真:模拟信号的幅度调制
【摘要】
用Matlab产生一个频率为1Hz、功率为1的余弦信源,设载波频率为10Hz,试画出:
DSB调制信号及其功率谱密度;
clc,clear,close all;dt=0.001; t=-10:dt:10; % 仿真时间fm=1;%基带信号频率fc=10;%载波频率mt=sqrt(2)*cos(2*pi*fm*t);%基带...
用Matlab产生一个频率为1Hz、功率为1的余弦信源,设载波频率为10Hz,试画出:
DSB调制信号及其功率谱密度;
-
clc,clear,close all;
-
dt=0.001;
-
t=-10:dt:10; % 仿真时间
-
fm=1;%基带信号频率
-
fc=10;%载波频率
-
mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
-
c=cos(2*pi*fc*t);%载波信号
-
st=mt.*c;%DSB
-
%求功率谱
-
T=20;
-
df=1/T;% 抽样精度
-
N=length(st);%确定抽样个数
-
f=-N/2*df:df:N/2*df-df;%功率谱范围
-
sf=fft(st);%傅里叶变化
-
sf=T/N*fftshift(sf);%将零频点移到频谱的中间
-
psf=(abs(sf).^2)/T;%求功率
-
%绘制基带信号
-
subplot(311)
-
plot(t,mt)
-
xlabel('t');
-
ylabel('mt');
-
%plot(t,mt,'r--')
-
title('基带信号波形');
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%绘制DSB波形
-
subplot(312)
-
plot(t,st)
-
xlabel('t');
-
ylabel('st');
-
hold on;
-
plot(t,mt,'r--');
-
title('DSB调制波形');
-
legend('DSB','基带信号')
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%绘制DSB功率谱
-
subplot(313)
-
plot(f,psf);
-
xlabel('f');
-
ylabel('psf');
-
%plot(f,abs(st1));
-
axis([-2*fc 2*fc 0 max(psf)]);
-
title('DSB信号功率谱');
-
grid on;
-
gtext('图2-1 DSB调制信号及其功率谱密度波形')
- 将已调信号解调,在时域内将解调后的波形与原信号进行对比;
-
clc,clear,close all;
-
dt=0.001;
-
t=-10:dt:10;% 仿真时间
-
fm=1;%基带信号频率
-
fc=10;%载波频率
-
w_lpf = 1; % 低通滤波器截止频率(理想)
-
mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
-
c=cos(2*pi*fc*t);%载波信号
-
st=mt.*c;%DSB
-
%解调
-
st1=st.*c;
-
sample = length(t);
-
st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
-
f = 1/dt/sample*(0:1:sample-1);
-
st3 = st2.*(f<w_lpf); % 进过低通滤波
-
st4 = real(ifft(st3)); %解调后波形
-
%绘制基带信号
-
subplot(311)
-
plot(t,mt)
-
xlabel('t');
-
ylabel('mt');
-
%plot(t,mt,'r--')
-
title('基带信号波形');
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%绘制DSB波形
-
subplot(312)
-
plot(t,st)
-
xlabel('t');
-
ylabel('st');
-
hold on;
-
plot(t,mt,'r--');
-
title('DSB调制波形');
-
legend('DSB信号','基带信号')
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%绘制解调后信号与原信号波形对比
-
subplot(313)
-
plot(t,st4*sample);
-
hold on;
-
plot(t,mt)
-
xlabel('t');
-
ylabel('st1');
-
%plot(f,abs(st1));
-
axis([-5,5,-1.5,1.5]);
-
hold on;
-
%plot(t,mt,'r--');
-
title('解调后波形');
-
legend('解调后信号','基带信号')
-
grid on;
-
gtext('图2-2 时域内DSB解调后的波形与原信号进行对比')
A=2的AM调制信号及其功率谱密度;
-
clc,clear,close all;
-
dt=0.001;
-
t=-10:dt:10;% 仿真时间
-
A=2;
-
fm=1;%基带信号频率
-
fc=10;%载波频率
-
w_lpf = 1; % 低通滤波器截止频率(理想)
-
w_ipf = 1; % 带通滤波器截止频率(理想)
-
fm = 0.3; % 带通滤波器通带
-
mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
-
c=cos(2*pi*fc*t);%载波信号
-
st=(mt+A).*c;%AM
-
%解调
-
st1=st.*c;
-
sample = length(t);
-
st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
-
f = 1/dt/sample*(0:1:sample-1);
-
st3 = st2.*(f<w_lpf); % 进过低通滤波
-
st4 = real(ifft(st3)); %解调后波形
-
%求功率谱
-
T=20;
-
df=1/T;%抽样精度
-
N=length(st);%确定抽样个数
-
f=-N/2*df:df:N/2*df-df;%功率谱范围
-
sf=fft(st);%傅里叶变化
-
sf=T/N*fftshift(sf);%将零频点移到频谱的中间
-
psf=(abs(sf).^2)/T;%求功率
-
%绘制基带信号
-
subplot(411)
-
plot(t,mt)
-
xlabel('t');
-
ylabel('mt');
-
%plot(t,mt,'r--')
-
title('基带信号波形');
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%绘制AM波形
-
subplot(412)
-
plot(t,st)
-
xlabel('t');
-
ylabel('st');
-
hold on;
-
plot(t,mt+2,'r--');
-
title('AM调制波形');
-
legend('AM','基带信号')
-
axis([-5,5,-5,5]);
-
grid on;
-
%绘制AM功率谱
-
subplot(413)
-
plot(f,psf);
-
xlabel('f');
-
ylabel('psf');
-
%plot(f,abs(st1));
-
axis([-2*fc 2*fc 0 max(psf)]);
-
title('AM信号功率谱');
-
grid on;
-
%绘制解调后信号与原信号波形对比
-
subplot(414)
-
plot(t,st4*sample-2)
-
xlabel('t');
-
ylabel('st4');
-
%plot(f,abs(st1));
-
axis([-10,10,-3,3]);
-
hold on;
-
plot(t,mt,'r--');
-
title('解调后波形');
-
legend('解调后信号','基带信号')
-
grid on;
-
gtext('图2-3 A=2的AM调制信号及其功率谱密度波形')
SSB调制信号及其功率谱密度;
-
clc,clear,close all;
-
dt=0.001;
-
t=-10:dt:10;% 仿真时间
-
fm=1;%基带信号频率
-
fc=10;%载波频率
-
w_lpf = 1; % 低通滤波器截止频率(理想)
-
w_ipf = 1; % 带通滤波器截止频率(理想)
-
fm = 0.3; % 带通滤波器通带
-
mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
-
c=cos(2*pi*fc*t);%载波信号
-
st=real(hilbert(mt).*exp(j*2*pi*fc*t));%SSB
-
%解调
-
st1=st.*c;
-
sample = length(t);
-
st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2
-
f = 1/dt/sample*(0:1:sample-1);
-
st3 = st2.*(f<w_lpf); % 进过低通滤波
-
st4 = real(ifft(st3)); %解调后波形
-
%求功率谱
-
T=20;
-
df=1/T;%抽样精度
-
N=length(st);%确定抽样个数
-
f=-N/2*df:df:N/2*df-df;%功率谱范围
-
sf=fft(st);%傅里叶变化
-
sf=T/N*fftshift(sf);%将零频点移到频谱的中间
-
psf=(abs(sf).^2)/T;%求功率
-
%绘制基带信号
-
subplot(411)
-
plot(t,mt)
-
xlabel('t');
-
ylabel('mt');
-
%plot(t,mt,'r--')
-
title('基带信号波形');
-
axis([-5,5,-2,2]);
-
grid on;
-
%绘制SSB波形
-
subplot(412)
-
plot(t,st)
-
xlabel('t');
-
ylabel('st');
-
hold on;
-
plot(t,mt,'r--');
-
title('SSB调制波形');
-
legend('SSB','基带信号')
-
axis([-5,5,-2,2]);
-
grid on;
-
%绘制SSB功率谱
-
subplot(413)
-
plot(f,psf);
-
xlabel('f');
-
ylabel('psf');
-
%plot(f,abs(st1));
-
axis([-2*fc 2*fc 0 max(psf)]);
-
title('SSB信号功率谱');
-
grid on;
-
%绘制解调后信号与原信号波形对比
-
subplot(414)
-
plot(t,st4*sample)
-
xlabel('t');
-
ylabel('st4');
-
%plot(f,abs(st1));
-
axis([-10,10,-2,2]);
-
hold on;
-
plot(t,mt,'r--');
-
title('解调后波形');
-
legend('解调后信号','基带信号')
-
grid on;
-
gtext('图2-4 SSB调制信号及其功率谱密度波形')
在信道中各自加入经过带通滤波器后的窄带高斯白噪声,功率为0.1,解调各个信号,并画出解调后的波形。
-
clc,clear,close all;
-
A=2;
-
dt=0.001;
-
t=-10:dt:10;% 仿真时间
-
fm=1;%基带信号频率
-
fc=10;%载波频率
-
w_lpf = 1;% 低通滤波器截止频率(理想)
-
w_ipf=1; % 带通滤波器截止频率(理想)
-
mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
-
c=cos(2*pi*fc*t);%载波信号
-
%获得各种信号
-
st1=mt.*c;%DSB信号
-
st2=(mt+A).*c;%AM信号
-
st3= 0.5*mt.* c + 0.5*hilbert(mt).*hilbert(c); %SSB信号
-
%给各种信号加高斯白噪声
-
st11=awgn(st1,-10);%DSB信号加高斯白噪声
-
st22=awgn(st2,-10);%AM信号加高斯白噪声
-
st33=awgn(st3,-10);%SSB信号加高斯白噪声
-
%解调
-
sample = length(t);
-
f = 1/dt/sample*(0:1:sample-1);
-
st11=st11.*c;%DSB信号解调
-
st111 = fft(st11, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
-
st111 = st111.*(f<w_lpf); % 进过低通滤波
-
st1111 = real(ifft(st111)); %解调后波形
-
st22=st22.*c;%AM信号解调
-
st222 = fft(st22, sample)/sample*2; %这里要/抽样次数*2 才是最后结果
-
st222 = st222.*((f>w_ipf-fm) - (f>w_ipf+fm) );%进过低通滤波
-
st2222 = real(ifft(st222)); %解调后波形
-
st33=st33.*c;%SSB信号解调
-
st333 = fft(st33, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
-
st333 = st333.*((f>w_ipf-fm) - (f>w_ipf+fm) ); % 进过低通滤波
-
st3333 = real(ifft(st333)); %解调后波形
-
%DSB经过高斯白噪声后解调波形与原波形比较
-
subplot(311);
-
plot(t,st1111*sample);
-
xlabel('t');
-
ylabel('mt');
-
hold on;
-
plot(t,mt,'r--');
-
title('经过高斯白噪声后波形比较');
-
legend('DSB','基带信号');
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%AM经过高斯白噪声后解调波形与原波形比较
-
subplot(312)
-
plot(t,st2222*sample)
-
xlabel('t');
-
ylabel('mt');
-
hold on;
-
plot(t,mt,'r--')
-
title('经过高斯白噪声后波形比较');
-
legend('AM','基带信号');
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
%SSB经过高斯白噪声后解调波形与原波形比较
-
subplot(313)
-
plot(t,st3333*sample)
-
xlabel('t');
-
ylabel('mt');
-
hold on;
-
plot(t,mt,'r--');
-
title('经过高斯白噪声后波形比较');
-
legend('SSB','基带信号')
-
axis([-5,5,-1.5,1.5]);
-
grid on;
-
gtext('图2-5 基带信号与经过高斯白噪声后DSB、SSB、AM解调后波形比较')
文章来源: blog.csdn.net,作者:渣渣ye,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/yyfloveqcw/article/details/123811018
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)