DSTFT的FSK通信系统建模仿真及DSP代码生成

来源:本站
导读:目前正在解读《DSTFT的FSK通信系统建模仿真及DSP代码生成》的相关信息,《DSTFT的FSK通信系统建模仿真及DSP代码生成》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《DSTFT的FSK通信系统建模仿真及DSP代码生成》的详细说明。
简介:利用MATLAB中的Simulink工具箱对基于DSTFT(Discrete ShortTime Fourier Transform,离散短时傅里叶变换)的FSK通信系统进行建模仿真;并通过MATLAB与DSP目标板的接口设置,在MATLAB操作平台上直接产生其DSP代码程序。

引言

数字信号处理技术在最近20年获得了广泛的应用。数字信号处理器(DSP)是这项技术的核心,其中,可编程的DSP可以将性能很好的信号处理算法方便地应用到实时信号处理中。在DSP软件设计的整个过程中,编程者常常要花费大量的时间编写程序,而随着DSP处理性能的飞速提高,用户要求产品的研制周期越来越短。

为了缩短整个DSP软件设计的开发周期,MathWorks公司和TI公司联合开发了MATLAB Link for CCS Development Tools和Embedded Target for the TI Platform工具包。利用这两者,可以由MATLAB的Simulink模型直接生成DSP可执行代码,即在集成的、统一的MATLAB环境下完成DSP开发的整个过程,大大缩短了DSP软件设计的开发周期[1-5]。

因此,在为通信系统开发和应用一些算法时,可以利用MATLAB强大的分析、计算和可视化的功能。先用MATLAB对通信系统进行建模仿真,当仿真结果达到设计要求时,再将其通过相关的工具包直接由仿真模型生成DSP程序代码。这种方法彻底改变了以往的DSP设计方法,开发人员能够在MATLAB下完成DSP软件开发的全部过程。这不但为熟悉MATLAB并开始DSP设计的初学者提供了快速设计DSP的捷径,而且对利用MATLAB专门研究算法并关心其可实现性的算法研究分析人员来说,这也可以让他们立刻验证算法在实际DSP系统上的可行性。

本文通过设计基于DSTFT的FSK通信系统,来验证MATLAB模型DSP程序代码直接生成的可行性。首先,利用MATLAB中的Simulink工具箱对其进行建模仿真[6-8] ,然后通过MATLAB Link for CCS Development Tools和Embedded Target for the TI Platform工具包由仿真模型直接生成DSP程序代码,并在实际硬件上运行该程序。

1 FSK调制解调基本原理

FSK是用载波的频率来传送数字信息的,即用所传送的数字信息控制载波的频率。2FSK通信系统结构框图如图1所示。符号“1”对应于载频f1,而符号“0”对应于载频f2(与f1不同的另一载频)的已调波形。数字调频信号的解调方法有很多,比如在时域上的过零检测法、包络检测法、同步检波法,以及在频域上的DSTFT解调[910] 。

DSTFT的FSK通信系统建模仿真及DSP代码生成

图1 2FSK通信系统结构框图

本文采用的是频域上的DSTFT解调方法。为了达到时域上的局部化,在信号傅里叶变换前乘上一个时间有限的窗函数,并假定非平稳信号在分析窗的短时间间隔内是平稳的,通过窗在时间轴上的移动从而使信号逐段进入被分析状态。这样就可以得到信号的一组“局部”频谱,从不同时刻“局部”频谱的差异上,便可以得出信号的时变性。

通过对连续时间信号的采样量化,将它转换成离散时间信号,然后通过离散傅里叶变换(DFT)将时域上的信号转换到频域上来进行分析处理。

对于任何一个N点有限长的序列x(n),其离散傅里叶变换X(k)为:

DSTFT的FSK通信系统建模仿真及DSP代码生成

其中,k=N?fk/fs,N为序列x(n)长度,fk为载波频率,fs为抽样频率。

因此,将FSK信号进行DFT变换,只需要保证其载波频率间隔大于频率分辨率F(F=fs/N),对其载波频率f1、f2所对应的X(k)的值进行比较判决,就可以将已调信号解调出来。

2 MATLAB/Simulink通信系统建模

根据上面描述的FSK调制解调基本原理,可以使用MATLAB中的Simulink工具箱对整个系统进行建模仿真。Simulink是用来建模、分析和仿真各种动态系统的交互环境,包括连续系统、离散系统和混杂系统。通过Simulink提供的丰富的功能块,用户可以迅速创建系统的模型。

DSTFT的FSK通信系统建模仿真及DSP代码生成

图2 Simulink构建的简单FSK通信系统

Simulink构建的简单FSK通信系统如图2所示。图2中主要包括5部分:信源、调制、信道、解调、信宿。Signal Generator模块仿真产生FSK通信系统的信源序列,经过FSK Modulate子系统与两个载波信号模块同时经过键控器Switch产生2FSK调制信号,调制信号经过AWGN信道传输以后,到达接收端进入FSK Demodulate子系统进行离散傅里叶变换,在频域上分析已调信号,并通过判决输出解调信号。

示波器上用于观察各主要节点的信号波形如图3所示。信号波形从上到下分别为:信源序列、FSK调制信号、加噪后的已调信号和DSTFT解调后的信号。可以看出,解调后的信号相比信源序列有一段时延。这是由于解调过程中需要采集一定数目的样点,进行DSTFT计算后判决输出解调信号。

DSTFT的FSK通信系统建模仿真及DSP代码生成

图3 Simulink模型的示波器显示波形

3 MATLAB模型的DSP代码的直接生成

整个Simulink模型搭建完成并通过仿真运行以后,就可以利用MathWorks公司和TI公司联合开发的两个工具包直接产生DSP程序代码,即在集成的、统一的MATLAB环境下完成DSP开发的整个过程。

由Simulink模型直接生成DSP实时代码需要Simulink模型与TI DSPlib库中的模块相连接,这需要根据实际的DSP目标板进行选择。本文使用的是TI公司的DSP 芯片TMS320F2812(简称F2812)。所以与Simulink模型相连接时选择的是TI C2 DSPlib库。这里,使用两块DSP目标板,一块用作FSK调制信号的产生,另一块用于接收FSK信号的解调。发送的FSK信号经过信道传输到达接收端的ADC输入端,经过解调操作后从数字I/O口输出解调信号。整个过程都是在MATLAB操作平台上控制,无需自己编写任何DSP代码程序。

具体连接图如图4所示。图4(a)中,Signal Generator模块产生FSK通信系统的原始数字序列,经过FSK Modulate子系统处理后,两个输出端分别控制DSP的PWM波形的周期和占空比,完成FSK调制过程。实验中采用的信源序列的码率为1 kHz,f1和f2的频率分别为2 kHz和4 kHz。

DSTFT的FSK通信系统建模仿真及DSP代码生成

图4 Simulink模型与TMS320F2812的连接

FSK解调模型与DSP模块的连接如图4(b)所示。将按照图4(a)产生的FSK调制信号从DSP目标板的ADC输入端输入,然后进入FSK Demodulate子系统,采用DSTFT方法进行计算处理,产生FSK解调信号,并从目标板的数字I/O输出端输出。ADC的采样频率设为32 kHz,即一个码元期间取样32个点。采用32点DSTFT计算对已调信号进行解调。

这里所有的操作都是在MATLAB的平台上完成的。编写解调部分核心DSTFT程序,并将其封装到Simulink中的Embedded MATLAB Fuction模块。这样大大降低了整个模型的复杂程度,提高了目标板的效率。

Simulink模型搭建完成以后,通过与DSP目标板相配套的仿真器及MATLAB中的CCSLink工具把MATLAB、TI开发环境(CCS)及硬件DSP连接起来,然后通过Embedded Target for TI Platform将Simulink模型自动生成相应DSP的可执行目标代码。

本文使用的是TI公司的TMS320F2812,通过其提供的SEEDXDSUSB2.0仿真盒将目标板与MATLAB相连接。接着打开先前创建的Simulink模型,通过配置模型中的仿真参数(Simulink Parameters)和RealTime Workshop选项后完成代码产生、编译、链接、加载,并在目标板上运行。

使用模块时还需要设置仿真参数和RealTime Workshop选项。实验中设置的相关参数如表1所列。

表1 仿真参数和RealTime Workshop选项设置

DSTFT的FSK通信系统建模仿真及DSP代码生成

这里的参数设置需要根据实际选用的DSP目标板设定,其他的仿真参数和RealTime Workshop选项可选用默认值。相关的参数设置完成后单击RealTime Workshop面板上的Build按钮,自动完成代码产生、编译、链接、代码加载,并在F2812板上运行该模型。最后,利用示波器观察输出波形,观察到的波形如图5所示。

图5中,从上到下分别为信源数字序列和DSTFT解调信号序列,二者之间有一段的时延。这是因为在解调过程中,

DSTFT的FSK通信系统建模仿真及DSP代码生成

图5 2FSK通信系统实际波形

DSTFT的计算需要采集一定数目的样点后再进行计算判决输出解调信号,实验中采用的是32点DSTFT计算。可以看出,DSP的运行结果与MATLAB的模拟结果是相一致的。

4 结论

通过Simulink工具箱对基于DSTFT的FSK通信系统进行建模仿真,并通过与DSP目标板相配套的仿真器及MATLAB中的CCSLink工具,把MATLAB、TI开发环境(CCS)及硬件DSP连接起来,然后使用Embedded Target for TI Platform将Simulink模型自动生成相应DSP的可执行目标代码。实验表明,利用Simulink构建通信模型及其DSP程序代码直接生成的方法可行。这样大大缩短了整个DSP软件设计开发周期,并为DSP设计的初学者提供了一个快速设计DSP的捷径。

提醒:《DSTFT的FSK通信系统建模仿真及DSP代码生成》最后刷新时间 2024-03-14 00:57:23,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《DSTFT的FSK通信系统建模仿真及DSP代码生成》该内容的真实性请自行鉴别。