求vhdl语言输出活动入50MHz得到输出为8HZ的频率信号的分频器代码

目前.数字调制正逐渐取代模拟调制。许多调制都使用多进制数字调制.四进制数字相位调制是利用载波的4种不同相位来表征数字信息调制的.相位调制具有误码性能好,节省带宽。信息传输速率高等优点。采用Altera的开发工具MAX+plusII设计调制器便于仿真,它可根据仿真结果分析电路是否正确。提高电路设计的灵活性和准确性。利用VHDL硬件描述语言来描述硬件电路的功能。根据信号连接关系及定时关系的语言能有效表示硬件电路特性。

移相键控即受键控的载波相位调制是按基带脉冲改变的一种数字调制方式。其中,四相移相键控制(4PSK)的应用广泛,它是用4种不同相位代表4种不同相位的信息,因此对于输入的二进制数字序列应该先分组,将每两个比特编为一组;然后用4种不同的相位对其表征。例如,若输入的二进制数字信息序列为…,则可将他们分成10,11,00,10,…,然后用4种不同的相位对其表征。该系统设计采用相位选择法产生4PSK信号,以实现4PSK调制器的设计。其框图如图1所示。

    采用相位选择法实现4PSK调制器,其系统设计框图如图2所示。整个系统分为分频器、m序列产生器、串,并转换电路、跳变检测、逻辑选相电路、正弦信号发生器和D/A转换器等部分。
序列以其具有随机特性、预先可确定性、循环特性而广泛应用于通信领域。该调制系统的输入是采用4级移位寄存器得到的一串长度为24一1=15的m序列。设4个移位寄存器的输出排列依次为m(0),m(1),m(2),m(3),则m序列的反馈逻辑H}为m(O)=m(3)0m(2)。如果根据该反馈逻辑,运行过程中则进入死循环,无法自启动。需将状态0000转换为1000。此时,能自启动的反馈逻辑为:

串/并转换器可将m序列中的奇数码与偶数码分离,变成奇偶分列、时序一致的码序列。串/并转换电路由奇数码和偶数码两部分提取电路组成,采用奇数码提取电路时,奇数码元延迟一个码元时间,以达到与偶数码元同时输出。为此,奇数码提取电路由两级移位寄存器组成,分别是同相时钟触发和反相时钟触发。然而偶数码提取电路是一个一级移位寄存器.为了与奇数码提取电路同步,则采用反向时钟触发。因此.通过串/并转换后的码元速率变成原来的50%。串/并转换电路框图如图4所示。

    图5为串/并转换电路的仿真结果。c为由c(0)和c(1)二进制数字码元组成的双比特码元;code为m序列;coderate为码元速率。

3.3 正弦信号发生器
   
该调制系统以连续的模拟信号正弦波作为载波。该模拟信号在数字通信系统中传输,需经过抽样、量化、编码转换成数字信号。
    根据抽样定理对采样点处得到的采样值进行5位量化,5位二进制码元的变化范围为00000~11111,即从0~31。若选中间值15作为1/2峰峰值,考虑到波峰与波谷的对称性,所以选择O作为正弦波形的波谷值,30作为波峰值。各采样点的采样值为:

