matalb 产生信号源 AM调制解调 FM调制解调
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%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调制解调的更多相关文章
- 通信原理实践(三)——FM调制
一.FM调制 1.代码如下: clc,clear; fm = ; % 调制信号频率(Hz) Am = 0.5; % 调制信号幅度 fc = 5e3; % 载波频率(Hz) Ac = ; % 载波幅度 ...
- 基于FPGA的通信信号源的设计
通信信号源设计原理 通过设计一个DDS信号源,然后将该信号作为载波信号,再对基带信号进行2ASK.2FSK.2PSK.2DPSK调制,进而产生多种通信信号. 设计框图如下: 将PN序列进行2ASK.2 ...
- 【5集iCore3_ADP演示视频】5-5 iCore3应用开发平台示波器和信号源校准
iCore3双核心应用开发平台基于iCore3双核心板,包含ARM.FPGA.7寸液晶屏.双通道数字示波器.任意波发生器.电压表等模块,是一款专为电子爱好者设计的综合性电子学习系统. [视频简介]本视 ...
- 总结:PyQt5自定义信号源
定义一个信号源有4个方面要注意: 1.定义信号源 A = pyqtSignal([str], [int,str]) 这里特别使用信号源重载的情况加以说明.如上就是信号源A的重载,一个可以发送str参数 ...
- loto仪器_如何模拟输出凸轮轴和曲轴波形_用任意波形信号源SIG852?
loto仪器_如何模拟输出凸轮轴和曲轴波形_用任意波形信号源SIG852? 在汽车传感器的波形检测应用中,有时候需要模拟各种汽车传感器的输出信号,用来驱动和监测对应的执行机构或者电路是否正常,这其中, ...
- Flask信号源码流程
1. appcontext_pushed = _signals.signal('appcontext-pushed'# 请求app上下文push时执行 return RequestContext(se ...
- 通信原理实践(四)——模拟通信系统性能分析
一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入 ...
- Python在信号与系统(1)——Hilbert兑换,Hilbert在国家统计局的包络检测应用,FIR_LPF滤波器设计,格鲁吉亚也迫使高FM(PM)调制
谢谢董老师,董老师是个好老师. 心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背只是,还是放放吧. 近期厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一 ...
- DVB-C系统中QAM调制与解调仿真
本文简单记录一下自己学习<通信原理>的时候调试的一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序.自己一直是研究"信源"方面的东西,所以对&q ...
随机推荐
- Ubuntu 使用 Android Studio 编译 TensorFlow android demo
https://www.cnblogs.com/dyufei/p/8028218.html https://www.myboxlab.com/topic/detail/714ca2d405414f13 ...
- [ASP.net教程]IIS服务器 远程发布(Web Deploy)配置
asp.net 网站有三种常用的发布方式:分别是拷贝开发机上发布好的文件到服务器硬盘上.打包成安装程序到服务器上安装.通过Visual Studio 开发平台远程发布到服务器. 在asp.net网站的 ...
- jmeter 压力测试(一)一个简单的登录
写在最前面,之所以记录这个最最简单的http的登录,是因为捣鼓了一天,真的是找错也找不错了,后来请教的同事,重新写了一个ok了,最后发现竟然是因为[http信息头]写的有问题,简直是!!醉了 如下,这 ...
- Django REST Framework API Guide 05
本节大纲 1.Serializer fields 2.Serializer relations Serializer fields 1.serializer 字段定义在fields.py文件内 2.导 ...
- lateinit 的使用限制
呢?使用lateinit关键字 lateinit var test:String //正确lateinit val test:String //错误lateinit var test:Float // ...
- 转:Java项目开发规范参考
Java项目开发规范参考 - KevinLee的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/u011383131/article/details/51227860 ...
- Django学习手册 - 登录验证码
生成验证码函数 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter _letter_cases = " ...
- 手写代码注意点--java.util.Stack相关
1-Stack的基本函数为: 注意: 取栈顶的函数为peek(),不是top()... 测试stack是否为空的函数为empty(),不是isEmpty()...
- MySQL主从复制报错1594处理【转】
一.问题描述 Mysql主从复制模式中,slave上报错 “relay log read failure”,导致主从同步停止. mysql> show slave status\G ****** ...
- hibernate框架学习第一天:hibernate介绍及基本操作
框架辅助开发者进行开发,半成品软件,开发者与框架进行合作开发 Hibernate3Hibernate是一种基于Java的轻量级的ORM框架 基于Java:底层实现是Java语言,可以脱离WEB,在纯J ...