%%%%%%%%%%%%%%%%%%%%%%%%%%%
%AM调制解调系统
%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clf;
close all
Fs=800000;%采样频率800k
fz=80000;%载波频率80k
fj=1000;%基波频率1k
i=5000;%采样点数
t=(1:i)/Fs;%时间
B=1;%基波的幅度
A=1;%直流分量
%%%%%%%%%%%%%%%%%%%
%产生基波
%%%%%%%%%%%%%%%%%%%
Mod_Sig=B*sin(2*pi*fj/Fs*(1:i));%基波 subplot(311);plot(t,Mod_Sig);grid on;title('基波');xlabel('时间(S)');ylabel('幅度(V)');
%%%%%%%%%%%%%%%%%%%
%产生载波
%%%%%%%%%%%%%%%%%%%
Carrier=cos(2*pi*fz/Fs*(1:i)+1/3*pi);%载波1/3*pi为初相
subplot(312);plot(t(1:200),Carrier(1:200));grid on;title('载波');xlabel('时间(S)');ylabel('幅度(V)');
%%%%%%%%%%%%%%%%%%%
%产生AM调制信号
%%%%%%%%%%%%%%%%%%%
Dsb_am=Carrier.*(A+Mod_Sig);%am调制其中1表示调制深度为100% subplot(313);plot(t,Dsb_am);grid on;title('调制信号');xlabel('时间(S)');ylabel('幅度(V)');
%%%%%%%%%%%%%%%%%%%
%本地载波恢复
%%%%%%%%%%%%%%%%%%%
Q_Carrier=sin(2*pi*fz/Fs*(1:i));%本地载波
I_Carrier=cos(2*pi*fz/Fs*(1:i));%本地载波
%%%%%%%%%%%%%%%%%%%
%与载波相乘
%%%%%%%%%%%%%%%%%%%
I_sig=Dsb_am.*I_Carrier;%I_s(n)信号
Q_sig=Dsb_am.*Q_Carrier;%Q_s(n)信号
%%%%%%%%%%%%%%%%%%%
%50K的低通滤波器的参数(FIR),在50k处衰减3dB
%%%%%%%%%%%%%%%%%%%
b2=[ -0.00106922746866,-0.006075550546223,-0.007384066670327, ...
-0.01052472923662, -0.01204471419927, -0.01133837646302,-0.007173132971803, ...
0.00124885770863, 0.01421859098232, 0.03131749663963, 0.05136128801581, 0.07250241184686, ...
0.09245525890349, 0.1088536253853, 0.1196360034084, 0.1233945655916, 0.1196360034084,...
0.1088536253853, 0.09245525890349, 0.07250241184686, 0.05136128801581, 0.03131749663963, ...
0.01421859098232, 0.00124885770863, -0.007173132971803, -0.01133837646302, -0.01204471419927,...
-0.01052472923662, -0.007384066670327,-0.006075550546223, -0.00106922746866];
%%%%%%%%%%%%%%%%%%%
%得到滤波后的IQ信号
%%%%%%%%%%%%%%%%%%%
sI1 = filter(b2,1,I_sig);%I(n)
sQ1 = filter(b2,1,Q_sig);%Q(n)
%%%%%%%%%%%%%%%%%%%
%解调算法
%%%%%%%%%%%%%%%%%%%
demo=2*sqrt(sI1.*sI1+sQ1.*sQ1);
%%%%%%%%%%%%%%%%%%%
%解调输出
%%%%%%%%%%%%%%%%%%%
figure;
plot(t,Mod_Sig,t,Dsb_am,t,demo);
grid on;title('基带信号,am调制信号,解调信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('基带','调制信号','解调信号');

  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%FM调制解调系统
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clf;
close all
Fs=800000;%采样频率800k
fz=80000;%载波频率80k
fj=1000;%基波频率1k
i=4096;%采样点数
A=1;%幅度
Kf=0.2;%调频灵敏度
t=(1:i)/Fs;%时间
tf=(1:i-1)/Fs;%时间
f=((1:i)-1)*Fs/i; %换算成实际的频率值
tz=1; %时间向量精度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%产生信号(基波)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Mod_Sig_c=A*cos(2*pi*fj/Fs*(1:i));%基波cos,[M(t)]
%画图基带信号
subplot(311);plot(t,Mod_Sig_c);title('基带信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('基带');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%载波信号(载波)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Carrier_c=cos(2*pi*fz/Fs*(1:i));%载波cos
%画载波
subplot(312);plot(t(1:300),Carrier_c(1:300));title('载波信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('载波');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%对基波积分
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
int_m(1)=0; %对m_fun积分
for p=1:length(1:i)-1
int_m(p+1)=int_m(p)+Mod_Sig_c(p)*tz;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%产生FM调制信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SFm_c=A*cos(2*pi*fz/Fs*(1:i)+int_m*Kf+1/2*pi);%FM调制信号 ,1/2*pi为频偏,但实际意义不大
SFm=awgn(SFm_c,0.00000022);
%画调制信号
subplot(313);plot(t,SFm);title('调制信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('调制信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%对调制信号做FFT,FFT的频率和幅值的计算,并画图显示
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ff_SFm=fft(SFm);%快速傅里叶变换
ff_SFm_abs=abs(ff_SFm);%取模值
ff_SFm_range=ff_SFm_abs/(i/2); %换算成实际的幅度
ff_SFm_range(1)=ff_SFm_abs(1)/i;%换算直流分量
figure;plot(f(1:i/2),ff_SFm_range(1:i/2));title('FM的频谱');xlabel('频率(Hz)');ylabel('幅度(V)');grid on;legend('FM的频谱');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%解调过程
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Q_Carrier=sin(2*pi*fz/Fs*(1:i));%本地载波恢复
I_Carrier=cos(2*pi*fz/Fs*(1:i));%本地载波恢复
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%得到IQ信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SigI=SFm.*I_Carrier;%I_s(n)信号
SigQ=SFm.*Q_Carrier;%Q_s(n)信号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%低通滤波器50k衰减3db的系数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
lpf50k=[ -0.00106922746866,-0.006075550546223,-0.007384066670327, -0.01052472923662, -0.01204471419927,...
-0.01133837646302,-0.007173132971803, 0.00124885770863, 0.01421859098232, 0.03131749663963, 0.05136128801581,...
0.07250241184686, 0.09245525890349, 0.1088536253853, 0.1196360034084, 0.1233945655916, 0.1196360034084, ...
0.1088536253853, 0.09245525890349, 0.07250241184686, 0.05136128801581, 0.03131749663963, 0.01421859098232, ...
0.00124885770863, -0.007173132971803, -0.01133837646302, -0.01204471419927, -0.01052472923662, ...
-0.007384066670327,-0.006075550546223, -0.00106922746866];
%IQ信号分别通过低通滤波器
FsigI=filter(lpf50k,1,SigI);%I(n)
FsigQ=filter(lpf50k,1,SigQ);%Q(n)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%解调算法%Q(n)I(n-1)-I(n)Q(n-1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for w=1:i-1
demo(w)=FsigI(w+1).*FsigQ(w)-FsigI(w).*FsigQ(w+1);
end
% demo=atan2(FsigQ,FsigI);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%幅度调整由公式1-12可知,因为A=1,Kf=0.2,所以1/C=20
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
demod=20*(demo); figure;plot(t,Mod_Sig_c,tf,demod);grid on;title('FM的解调');xlabel('时间(s)');ylabel('幅度(V)');grid on;legend('基带信号','解调信号');

  

matalb 产生信号源 AM调制解调 FM调制解调的更多相关文章

  1. 通信原理实践(三)——FM调制

    一.FM调制 1.代码如下: clc,clear; fm = ; % 调制信号频率(Hz) Am = 0.5; % 调制信号幅度 fc = 5e3; % 载波频率(Hz) Ac = ; % 载波幅度 ...

  2. 基于FPGA的通信信号源的设计

    通信信号源设计原理 通过设计一个DDS信号源,然后将该信号作为载波信号,再对基带信号进行2ASK.2FSK.2PSK.2DPSK调制,进而产生多种通信信号. 设计框图如下: 将PN序列进行2ASK.2 ...

  3. 【5集iCore3_ADP演示视频】5-5 iCore3应用开发平台示波器和信号源校准

    iCore3双核心应用开发平台基于iCore3双核心板,包含ARM.FPGA.7寸液晶屏.双通道数字示波器.任意波发生器.电压表等模块,是一款专为电子爱好者设计的综合性电子学习系统. [视频简介]本视 ...

  4. 总结:PyQt5自定义信号源

    定义一个信号源有4个方面要注意: 1.定义信号源 A = pyqtSignal([str], [int,str]) 这里特别使用信号源重载的情况加以说明.如上就是信号源A的重载,一个可以发送str参数 ...

  5. loto仪器_如何模拟输出凸轮轴和曲轴波形_用任意波形信号源SIG852?

    loto仪器_如何模拟输出凸轮轴和曲轴波形_用任意波形信号源SIG852? 在汽车传感器的波形检测应用中,有时候需要模拟各种汽车传感器的输出信号,用来驱动和监测对应的执行机构或者电路是否正常,这其中, ...

  6. Flask信号源码流程

    1. appcontext_pushed = _signals.signal('appcontext-pushed'# 请求app上下文push时执行 return RequestContext(se ...

  7. 通信原理实践(四)——模拟通信系统性能分析

    一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入 ...

  8. Python在信号与系统(1)——Hilbert兑换,Hilbert在国家统计局的包络检测应用,FIR_LPF滤波器设计,格鲁吉亚也迫使高FM(PM)调制

    谢谢董老师,董老师是个好老师. 心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背只是,还是放放吧. 近期厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一 ...

  9. DVB-C系统中QAM调制与解调仿真

    本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对&q ...

随机推荐

  1. Python之进程 3 - 进程池和multiprocess.Poll

    一.为什么要有进程池? 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗 ...

  2. IBM X3650 M5服务器RAID阵列设置

    生产环境中的raid配置说明: 一. 开机后,注意引导界面,按F1键进入BIOS进行设置 二. 进入BIOS后,选择system setting--storage ,进入磁盘阵列配置界面,可以看到M5 ...

  3. Flume配置Replicating Channel Selector

    1 官网内容 上面的配置是r1获取到的内容会同时复制到c1 c2 c3 三个channel里面 2 详细配置信息 # Name the components on this agent a1.sour ...

  4. JSR

    JSR是Java Specification Requests的缩写,意思是Java 规范提案.是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求.任何人 ...

  5. retrofit动态代理

    https://blog.csdn.net/dalong3976/article/details/83479816

  6. Zookeeper学习笔记3

    客户端的操作 zkCli.sh 官方文档 ls / [zookeeper] get / cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = ...

  7. Delphi 的 FireDAC 连接管理与配置过程

    Delphi 的 FireDAC 连接管理与配置过程: 使用 FireDAC 技术连接 数据库,主要是使用  TFDConnection ,其中有一参数是选择  ConnectionDefFile. ...

  8. C++ 读取字符串中的数字

    今天真是试了各种方法,笨方法聪明方法都有了 方法1:一个字符一个字符的读取 方法2:借助strtok实现split 适用于char 方法3:借助istringstream实现split 适用于stri ...

  9. Git学习笔记06-版本回退

    在实际中,向版本库提交多次后,几千行代码肯定不记得每次都改了什么,可以使用git log来查看提交日志.也就是git commit -m 后面填写的这部分内容 ​ 也可以使用git log --pre ...

  10. 使用chttpfile的一个错误

    先贴一部分代码 CString strHttpName="http://localhost/TestReg/RegForm.aspx"; // 需要提交数据的页面 CString ...