📄 am9.m
字号:
%**********编程前准备工作***********
clear; %清除工作空间中的所有变量
clf; %清除当前图形窗
%**********定义程序参数***********
Fc=30000; %定义载波频率
Fs=100000; %定义采样频率
ts=1/Fs; %采样时间间隔
f0=300; %信号频率
t0=1/f0; %信号周期
t=0:ts:2*t0; %时间矢量
df=0.3; %频率分辨率
%**********给出信号方程***********
c=cos(2*pi*Fc*t); %载波信号
A=0.8; %调制指数
m=square(2*pi*300*t,50); %矩形波调制信号
u=c.*(1+A*m); %已调信号
%*********添加噪声**********
y=awgn(u,10); %将噪声添加到已调信号中
%**********绘制波形**********
figure(1); %新建一个图形窗口
subplot(4,2,1); %将图形窗口分成3*2个子图形窗口
plot(t,m); %绘制二维图形,横坐标为t坐标,纵坐标为m变量
title('未调制信号'); %添加图形标题
subplot(4,2,2);
plot(t,c);
title('载波信号');
subplot(4,2,3);
plot(t,u);
title('无噪声已调制信号');
subplot(4,2,4);
plot(t,y);
title('有噪声已调制信号');
%********包络解调*********
env=abs(Hilbert(u)); %找出包络
dem=(env-1)/A; %去掉直流分量并重新缩放
subplot(4,2,5);
plot(t,dem);
title('无噪声包络解调信号');
env=abs(Hilbert(y)); %找出包络
dem=(env-1)/A; %去掉直流分量并重新缩放
subplot(4,2,7);
plot(t,dem);
title('有噪声包络解调信号');
%*********相干解调*********
z=ademod(u,Fc,Fs,'amdsb_tc'); %对双边带载波幅度调制信号进行解调
dem1=(z-1)/A; %去掉直流分量并重新缩放
subplot(4,2,6);
plot(t,dem1);
title('无噪声相干解调信号');
z=ademod(y,Fc,Fs,'amdsb_tc'); %对双边带载波幅度调制信号进行解调
dem1=(z-1)/A; %去掉直流分量并重新缩放
subplot(4,2,8);
plot(t,dem1);
title('有噪声相干解调信号');
%*********绘制频谱图**********
[M,m,df]=fftseq(m,ts,df); %傅里叶变换
[C,c,df]=fftseq(c,ts,df); %傅里叶变换
[U,u,df]=fftseq(u,ts,df); %傅里叶变换
[Y,y,df]=fftseq(y,ts,df); %傅里叶变换
f=[0:df:df*(length(m)-1)]-Fs/2; %频率矢量
figure(2); %新建一个图形窗口
subplot(2,2,1);plot(f,abs(fftshift(M)));
title('未调制信号频谱');
subplot(2,2,2);plot(f,abs(fftshift(C)));
title('载波信号频谱');
subplot(2,2,3);plot(f,abs(fftshift(U)));
title('无噪声已调信号频谱');
subplot(2,2,4);plot(f,abs(fftshift(Y)));
title('有噪声已调信号频谱');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -