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

📄 am.m

📁 模拟通信中的双边带常规调幅示例
💻 M
字号:
echo on 
tz=0.001;             %定义抽样时间
snr=10;               %定义信噪比,同db表示
fz=1/tz;          
df=0.2;               %频率分辨力
snr_lin=10^(snr/10);  %信噪比的数值
t0=0.5;               %定义t0信号的持续时间的值
fa=50;                %定义载波频率
a=0.8;                %定义调制系数
t=[0:tz:t0];          %定义抽样点数据
%定义信号m
m=zeros(1,501);
for i=1:1:125,                m(i)=i;  end
    for i=126:1:375,          m(i)=-i+250;  end
        for i=376:1:501,      m(i)=i-500;   end
            m=m/1000
c=cos(2*pi*fa*t);                                  %载波信号
m_n=m/max(abs(m));                                 
[M,m,df1]=fftseq(m,tz,df); %傅里叶变换,ffse程序段见后
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)));%计算信号的功率,函数ampower
%程序段见后
pmn=ampower(m(1:length(t)))/(max(abs(m)))^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                             %pause使向程序暂停,用户按任意键后继续执行
  signal_power                    %显示信号功率
pause
eta                               %显示调制效率
pause
subplot(2,2,1)                   
plot(t, m(1:length(t)))           %作出调制信号曲线
axis([0 0.5 -0.25 0.25]);           xlabel('Time')
title('The message signal');      pause 
subplot(2,2,2)   
plot(t, u(1:length(t)))           %作出已调制信号的曲线
axis([0 0.5 -2.1 2.1]);           xlabel('Time')
title('The modulated signal');      pause
subplot(2,2,3)     
plot(t, c(1:length(t)))          %作出载波曲线
axis([0 0.5 -2.1 2.1]);         xlabel('Time')
title('The carrier');            pause  
subplot(2,1,1)      
plot(f, abs(fftshift(M)))            %作出频域的调制信号
xlabel('Frequency');           title('Spectrum of the message signal')
pause;                          subplot(2,1,2)
plot(f,abs(fftshift(U)))         %作出频域的已调制信号   
title('noise sample');          xlabel('Frequency')
pause;                          subplot(2,1,1)
plot(t,noise(1:length(t)))     %作出噪声曲线
title('noise samle');          xlabel('Time')
pause;                          subplot(2,1,2)
plot(t, r(1:length(t)))       %作出总信号的时域曲线
title('Signal and noise');   xlabel('Time')
pause;                        subplot(2,1,2)
plot(f, abs(fftshift(R)))    %作出频域的总信号曲线
title('Signal and niose spectrum');xlabel('Frequency')

⌨️ 快捷键说明

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