式中:Va/ue为采样值;n为所采样的16个点中的一个,式(2)中加1是为了避免Value值出现负值。
    图6为VHDL语言产生正弦波的仿真波形。其中,一个周期内有16个采样点,countl6为采样点计数变量;value为采样值变量。
    由于对正弦信号每周期取16个采样点,即正弦波采样点的输出频率应该是m序列的16倍.因此该系统频率需设计2个频率,即正弦波发生器的时钟频率sinclk和码元速率频率coderate,其中,coderate是由sinclk的16分频,16分频指sinclk有16个时钟上升沿或下降沿触发;coderate只有一个上升沿或下降沿触发。
    设置一个计数变量d8,计数范围0~7,当sinclk每来一个上升沿时,d8加1。当ds=7时,coderate跳变。此时,d8变为0,继续计数。图7为用VHDL语言实现波形的仿真结果。
    在产生正弦波时引入跳变检测,可在每次基带码元上升沿或下降沿到来时,对应输出波形位于sin0°,sin90°,sinl80°或sin270°处。
    串/并转换后的码元c由二进制码元c(0)和c(1)组成。当码元c无变化时。输出的正弦波相位继续按原来的采样顺序采样:当码元c发生变化时,输出的正弦波相位发生变化,此时需要重新选择起始采样点,该起始采样点即在sin0°,sin90°,sinl80°或sin270°处。并与变化的码元起始位置相对应。
    跳变检测器用来检测码元c的变化,只要分别判断c(0)和c(1)中的一个发生变化,就可以判断码元c是否发生变化。图8给出信号跳变检测电路框图。图9为用jump对码元c跳变检测的波形仿真结果。

    逻辑选相电路根据双比特码元c的不同,选择输出不同相位的正弦波,它是从数字信息到波形转换的核心器件,接收端正是根据这些相位来恢复所发送的消息。
    由于不同相位对应不同的起始采样点,而这4种不同的相位可通过不同采样顺序表示。因此,根据双比特码元c选相位,即选择采样的起始点。
16分频得到;code是由m序列产生器产生的m序列:c是由code经过串/并转换后形成的双比特码元;iump用于检测双比特码元c是否发生变化,以使码元c与输出的正弦波形起始点相对应;countl6为正弦波形一个周期的采样点,每个周期采样16个点:data为正弦波形采样点的采样值。

结合相位选择法提出了4PSK调制器的系统设计,利用VHDL语言对该系统硬件描述和设计,由系统总的仿真图可知,该调制系统完全符合设计要求,并选用MAX7000系列中的EPM7032LC44—6进行实现。实验结果表明,利用VHDL语言设计的4PSK调制器具有低误码率的良好特性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。

摘要:直接数字频率合成(DDS)是从相位概念出发直接合成所需要波形的一种新的频率合成技术。其最大优点就是频率切换的速度极快(可达几微秒),并且频率、相位和幅度都可控,输出频率稳定度可达系统时钟的稳定度量级,易于集成化,更主要的是由于计算机参与频率合成,可充分发挥软件的作用。

本系统利用80C51单片机、D/A转换器以及低通滤波器、NS12864液晶显示器设计的直接数字频率合成器,电路设计简单、频率控制灵活,具有良好的实用性,信号精度误差也在允许范围之内。

关键词:直接数字频率合成速度实用性

下载文档原格式(Word原格式,共11页)

FPGA课程设计(最终版)要点

发布时间 : 星期二 文章FPGA课程设计(最终版)要点更新完毕开始阅读

武汉理工大学FPGA应用课程设计

分频系数 32 72 表2-2 各音名对应的分频系数

音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,要控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数。如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。

至于音长的控制,在自动演奏模块,每个乐曲的音符是按地址存放的,播放乐曲时按4HZ的时钟频率依次读取简谱,每个音符持续时间为0.25秒。如果乐谱中某个音符为三拍音长,那又该如何控制呢?其实只要在3个连续地址存放该音符,这时就会发三个0.25秒的音长,即持续了三拍的时间,通过这样一个简单的操作就可以控制音长了。

2.3系统组成及工作原理

整个系统由乐曲自动演奏模块、音调发生器模块和数控分频器模块三个部分组成。乐曲自动演奏模块又包含了键盘的编码,并且设置了一个自动演奏/键盘输入切换auto。乐曲自动演奏模块的作用是产生发声控制输入信号。音调发生器根据发声控制输入产生获得音阶的分频预置值(即分频系数)。数控分频器根据分频预置值对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。系统组成框图如图2-1所示。

武汉理工大学FPGA应用课程设计

自动演奏/按键输入选择32MHz系统时钟数控分频器扬声器 音符显示乐曲自动演奏音调发生器高低音显示 键盘[7:0]图2-1系统组成框图

2.3.2系统工作原理

系统的基准时钟脉冲为32MHz,所以在本设计中需要将其进行分频,以得到所需要的脉冲来发出相应的音符。键盘输入一共有9个按键,除了8个音符对应的按键之外,还设置一个自动演奏/键盘输入切换auto,它不是一个单独的模块,它和其他按键一起包含在乐曲自动演奏模块中,作用相当于一个开关。

当auto=“0”时,选择自动演奏音乐存储器里面的乐曲,自动演奏模块以4Hz的频率输出8位发声控制输入信号,再送入音调发生器。当8位发声控制输入信号中的某一位为高电平时,则对应某一音阶的数值将在端口tone输出,该数值即为该音阶的分频预置值,音调发生器还输出音符显示信号、高低音显示信号。最后由数控分频模块按照音调发生器输出的分频预置值进行分频,得到存储的乐曲的音符的频率,之后由扬声器输出对应的声调。

auto=“1”时,选择键盘输入的信号,8个按键分别对应8个音符,自动演奏模块将按键输入转化为8位发声控制输入信号送入音调发生器,最后通过数控分频模块得到按键对应的音符的频率,之后由扬声器输出对应的声调。

武汉理工大学FPGA应用课程设计

VHDL采用的是自顶向下的设计方式,顶层模块由乐曲自动演奏(automusic),音调发生器(tone)和数控分频器(speaker)三个模块组成。其中乐曲自动演奏部分(automusic)又包括了键盘编码,还设置了一个自动演奏/键盘输入切换auto,即当auto=“0”时,选择自动演奏音乐存储器里面的乐曲,auto=“1”时,选择由键盘输入的信号,再对其进行编码。两种情况下输出的都是八位二进制数,对应音调发生器的输入。图3-1即是顶层模块设计原理图。

图3-1顶层模块设计原理图

3.2乐曲自动演奏模块的设计

为了实现电子琴的功能要求,需要设计一个自动演奏模块,该模块的作用是产生8位发声控制输入index。当auto为“0”或“1”时可以选择自动演奏或者键盘输入,如果auto为“0”,则由存储在此模块中的8位二进制数来作为发声控制输入index,由此便可自动演奏乐曲;当auto为“1”时,则由键盘的输入转化为8位2进制数作为发声控制输入index。此模块的VHDL语言中包括三个进程,首先是对基准脉冲进行分频得到4Hz的脉冲,作为第二个进程的时钟信号,它的目的是控制每个音阶之间的停顿时间,此处便是1/4=0.25s;第二个进程完成自动演奏部分乐曲的地址累加;第3个进程是输出

武汉理工大学FPGA应用课程设计

存储的自动演奏的乐曲或键盘输入的发声控制输入index。乐曲自动演奏模块如图3-2所示。

图3-2乐曲自动演奏模块

3.3音阶发生器模块的设计

音阶发生器的作用是产生获得音阶的分频预置值。当8位发声控制输入index中的某一位为高电平时,则对应某一音阶的数值将以端口tone输出,作为获得该音阶的分频预置值,该值作为数控分频器的输入,来对4MHz的脉冲进行分频,由此得到每个音阶相应的频率,例如输入index=\,即对应的按键是2,产生的分频系数便是6920由code输出对应该音阶简谱的显示数码;由high输出指示音阶高8度的显示,高电平有效。音阶发生器如图3-3所示。

图3-3音阶发生器模块

3.4数控分频器模块的设计

数控分频模块的目的是对基准脉冲分频,得到0,1,2,3,4,5,6,7七个音符对应频率。该模块的VHDL描述中包含了三个进程。首先对32MHz的基准脉冲进行分频得到8MHz


我要回帖

更多关于 语言输出活动 的文章

 

随机推荐