一种基于FPGA产生多频率的方法

申请号 CN201510769933.1 申请日 2015-11-12 公开(公告)号 CN105281672A 公开(公告)日 2016-01-27
申请人 北京讯风光通信技术开发有限责任公司; 发明人 赵文涛; 蔡连峰;
摘要 本 发明 公开了一种基于FPGA产生多个 频率 信号 的方法。该方法包括以下步骤:a、在FPGA内配置一个多口ROM,在所述ROM内置入基频的量化数据,所述量化数据根据 正弦波 sin(ωt)获得,其中ω为基频信号的 角 频率,t为时间;b、根据所需要的输出频率,使用不同的步幅从所述ROM中读出数据,输出基频或倍频。本发明中,简化了电话呼叫过程中的常用不同频率的声音的产生,节约了FPGA资源,提高了 存储器 的资源配置利用率。
权利要求

1.一种基于FPGA产生多频率的方法,其特征在于,该方法包括以下步骤:
a、在FPGA内独立安装一个ROM,将所述ROM内置入音频数据,所述音频数据根据正弦波倍频sin(nωt)获得,其中ω为基频,t为时间,n为倍频数;
b、ROM接收音源发送的声音频率,所述ROM根据声音频率匹配输出基频或倍频。
2.如权利要求1所述的方法,其特征在于,所述步骤b具体包括:所述ROM根据声音频率中的倍频数与音频数据进行匹配,读取并输出匹配后的基频或倍频。
3.如权利要求1所述的方法,其特征在于,所述ROM包含多个输出端,每个输出端对应输出一种基频或倍频。
4.如权利要求1所述的方法,其特征在于,所述正弦波倍频sin(nωt)是使用工作时钟采样基频正弦波得到一组数据,将这些数据间隔循环输出并交替变换符号得到。

说明书全文

一种基于FPGA产生多频率的方法

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种基于FPGA产生多频率的方法。

背景技术

[0002] 可编程阵列(FPGA,Field-Programmable Gate Array),用于各种软硬件的控制与处理,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,其解决了定制电路的不足,克服了原有可编程器件门电路数有限的缺点。只读存储器(ROM,Read-Only Memory),是一种只能读出事先所存数据的固态半导体存储器,常用于存储各种固定程序和数据。脉冲编码调制(PCM,pulse code modulation)是通过对连续变化的模拟信号进行抽样、量化和编码产生数字信号的过程,由PCM设备处理产生。
[0003] 随着通信技术的飞速发展,电话的使用非常普及。在电话呼叫过程中,需要有不同的声音来表示呼叫过程的不同状态,传统设计方法是每种声音使用一个音源,这样需要比较多的资源来处理多种声音。在FPGA设计中占用太多的资源会增加比较大的成本,导致FPGA资源产生有限的问题。
[0004] 在电话呼叫过程的状态设计方面,通常是采用产生多频率的方式来表示多种声源,当多个频率占用多个ROM时,此时就要考虑所用FPGA芯片资源问题,计算FPGA片内资源利用率,然而此时存储器资源配置利用率不高不是因为本身存储量不够大,而是因为占用的ROM过多,资源没有得到充分的利用。因此需要实现如何使用比较少的资源来实现呼叫过程中声音产生的目的。

发明内容

[0005] 本发明提供了一种基于FPGA产生多频率的方法,简化了电话呼叫过程中的常用不同频率的声音的产生,节约了FPGA资源,提高了存储器的资源配置利用率。
[0006] 本发明的目的是通过以下技术方案实现的:
[0007] 一种基于FPGA产生多频率的方法,其特征在于,该方法包括以下步骤:
[0008] a、在FPGA内独立安装一个ROM,将所述ROM内置入音频数据,所述音频数据根据正弦波倍频sin(nωt)获得,其中ω为基频,t为时间,n为倍频数;
[0009] b、ROM接收音源发送的声音频率,所述ROM根据声音频率匹配输出基频或倍频。
[0010] 所述步骤b具体包括:所述ROM根据声音频率中的倍频数与音频数据进行匹配,读取并输出匹配后的基频或倍频。
[0011] 所述ROM包含多个输出端,每个输出端对应输出一种基频或倍频。
[0012] 所述正弦波倍频sin(nωt)是根据PCM数据频率采样50Hz正弦波得到多个数据,将多个数据循环输出并交替变换符号得到。
[0013] 与现有技术相比,本发明实施例至少具有以下优点:
[0014] 本发明实施例中,通过根据PCM数据频率采样50Hz正弦波得到多个数据,将多个数据循环输出并交替变换符号得到正弦波倍频sin(nωt),当ROM接收音源发送的声音频率后,ROM根据倍频数从存储在音频数据中的sin(nωt)匹配输出基频或倍频,即使用一个ROM产生多个频率,从而降低了ROM在FPGA中的占用率,解决了FPGA资源有限的问题。附图说明
[0015] 图1为本发明实施例提供的一种基于FPGA产生多频率的方法的流程框图
[0016] 图2为本发明实施例提供的一种基于FPGA产生多频率的方法的原理示意图。

具体实施方式

[0017] 下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0018] 如图1-图2所示,为本发明实施例提出的一种基于FPGA产生多频率的方法,其特征在于,该方法包括以下步骤:
[0019] a、在FPGA内独立安装一个ROM,将ROM内置入音频数据,音频数据根据正弦波倍频sin(nωt)获得,其中ω为基频,t为时间,n为倍频数;
[0020] b、ROM接收音源发送的声音频率,ROM根据声音频率匹配输出基频或倍频。
[0021] 进一步的,步骤b具体包括:ROM根据声音频率中的倍频数与音频数据进行匹配,读取并输出匹配后的基频或倍频。
[0022] 正弦波倍频sin(nωt)是根据PCM数据频率采样50Hz正弦波得到多个数据,将多个数据循环输出并交替变换符号得到。在发明过程中,通过对各个声音的频率进行分析发现它们都是50Hz的倍数,考虑到用50Hz的时钟倍频来产生不同的频率,根据PCM数据频率为8K,50Hz时钟产生的方法是用8KHz采样50Hz正弦波得到80个数据,将这80个数据循环输出,并且交替变换符号,即产生出sin(nωt)函数式,根据正弦波倍频表达式sin(nωt),可以看到,如果音源发送的声音频率倍频到n,那么只需要从存储在ROM中的音频数据中每n个数取一个即可,这样从一组数据中就可以产生各个不同的频率。
[0023] 通过上述描述,本发明实际只利用一个ROM,只不过该ROM包含多个输出端,且每个输出端对应输出一种基频或倍频。
[0024] 与现有技术相比,本发明实施例具有以下优点:
[0025] 通过本发明实施例的技术方案,通过根据PCM数据频率采样50Hz正弦波得到多个数据,将多个数据循环输出并交替变换符号得到正弦波倍频sin(nωt),当ROM接收音源发送的声音频率后,ROM根据倍频数从存储在音频数据中的sin(nωt)匹配输出基频或倍频,即使用一个ROM产生多个频率,从而降低了ROM在FPGA中的占用率,解决了FPGA资源有限的问题。
[0026] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
QQ群二维码
意见反馈