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

📄 ammodulate.m

📁 通信原理课上作的大作业
💻 M
字号:
tz=0.001;                    %采样时间
fz=1/tz;
df=0.2;                      %频率分辨率
snr=20;                      %定义信噪比,用dB表示
snr_lin=10^(snr/10);         %信噪比的数值
t0=0.5;                      %定义t0信号的持续时间的值                 
fc=50;                       %载波频率               
a=0.8;                       %定义调制系数
t=[0:tz:t0];                 %定义出采样点数据
t1=[-8.190*t0-tz:tz:8.190*t0];
%定义信号m
m=zeros(1,501);
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
m=m/100;
c=cos(2*pi*fc.*t);   %载波 
c1=cos(2*pi*fc.*t1);   %载波
m_n=m/max(abs(m));
[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;                         %频率缩放
carry_power=ampower(c(1:length(t)));%计算载波功率
pmn=ampower(m(1:length(t)));        %计算信号功率
signal_power=carry_power+pmn        %计算已调信号功率
eta=pmn/signal_power;               %计算调制效率
noise_power=signal_power/snr_lin;%计算噪声功率
noise_std=sqrt(noise_power);     %噪声标准差
noise=noise_std*randn(1,length(u));%产生高斯分布的噪声
r=u+noise;                         %总接受信号
v=r.*c1; 
[V,v,df1]=fftseq(v,tz,df);      %对已调信号作傅里叶变换
V=V/fz;                         %频率缩放
[R,r,df1]=fftseq(r,tz,df);       %对总信号进行弗里叶变换
R=R/fz;                         %频率缩放
Vg=zeros(1,501);
for i=1:1:501
    Vg(i)=V(i+3846);
end 
result=ifft((fftshift(Vg)))*1000;
%以下为结果显示
           %pause使结果暂停,用户按任意健后继续执行


subplot(5,2,1)
plot(t,m(1:length(t)))   %作出调制信号曲线
axis([0 0.5 -2.1 2.1]);
xlabel('Time');
title('The message signal');

subplot(5,2,3)
plot(t,u(1:length(t)))   %作出已调制信号曲线
axis([0 0.5 -2.1 2.1]);
xlabel('Time');
title('The ammodulated signal');

subplot(5,2,7)
plot(t,c(1:length(t)))    %作出载波曲线
axis([0 0.5 -2.1 2.1]);
xlabel('Time');
title('The carrier');

subplot(5,2,2)
plot(f,abs(fftshift(M)))  %作出频域调制信号曲线
xlabel('Frequency');
title('Spectrum of the message signal');

subplot(5,2,4)
plot(f,abs(fftshift(U)))   %作出频域已调制信号曲线
xlabel('Frequency');
title('Spectrum of the ammodulated signal');

subplot(5,2,8)
plot(t,noise(1:length(t)))  %作出噪声信号曲线
axis([0 0.5 -1.5 1.5]);
xlabel('Time');
title('noise sample');

subplot(5,2,5)
plot(t,r(1:length(t)))    %作出时域总信号曲线
axis([0 0.5 -2.1 2.1]);
xlabel('Time');
title('signal and noise');

subplot(5,2,6)
plot(f,abs(fftshift(R)))   %作出频域总信号曲线
xlabel('Frequency');
title(' signal and noise Spectrum ');

subplot(5,2,9)
plot(t1+4.1,v(1:length(t1)))    %作出时域总信号曲线
axis([0 0.5 -2.1 2.1]);
xlabel('Time');
title('乘以载波');

subplot(5,2,10)
plot(f,abs(fftshift(V)))   %作出频域总信号曲线
xlabel('Frequency');
title(' 频谱 ');


signal_power      %显示信号功率

eta               %显示调制效率

⌨️ 快捷键说明

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