- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通信原理综合试验报告
实验十九 通信原理综合实验 -BPSK调制解调
【设计要求】
设计2PSK调制解调器。
设计环境:
设计指标:
BPSK调制载波由信号 发生器参数,数据信号由微机参数,两个信号不同步。
载波信号幅度Vpp=2V,标称频率100Hz,误差10%
PLL入锁频率范围10Hz
跟踪范围20Hz
数据信号速率5 baud,0/1方波。
【系统设计】
总体设计
根据系统设计指标,设计系统框图如下:
调制系统由乘法器构成。硬件信号发生器产生的载波信号与本地信号发生器产生的调制信号构成。
其中:为载波频率,为载波初始相位。
解调系统由载波恢复电路和相干解调器构成。由于BPSK信号中没有载波频率分量,因此,需要进行非线性变换。
为进行系统性能比较,设计一非同步解调参考解调电路。
载波恢复模块设计
载波恢复模块由平方倍频器与分频PLL构成
平方器输出为:
在实际应用中A为缓变量,因此,要滤除直流分量不能用常量减法,只能用高通滤波器,其传递函数为:
PLL电路构成如下:
环路中加入倍频器,锁相输出频率为1/2输入频率。
为使环路得到较好的稳定性,环路滤波器采用一阶滤波器。
根据系统入锁频差要求大约在10~20Hz之间。(选10Hz)
由于BPSK信号的相位为阶跃函数,为保证跟踪锁相环开环增益在保证环路稳定的条件下取较大值,开环增益中起主要作用的VCO增益取5000Hz/V。
解调电路设计
解调电路由乘法器与低通滤波器构成。为保证低频数字信号的波形,采用通带平坦型2阶BUTTER低通滤波器,使通带内的相移较小。
截止频率20Hz
采集卡驱动程序设计
MATLAB用S函数编写硬件接口,S函数在MATLAB中的调用过程为
根据接口定义与要求,驱动程序由下列程序构成:
test_matlab.cpp:
/* $Revision: 1.3 $ */
// Automatically generated by MATLAB Project Wizard version 1.0
/*
* Based on sfuntmpl_basic.c: Basic C template for a level 2 S-function.
*
* -------------------------------------------------------------------------
* | See matlabroot/simulink/src/sfuntmpl_doc.c for a more detailed template |
* -------------------------------------------------------------------------
*
* Copyright 1990-2000 The MathWorks, Inc.
* $Revision: 1.3 $
*/
#include iostream.h
#include math.h
#include windows.h
#include P1202DRV.H
P1202DRV MyDrv;
#ifdef __cplusplus
extern C { // use the C fcn-call standard for all functions
#endif // defined within this scope
/*
* You must specify the S_FUNCTION_NAME as the name of your S-function
* (i.e. replace sfuntmpl_basic with the name of your S-function).
*/
#define S_FUNCTION_LEVEL 2
#define S_FUNCTION_NAME test_matlab
/*
* Need to include simstruc.h for the definition of the SimStruct and
* its associated macro definitions.
*/
#include simstruc.h
/* Error handling
* --------------
*
* You should use the following technique to report errors encountered within
* an S-function:
*
* ssSetErrorStatus(
文档评论(0)