%%%%%%%%%%%%%%%%%%%%%%%%%%%
%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. JavaScript面试技巧(三):开发环境、运行环境

    一.开发环境 1 介绍 2.IDE 3 .git - 4.模块化 - AMD CommonJS 5.构建工具 安装nodejs 安装webpack 配置webpack 使用jquery 压缩JS 6. ...

  2. JQ中的 offsetTop 和 offset().top 的区别

    话不多说先上图: offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图 document高度超过window,浏览器出现滚动条,滚动滚动条,提交按钮的of ...

  3. java包装类型的坑

    开发中有遇到Long类型比较是否相等,比如Long A和Long B判断是否相等,当时习惯性的直接A==B: 自测的话确实么有问题,但是测试那边测试就有问题,当时郁闷了一下然后换成了A.equals( ...

  4. python小练习---TCP客户端

    这是python黑帽子上的起始练习,我对其中的用到的函数做了注释,以便日后便于理解. 该程序可以访问百度,返回响应信息. 另外,我注释还有一部分UDP客户端的语句,TCP和UDP对比便于记忆. # - ...

  5. SpringBoot+BootStrap多文件上传到本地

    1.application.yml文件配置 # 文件大小 MB必须大写 # maxFileSize 是单个文件大小 # maxRequestSize是设置总上传的数据大小 spring: servle ...

  6. shell编程 之 实践出真知(代码实例)

    1,在任意一个文件夹里,新建10个空文件,文件名为t1.txt-t10.txt ,文件内容分别是11-20 ,就一行,然后把这个10个文件命名成t1.sh-t10.sh. 老司机版: $ for (( ...

  7. Django实战(一)-----用户登录与注册系统5(图片验证码)

    为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码.刷票.论坛 ...

  8. vmware常用命令

    控制台桌面执行快捷键ctrl+alt+f2 可以进入命令行

  9. 获取AWR报告

    1.进入sqlplus [oracle@localhost admin]$ sqlplus / as sysdba SQL Production :: Copyright (c) , , Oracle ...

  10. 2018 codejam kickstart H轮

    被第一题傻逼题卡了很久……好的我也是个傻逼 倒在了最后一题 本来以为小数据过了就能过大数据 结果下载了大数据 发现怎么输出了好多个零 调代码过程中超时了 结束后重新提交了一下 果然是不通过的 A 题目 ...