当前位置: 首页 > news >正文

matlab仿真 模拟调制(下)

(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真   刘学勇编著第五章内容,有兴趣的读者请阅读原书)

clear all
ts=0.001;
t=0:ts:10-ts;
fs=1/ts;
df=fs/length(t);
msg=randi([-3 3],100,1);
msg1=msg*ones(1,fs/10);
msg2=reshape(msg1.',1,length(t));
Pm=fft(msg2)/fs;
f=-fs/2:df:fs/2-df;
subplot(2,1,1)
plot(f,fftshift(abs(Pm)))
title('消息信号频谱')int_msg(1)=0;%消息信号积分(1)
for ii=1:length(t)-1int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;
endkf=50;
fc=250;%载波频率
Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg);%(2)
Pfm=fft(Sfm)/fs;%FM信号频谱
subplot(2,1,2)
plot(f,fftshift(abs(Pfm)))%画出已调信号频谱
title('FM信号频谱')Pc=sum(abs(Sfm).^2)/length(Sfm)%已调信号功率
Ps=sum(abs(msg2).^2)/length(msg2)%消息信号功率fm=50;
betaf=kf*max(msg)/fm%调制指数
W=2*(betaf+1)*fm%调制信号带宽

 代码中的注释(1)(2)为:

求调频指数的公式为:kf*Amax/fm,其中的Amax是振幅的最大值,这里可以理解为消息序列的最大绝对值

clear all
ts=0.001;
t=0:ts:5-ts;
fs=1/ts;
df=fs/length(t);
msg=randi([-3,3],10,1);
msg1=msg*ones(1,fs/2);
msg2=reshape(msg1.',1,length(t));
subplot(3,1,1)
plot(t,msg2)
title('消息信号')int_msg(1)=0;
for ii=1:length(t)-1int_msg(ii+1)=int_msg(ii)+msg2(ii)*ts;%调制信号中的对消息序列进行积分的部分
endkf=50;
fc=300;3
Sfm=cos(2*pi*fc*t+2*pi*kf*int_msg);%构建fm信号phase=angle(hilbert(Sfm).*exp(-j*2*pi*fc*t));%FM调制信号相位(1)
phi=unwrap(phase);%为了恢复相位,需要将相位卷绕解开
%unwrap函数的作用将相位信息进行平滑处理,使其在整个信号范围内保持连续性。dem=(1/(2*pi*kf)*diff(phi)/ts);%求相位微分,得到消息信号
dem(length(t))=0;
subplot(3,1,2)
plot(t,dem);
title('无噪声的解调信号')
y1=awgn(Sfm,20,'measured');%调制信号通过AWGN信道
y1(find(y1>1))=1;%调制信号限幅,限幅是为了减少寄生条幅的出现,提高信号的准确性
y1(find(y1<-1))=-1;
phase1=angle(hilbert(y1).*exp(-j*2*pi*fc*t));%信号解调
phi1=unwrap(phase1);
dem1=(1/(2*pi*kf)*diff(phi1)/ts);
dem1(length(t))=0;
subplot(3,1,3)
plot(t,dem1);
title('信噪比为20dB时的解调信号')

(1):在求FM信号相位的过程中

因为复包络取相位就是信号的相位分量

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 总结——TI_音频信号分析仪
  • Golang | Leetcode Golang题解之第260题只出现一次的数字III
  • Llama 3.1要来啦?!测试性能战胜GPT-4o
  • Docker+consul容器服务的更新与发现
  • Ubuntu 22.04安装Visual Studio Code(VS Code)配置C++,Python
  • 【故障排除】Unity在编辑器模式下Play时闪退
  • C++STL详解(一)——string类的接口详解(下)
  • 北醒单点激光雷达更改id和波特率以及Ubuntu20.04下CAN驱动
  • SQL中的函数
  • [k8s源码]7.indexer
  • 设计模式13-单件模式
  • OS Copilot初体验的感受与心得
  • Boost搜索引擎:如何建立 用户搜索内容 与 网页文件内容 之间的关系
  • 某某物联rabbitmqhttp二轮充电桩协议充电协议对接
  • 【.NET】asp.net core 程序重启容器后redis无法连接,连接超时
  • 网络传输文件的问题
  • JAVA_NIO系列——Channel和Buffer详解
  • ReactNativeweexDeviceOne对比
  • vue--为什么data属性必须是一个函数
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里研究院入选中国企业智库系统影响力榜
  • 程序员最讨厌的9句话,你可有补充?
  • 创建一个Struts2项目maven 方式
  • 分布式熔断降级平台aegis
  • 给初学者:JavaScript 中数组操作注意点
  • 开源地图数据可视化库——mapnik
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前嗅ForeSpider教程:创建模板
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用API自动生成工具优化前端工作流
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一道闭包题引发的思考
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • FaaS 的简单实践
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (Matlab)使用竞争神经网络实现数据聚类
  • (苍穹外卖)day03菜品管理
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (四)汇编语言——简单程序
  • (五)activiti-modeler 编辑器初步优化
  • (一)appium-desktop定位元素原理
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .Net Core和.Net Standard直观理解
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET导入Excel数据
  • .Net多线程Threading相关详解
  • .NET正则基础之——正则委托
  • /dev下添加设备节点的方法步骤(通过device_create)
  • ::