am9.m

来自「am信号的调制解调matlab的源程序 可以实现不同调制系数下的调制」· M 代码 · 共 70 行

M
70
字号
%**********编程前准备工作***********
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 + =
减小字号Ctrl + -
显示快捷键?