⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 amodulate.m

📁 Matlab通信仿真与应用 刘敏 魏玲编著
💻 M
字号:
clear
clc
echo on
df=0.2;   %频率分辨率
t0=0.5;     %定义t0信号的持续时间的值
tz=0.001;   %定义采样时间
fz=1/tz;
fa=50;      %定义载波频率
snr=10;     %定义信噪比,用dB表示
snr_lin=10^(snr/10);    %信噪比的数值
a=0.8;      %定义调制系数
t=[0:tz:t0];   %定义出采样点数据
%定义信号m
m=zeros(1,501);
%next m(1:501) is generated
echo off
for i=1:1:125
    m(i)=i;
end
for i=126:1:375
    m(i)=m(125)-i+125;
end
for i=376:1:501
    m(i)=m(375)+i-375;
end
echo on
m=m/1000;
c=cos(2*pi*fa*t);   %载波信号
m_n=m/max(abs(m));  %m归一化为m_n,以最大值为1
[M,m,df1]=fftseq(m,tz,df);
M=M/fz;        %频率缩放,便于作图
f=[0:df1:df1*(length(m)-1)]-fz/2;     %定义频率向量
u=(1+a*m_n).*c;     %将调制信号调制在载波上
[U,u,df1]=fftseq(u,tz,df);
U=U/fz;     %频率缩放
signal_power=ampower(u(1:length(t)));   %信号功率
pmn=ampower(m(1:length(t)))/(max(abs(m)))^2;     %调制信号功率  m和m_n对应的差0.125^2倍
eta=(a^2*pmn)/(1+a^2*pmn);      %调制效率
noise_power=eta*signal_power/snr_lin;
noise_std=sqrt(noise_power);     %噪声标准差
noise=noise_std*randn(1,length(u)); %高斯分布的噪声
r=u+noise;
[R,r,df1]=fftseq(r,tz,df);
R=R/fz;    %频率缩放

pause
signal_power
pause
eta
pause
clf
%subplot(2,2,1)
subplot(3,3,1)
plot(t,m(1:length(t)))       %调制信号曲线
axis([0 0.15 -2.1 2.1]);
xlabel('Time')
title('The message signal');
pause
%subplot(2,2,2)
subplot(3,3,2)
plot(t,u(1:length(t)))      %已调制信号曲线
axis([0 0.15 -2.1 2.1]);
xlabel('Time')
title('The modulated signal');
pause
%subplot(2,2,3)
subplot(3,3,3)
plot(t,c(1:length(t)))      %载波曲线
axis([0 0.15 -2.1 2.1]);
xlabel('Time')
title('The carrier');
pause
%subplot(2,1,1)
subplot(3,3,4)
plot(f,abs(fftshift(M)))     %频域调制信号
xlabel('Frequency');
title('Spectrum of the message signal')
pause;
%subplot(2,1,2)
subplot(3,3,5)
plot(f,abs(fftshift(U)))     %频域已调制信号
title('Spectrum of the modulated signal');
xlabel('Frequency')
pause
%subplot(2,1,1)
subplot(3,3,6)
plot(t,noise(1:length(t)))    %噪声曲线
title('noise sample');
xlabel('Time')
pause
%subplot(2,1,2)
subplot(3,3,7)
plot(t,r(1:length(t)))        %总信号的时域曲线
title('Signal and noise');
xlabel('Time')
pause
%subplot(2,1,2)
subplot(3,3,8)
plot(f,abs(fftshift(R)))      %频域总信号曲线
title('Signal and noise spectrum');
xlabel('Frequency')















































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -