发明内容
为了解决上述问题,本发明提供一种高精度的频率估计方法。
为实现上述发明目的,本发明所采用的技术方案是:
本发明的高精度的频率估计方法,系统启动后,软件根据用户输入决定系统进入相应的处理模块,当用户选择进入配置模式时,用户可以选择单频率估计模式和特定功能配置模式两种模式。
当用户选择单频率估计模式时,用户输入参考频率或者从特定功能模式下存储的频率中选择参考频率,并存储参考频率到系统中;当用户选择特定功能配置模式时,用户输入一组参考频率和对应表示信息并存储于系统配置信息中,用户可以根据实际应用配置多组特定功能,每次开始频率估计时仅有一组特定功能起作用。
当开始频率估计时,如果是单频率估计模式,将以用户输入的参考频率进行高精度频率估计;如果是特定功能频率估计模式,将以该特定功能所配置一组频率分别作为参考频率对输入信号进行频率估计,根据配置的阈值信息输出频率估计信息。
优选的,频率估计信息的方法是对于输入样本将该组所有频率依次用做参考频率 f0,计算输入单音与各个参考频率之差Δf,选输入单音与参考频率最小的|Δf|估计输入单音频率。
相对于现有技术,本发明的高精度的频率估计方法,具有以下有益的技术效果:
1.本发明的高精度频率估计方法,理论上可以达到任意精度。
2.采用数字方式频率估计方法,需要较小的时间复杂度和空间复杂度。
3.幅度无关的单音信号频率估计方法,幅度变化不会影响频率估计的精度。
4.支持两种频率估计模式,包括单频率估计方式和特定功能频率估计模式(多频率同时进行估计模式)。
5.支持模拟输入和数字输入两种信号输入。
具体实施方式
以下结合附图详细描述本发明的高精度的频率估计方法的体系结构,但不构成对本发明的限制。
1.高精度的频率估计方法理论基础
假设输入的单音信号频率为fr,相位为,幅值为Am,则输入单音信号xin可以表示为公式1。对xin乘以互为正交的2个谐波信号得到I和Q两个正交分量(见公式2和公式3),其中f0为进行频率估计的参考频率,一般选取被测单音信号的理想频率。对I和Q进行积化和差转换,得到公式4、5、6,其中Δf为输入单音与参考频率之差。对I和Q正交分量进行低通滤波处理,滤除高频分量后,其输出信号Ilpf和Qlpf如公式7、8所示。取t=nT,其中T是采样周期,则低通滤波器输出的正交分量信号表示为Ilpf(n)和Qlpf(n),即第n个采样时刻的低通滤波器输出的正交分量,表示为公式9、10。由Ilpf(n)和Qlpf(n)表达式可知,第n个采样时刻低通滤波器输出信号的相位θn可以表示为公式11,由公式9和10推出θn可以表示为公式12。根据公式11、12,可以计算相差一个周期T时间的滤波器相位差Δθn,表示为公式13、14。在实际应用中采用多次测量求平均值(数学期望)减少误差的方法,利用公式14和公式15计算出Δθmean。联立公式13和15,可以估计出输入频率fr和参考频率f0之间的频率差Δf(见公式16),进而通过公式17估计输入单音信号频率fr。
由公式1~17可知,单音信号频率fr的估计精度取决于Δf的精度,即取决于Δθmean,而Δθmean取决于低通滤波器输出信号的相位θn的精度。由公式12可知,低通滤波器输出信号的相位θn的精度取决于反正切函数的精度,理论上精度可以达到任意希望精度。
在实际应用过程中,采用数字信号进行单音信号频率估计,与FFT相比在空间复杂度和时间复杂度上具有以下优势。
1)精度
采用FFT方法,其频率精度为(fs为采样频率,N为采样点数),当fs取8000Hz时,频率分辨率要达到约1Hz,需要N=8192,这将大大增加系统的时间复杂度和空间复杂度,降低实时性,而且1Hz的精度并不高。
选用公式1~17的方法,理论上可以达到任意高的精度,且对时间复杂度和空间复杂度影响不大。
2)空间复杂度
采用FFT进行频率估计,需要存储一定数量的输入信号样本。由于其估计精度为,存储的输入信号样本越多其估计精度越高。
而采用公式1~17所述方法,仅需要存储若干个间隔为T时间的样本,即可以实现频率估计,空间复杂度远远小于FFT方法。
3)时间复杂度
采用N点的FFT方法,理论上需要Nlog2N个复数加运算和复数乘运算,为了提高频率分辨率,增大N,将同时增加时间复杂度。
采用公式1~17所述方法,如果选择N阶低通滤波器,其时间复杂度基本在100个乘加运算以内,远远小于FFT方法。
Δf=fr-f0(6)
Δθmean=E(Δθn)(15)
fr=f0+Δf(17)
2.一种高精度的频率估计方法系统设计方案
整个系统主要由信号采集模块,信号处理模块,信号显示和存储模块,配置模块四个部分组成。
1)信号采集模块
主要实现单音信号的采集,支持模拟信号输入采集和数字信号输入采集两种模式,将采集的数据传送给信号处理模块进行频率估计。
2)信号处理模块
信号处理模块读取信号采集模块传送的数据,根据配置模块配置的信息按公式(1~17)的方式进行输入信号的频率估计,首先将输入数字信号利用参考频率进行I和Q两个正交分量(见公式2和公式3)处理,并对正交分量I和Q进行低通滤波,然后求其一周期相位差。多次测量求其相位差的均值,进而高精度的估计输入单音频率,实现高精度的频率估计,并将估计的结果输出到显示和存储模块。
3)信号显示和存储模块
信号显示和存储模块用于存储和显示信号处理模块输出的频率估计结果,根据应用领域不同,该显示和存储模块可以使用不同的形式。
4)配置模块
配置模块主要是对系统功能进行配置工作,主要包括参考频率设置和特定功能配置。采用参考频率设置时,系统根据设置的参考频率进行高精度频率估计。采用特定功能配置等功能时,系统将主要对特定功能所要求的频率进行估计,其方法是对于输入样本将该组所有频率依次用做参考频率f0,计算各自的Δf,选最小|Δf|估计输入单音频率。用户可以根据自己的需求进行特定功能配置。
3.一种高精度的频率估计系统硬件设计方案
根据高精度频率估计系统设计方案,采用所示的硬件设计方案。输入接口主要包括模拟输入接口和数字输入接口两种模式,其中模拟输入接口接收来自线路上或麦克风的单音信号,经AD转化为数字信号,数字接口可以直接接收数字线路上的数字信号,两种输入模式可以通过多路选择开关MUX进行功能选择,通过IO接口输入给处理器。处理器在系统开始工作时首先读取存储器中存储的配置信息,然后进入相应高精度频率估计处理模块对输入的数字信号进行高精度频率估计,处理器可以通过显示接口输出频率估计结果,可以通过存储接口存储估计结果存储器。用户可以通过键盘和触摸屏进行高精度频率估计系统进配置,配置信息存储于系统的存储器中。
4.一种高精度频率估计系统软件设计方案
系统启动后,软件根据用户输入决定系统进入相应的处理模块。当用户选择进入配置模式时,用户可以选择“单频率估计模式”和“特定功能配置模式”两种模式。当用户选择“单频率估计模式”时,用户输入参考频率或者从特定功能模式下存储的频率中选择参考频率(例如在钢琴键音中选择一个调音目标音,例如中央“dou”,用户可以不知道该目标频率的确切值,系统自动提取对应的频率作为参考频率),并存储参考频率到系统中。当用户选择“特定功能配置模式”时,用户输入一组参考频率和对应标识信息(如钢琴按键音与其频率)并存储于系统配置信息中,用户可以根据实际应用配置多组特定功能,每次开始频率估计时仅有一种特定功能起作用。当开始频率估计时,如果是“单频率估计模式”,将以用户输入的参考频率进行高精度频率估计。如果是“特定功能频率估计模式”,将以该特定功能所配置一组频率分别作为参考频率对输入信号进行频率估计,根据配置的阈值信息输出频率估计信息。其方法是对于输入单音将该组所有频率依次用做参考频率f0,计算各自的Δf,选最小|Δf|估计输入单音频率。用户可以根据需要终止频率估计。
上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所作出的等效的变化或修饰,都应涵盖在本发明的保护范围内。