具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部。基于所描述的本公开实施例,本领域普通技术人员在无需创造性劳动的前提下获得的所有其他实施例都属于本公开保护的范围。在以下描述中,一些具体实施例仅用于描述目的,而不应该理解为对本公开有任何限制,而只是本公开实施例的示例。在可能导致对本公开的理解造成混淆时,将省略常规结构或构造。
除非另外定义,本公开实施例使用的技术术语或科学术语应当是本领域技术人员所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似词语并不表示任何顺序、数量或重要性,而只是用于区分不同的组成部分。
下面,将参照附图详细描述根据本公开的各个实施例。需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
图1示出了一种示例的音频信号处理装置的结构示意图。
如图1所示,音频信号处理装置100包括音频信号发送端110、存储器120和音频信号接收端130。
在本公开实施例中,音频信号发送端110发送音频信号到存储器120。存储器120中音频信号以一定的频率被读取到音频信号接收端130。音频信号接收端130可以包括音频转换器和音频设备。通过内置音频总线(Inter IC Sound,12S)将存储器120中音频信号以一定的频率读取到音频转换器中。音频转换器可以为数字模拟转换器(DigitalAnalogueConverter,DAC)。音频转换器将音频信号由数字信号转换成模拟信号,并将模拟信号发送至音频装置。
信号源发送的DP信号包括音频信号和视频信号。DP信号被分解为音频信号和视频信号,音频信号被发送到音频信号发送端110,并由音频信号发送端110经由存储器120,发送到音频信号接收端130。
在音频信号通常被设置在视频信号的视频帧与视频帧之间的非视频区域,将音频信号打包为具有固定数据量的音频数据包并发送该音频数据包。但由于每相邻两个视频帧之间设置的音频数据包的数量不是固定不变的,尤其在音频信号为突发信号burst的情况下,大量的音频数据包会在较短的时间内被一起发送给音频信号接收端130,由此造成DP信号包括的音频信号并不能被连续且稳定地发送到音频信号接收端130。音频信号无法像视频信号以相互约定的固定发送/接收速度完成接收和发送过程。
存储器120可以为先入先出存储器(First-In First-Out,FIFO)。在音频信号的接收和发送过程中,利用FIFO对音频信号进行暂时缓存,使FIFO中缓存的音频信号可以以一定的速率被重新读取,并以固定频率发送给音频信号接收端130。
FIFO可以在一定时间段内提高信号接收与发送过程的稳定性,但是一段时间后,FIFO容易出现上溢overflow或下溢underflow的问题,使得输出音频信号的频率容易产生突变,导致更严重的频率抖动jitter现象。这对音频信号接收端产生负面影响,输出的音频信号也容易出现噪声等问题。
音频信号接收端130的DAC需要提供音频频率相对稳定、变化较小(慢)、频率抖动jitter较小的音频信号,才能使音频设备输出的音频信号声音正常,音质较好且无杂音和顿音等现象。
利用本公开提供的音频信号处理装置,可以基于存储器120的数据存储量对音频信号的输出频率进行追踪,使得在音频信号的整个传输时间段中输出频率和输入频率保持动态一致,防止音频信号出现丢失或者溢出现象。
图2示出了根据本公开实施例的音频信号处理装置的结构示意图。
如图2所示,该实施例的音频信号处理装置200包括参数生成电路210、追踪电路220、信号读取电路230和存储单元240。
参数生成电路210、追踪电路220和信号读取电路230依次电连接。存储单元240的两端分别与参数生成电路210和信号读取电路230电连接。
例如,存储单元240可以为FIFO。FIFO中存储有已经输入的待处理音频信号。
参数生成电路210获取存储单元240中待处理音频信号的数据存储量,并基于数据存储量,生成追踪参数。
例如,FIFO的数据存储量可以通过FIFO的水位线(Water Line,WL)表示。FIFO的水位线与FIFO的深度相关。例如,FIFO的宽度为N位,深度为8。FIFO可以存储8个位宽为N位的数据,N为正整数。在确定FIFO当前存储有4个位宽为N位的待处理音频数据的情况下,水位线为4。
在确定音频信号的输入频率与初始输出频率不相等的情况下,追踪电路220根据追踪参数,对初始输出频率进行追踪,得到目标输出频率。
输入频率为待处理音频信号输入至FIFO的频率,初始输出频率为从FIFO中读取待处理音频信号的频率。初始输出频率可以是通过检测得到的。例如,通过检测电路对输入FIFO的音频信号进行检测,得到音频信号的输入频率,并以该输入频率作为初始输出频率,使得音频信号的初始输出频率与输入频率相同,以确保FIFO的水位线稳定。
初始输出频率还可以是通过计算得到的。例如,参数生成电路210获取音频信号的音频频率信息(M value for Audio,Maud和N value forAudio,Naud)和与音频信号对应的链路符号时钟信号的频率f_LS_Clk,根据音频频率信息和链路符号时钟信号的频率,计算初始输出频率。
例如,根据以下公式(1)计算初始频率fs:
例如,追踪参数可以包括与追踪频率相关的参数,追踪频率可以表征输出频率的变化速度。追踪参数还可以包括与追踪幅度相关的参数,追踪幅度可以表征输出频率的变化幅度。追踪参数还可以包括与追踪方向相关的参数,追踪方向可以表征输出频率的变化方向,例如正向追踪可以增大输出频率,负向追踪可以减小输出频率。
例如,在确定输入频率大于初始输出频率的情况下,追踪电路220根据追踪参数,对初始输出频率进行正向追踪,得到目标输出频率,此时目标输出频率大于初始输出频率。在确定输入频率小于初始输出频率的情况下,追踪电路220根据追踪参数,对初始输出频率进行负向追踪,得到目标输出频率,此时目标输出频率小于初始输出频率。
在本公开实施例中,在确定输入频率大于初始输出频率的情况下,向FIFO中输入待处理音频信号的速率大于从FIFO中读取待处理音频信号的速率,这使得FIFO中存储的待处理音频信号逐渐增多。为避免FIFO中存储的待处理信号过多,导致FIFO出现上溢现象,追踪电路220对初始输出频率进行正向追踪,逐渐增大初始输出频率,得到目标输出频率。信号读取电路230接收来自追踪电路220的目标输出频率,并以目标输出频率,从FIFO中读取音频信号。当信号读取电路230以目标输出频率从FIFO中读取待处理音频信号时,可以确保FIFO中存储的待处理音频信号的数量保持稳定。例如,当信号读取电路230以目标输出频率从FIFO中读取待处理音频信号时,FIFO的水位线进入安全水位线,远离FIFO的上溢水位线和下溢水位线。
在本公开实施例中,在确定输入频率小于初始输出频率的情况下,向FIFO中输入待处理音频信号的速率小于从FIFO中读取待处理音频信号的速率,这使得FIFO中存储的待处理音频信号逐渐减少。为避免FIFO中存储的待处理信号过少,导致FIFO出现下溢现象,追踪电路220对初始输出频率进行负向追踪,逐渐减小初始输出频率,得到目标输出频率。信号读取电路230接收来自追踪电路220的目标输出频率,并以目标输出频率,从FIFO中读取音频信号。当信号读取电路230以目标输出频率从FIFO中读取待处理音频信号时,可以确保FIFO中存储的待处理音频信号的数量保持稳定。
在本公开实施例中,在确定输入频率等于初始输出频率的情况下,向FIFO中输入待处理音频信号的速率等于从FIFO中读取待处理音频信号的速率,这使得FIFO中存储的待处理音频信号可以保持暂时稳定。追踪电路220可以暂不对初始输出频率进行追踪。信号读取电路230接收以初始输出频率,从FIFO中读取音频信号。当信号读取电路230以目标输出频率从FIFO中读取待处理音频信号时,可以确保FIFO中存储的待处理音频信号的数量依然保持稳定。
图3示出了根据本公开另一实施例的音频信号处理装置的结构示意图。
如图3所示,该实施例的音频信号处理装置300包括参数生成电路310、追踪电路320、信号读取电路330、存储单元340、音频信号发送端350和音频信号接收端360。
在本公开实施例中,参数生成电路310、追踪电路320、信号读取电路330、存储单元340分别与前文实施例所述的参数生成电路210、追踪电路220、信号读取电路230和存储单元240。音频信号发送段350和音频信号接收端360分别与前文所述实施例音频信号发送段210和音频信号接收端230类似。为了简明,本公开在此不再赘述。
在本公开实施例中,追踪参数可以包括第一时间间隔和第一变化量。例如,第一时间间隔可以表征输出频率的变化频率,第一变化量可以表征输出频率的变化幅度,通过控制第一时间间隔的值和第一变化量的值,可以确保音频信号的输出频率可以基于第一时间间隔和第一变化量实现持续稳定的变化。
在确定输入频率大于初始输出频率且数据存储量大于第一预设存储量的情况下,追踪电路320基于第一时间间隔,以第一变化量为步长,逐步增大初始输出频率,得到第一输出频率。
例如,数据存储量可以为FIFO中水位线的高低。输入频率为音频信号发送端350将待处理音频信号输入至FIFO的频率。初始输出频率为信号读取电路330从FIFO中初始读取待处理音频的频率。
在确定输入频率大于初始输出频率的情况下,向FIFO中输入待处理音频信号的速率大于从FIFO中读取待处理音频信号的速率,这使得FIFO中存储的待处理音频信号逐渐增多。在确定数据存储量大于第一预设存储量的情况下,FIFO的水位线高于第一预设水位线,这表明当前FIFO中存储的待处理音频信号过多。例如,第一时间间隔可以为50μs,第一变化量可以为0.02Khz。例如追踪电路320以50μs为一次时间间隔,以0.02Khz为步长,逐步增大初始输出频率,得到第一输出频率。
追踪电路320在逐渐增大初始输出频率时,信号读取电路330以每次增大后得到的输出频率实时从FIFO中读取音频信号。
例如,输入频率为48Khz,初始输出频率为47.93Khz,输入频率大于初始输出频率。每隔50μs,追踪电路320将初始输出频率增大0.02Khz。在追踪电路320对初始输出频率进行第一次正向追踪,得到输出频率为47.95Khz。在50μs内,信号读取电路330以47.95Khz实时从FIFO中读取音频信号。
在信号读取电路330以47.95Khz实时从FIFO中读取音频信号50μs后,获取FIFO的当前水位线。在确定FIFO的当前水位线依然大于第一预设水位线的情况下,这表明当前FIFO中存储的待处理音频信号依然过多。追踪电路320再次对输出频率47.95Khz进行第二次正向追踪,得到输出频率为47.97Khz。在50μs内,信号读取电路330以47.97Khz实时从FIFO中读取音频信号。
根据此规律,追踪电路320对输出频率进行多次正向追踪,得到第一输出频率。此时,信号读取电路330以第一输出频率实时从FIFO中读取音频信号后,获取FIFO的当前水位线。在确定FIFO的当前水位线小于第一预设水位线且大于第二预设水位线的情况下,追踪电路320停止对第一输出频率进行追踪。信号读取电路330可以以第一输出频率为目标输出频率,稳定地从FIFO中读取音频信号。
在本公开实施例中,在追踪输出频率的过程中,参数生成电路310还可以基于音频信号的传输特征和数据存储量,更新第一时间间隔和第一变化量,使音频信号的输出频率与更新后的第一时间间隔和更新后的第一变化量适配。追踪电路320可以基于更新后的第一时间间隔,以更新后的第一变化量为步长,阶梯式对初始输出频率进行追踪。
例如,数据存储量为FIFO中水位线的高低,在确定数据存储量较大的情况下,FIFO中水位线较高,可以增大的第一变化量和减少的第一时间间隔,使得输出频率可以快速增大,避免出现FIFO上溢的现象在确定数据存储量较小的情况下,FIFO中水位线较低,此时也可以设置较大的第一变化量和较小的第一时间间隔,使得输出频率可以快速减小,避免出现FIFO下溢的现场。
例如,在确定数据存储适中的情况下,FIFO中水位线远离上溢水位线和下溢水位线。进一步可以根据音频信号的输入音频和输出频率确定第一时间间隔和第一变化量。例如,在确定输入音频和输入频率相差较小(例如,输入音频和输入频率相差小于0.01Khz)的情况下,可以设置较小的第一变化量和较大的第一时间间隔,使得输出频率可以缓慢且平稳的变化。
例如,音频信号的传输特征包括音频信号的基波频率、谐波频率和幅度等。根据音频信号的基波频率和谐波频率可以确定音频信号的频率。由于高频信号的抗干扰能力强,因此在根据基波频率和谐波频率确定音频信号为高频信号的情况下,可以较小的第一时间间隔,使得在快速改变输出频率时,音频信号的传输过程依然具有较好的稳定性。
例如,根据音频信号的幅度可以确定音频信号的音强。由于音强高的信号的抗干扰能力强,因此在根据幅度确定音频信号的音强较高的情况下,可以较小的第一时间间隔,使得在快速改变输出频率时,音频信号的传输过程依然具有较好的稳定性。通过调整第一时间间隔和第一变化量,以适当的频率和适当的幅度对音频信号的输出频率进行追踪,从而可以防止音频信号的出现丢失或者溢出现象。
在本公开实施例中,在确定输入频率小于初始输出频率且数据存储量小于第二预设存储量的情况下,追踪电路320基于第一时间间隔,以第一变化量为步长,逐步减小初始输出频率,得到第二输出频率。
在确定输入频率小于初始输出频率的情况下,向FIFO中输入待处理音频信号的速率小于从FIFO中读取待处理音频信号的速率,这使得FIFO中存储的待处理音频信号逐渐减少。在确定数据存储量小于第二预设存储量的情况下,FIFO的水位线低于第二预设水位线,这表明当前FIFO中存储的待处理音频信号过少。追踪电路320以50μs为一次时间间隔,以0.02Khz为步长,逐步减小初始输出频率,得到第二输出频率。
追踪电路320在逐渐减小初始输出频率时,信号读取电路330以每次减小后得到的输出频率实时从FIFO中读取音频信号。
例如,输入频率为48Khz。初始输出频率为48.05Khz,输入频率小于初始输出频率。每隔50μs,追踪电路320将初始输出频率减小0.02Khz。在追踪电路320对初始输出频率进行第一次负向追踪,得到输出频率为48.03Khz。在50μs内,信号读取电路330以48.03Khz实时从FIFO中读取音频信号。
在信号读取电路330以48.03Khz实时从FIFO中读取音频信号50μs后,获取FIFO的当前水位线。在确定FIFO的当前水位线依然小于第二预设水位线的情况下,这表明当前FIFO中存储的待处理音频信号依然过少。追踪电路320再次对输出频率48.03Khz进行第二次负向追踪,得到输出频率为48.01Khz。在50μs内,信号读取电路330以48.01Khz实时从FIFO中读取音频信号。
根据此规律,追踪电路320对输出频率进行多次负向追踪,得到第二输出频率。此时,信号读取电路330以第二输出频率实时从FIFO中读取音频信号后,获取FIFO的当前水位线。在确定FIFO的当前水位线小于第一预设水位线且大于第二预设水位线的情况下,追踪电路320停止对第二输出频率进行追踪。信号读取电路330可以以第二输出频率为目标输出频率,稳定地从FIFO中读取音频信号。
第一预设水位线大于第二预设水位线,第一预设水位线与第二预设水位线之间的范围为FIFO的安全水位线范围。在确定FIFO的水位线在安全水位线范围内的情况下,信号读取电路330可以从FIFO中稳定而持续地读取待处理的音频信号,音频信号不会出现丢失或者溢出现。
在本公开实施例中,在确定FIFO的数据存储量等于第一预设存储量或数据存储量等于第二预设存储量的情况下,追踪电路320可以暂不对初始输出频率进行追踪。信号读取电路330可以以初始输出频率为目标输出频率,稳定地从FIFO中读取音频信号。
在本公开实施例中,在确定数据存储量大于第一存储量阈值或小于第二存储量阈值的情况下,参数生成电路310修改第一时间间隔和第一变化量,得到第二时间间隔和第二变化量。第二存储量阈值小于第一存储量阈值,第一时间间隔大于第二时间间隔,第一变化量小于第二变化量。
在确定数据存储量大于第一存储量阈值的情况下,FIFO即将出现上溢现象,从而需要提高信号读取电路330从FIFO中读取音频信号的频率。因此,缩短时间间隔和增大追踪的变化量,从而追踪电路320可以快速增大输出频率,使信号读取电路330以更快的速率从FIFO中读取音频信号。
在确定数据存储量小于第二存储量阈值的情况下,FIFO即将出现下溢现象,从而需要减少信号读取电路330从FIFO中读取音频信号的频率。因此,缩短时间间隔和增大追踪的变化量,从而追踪电路320可以快速减小输出频率,使信号读取电路330以更慢的速率从FIFO中读取音频信号。
例如,第一时间间隔可以为第二时间间隔的2倍、3倍和4倍等等。第二变化量可以为第一变化量的2倍、3倍和4倍等等。本公开对第一时间间隔与第二时间间隔之间的具体倍数关系不作限定,对第一变化量和第二变化量之间的倍数关系不作限定。
图4A示出了根据本公开实施例的输出频率的变化示意图。图4B示出了根据本公开实施例的水位线的变化示意图。图4C示出了根据本公开实施例的水位线值的变化示意图。
结合图3、图4A、图4B和图4C对输出频率的追踪过程进行说明。
如图4A所示,在时间t1时,初始输出频率fint小于输入频率fin。例如,初始输出频率fint为47.93Khz,输入频率fin为48Khz。如图4B和4C所示,在时间t1时,FIFO的初始水位线等于第一预设水位线WL1。
在t1-t2的时间段内,追踪单元320对初始输出频率fint暂不追踪,信号读取电路330以初始输出频率fint从FIFO中读取待处理音频信号。由于初始输出频率fint小于输入频率fin,FIFO的水位线WL会持续增高。如图4B所示,从时间t2开始,水位线WL开始呈上升趋势。
在确定FIFO的当前水位线WL大于第一预设水位线WL1的情况下,参数生成电路310根据当前水位线的情况,生产第一时间间隔Δt和第一变化量Δf。追踪单元320基于第一时间间隔Δt和第一变化量Δf对初始输出频率fint进行第一次正向追踪,得到输出频率fout为频率f1’,信号读取电路330以频率f1’从FIFO中读取待处理音频信号。频率f1’=47.95Khz,第一时间间隔Δt=t2-t1,第一变化量Δf=0.02Khz。
如图4A所示,在t2-t3的时间段内,输出频率fout被多次正向追踪。在时间t3时,输出频率fout=输入频率fin=48Khz。如图4B和4C所示,在时间t3时,FIFO的水位线WL大于第一预设水位线WL1。
在t3-t4的时间段内,追踪单元320对输出频率fout继续进行多次正向追踪,得到的输出频率fout为第一输出频率f1,第一输出频率f1=48.05Khz。信号读取电路330以频率f1从FIFO中读取待处理音频信号。如图4B和4C所示,在t3-t4的时间段内,水位线WL呈下降趋势。在时间t4时,FIFO的水位线WL与第一预设水位线WL1相等。
在t4-t5的时间段内,追踪单元320停止对第一输出频率f1进行追踪。由于第一输出频率f1大于输入频率fin,在信号读取电路330以第一输出频率f1从FIFO中读取待处理音频信号时,FIFO的水位线继续呈下降趋势。如图4B和4C所示,在t4-t5的时间段内,水位线WL位于第一预设水位线WL1和第二水位线WL2之间的安全水位线范围内。在时间t5时,FIFO的水位线WL与第二预设水位线WL2相等。
如图4A所示,在t5-t6的时间段内,输出频率fout依然为第一输出频率f1。如图4B和4C所示,在t5-t6的时间段内,FIFO的水位线WL呈下降趋势,水位线WL开始小于第二预设水位线WL2。
在确定FIFO的当前水位线WL小于第二预设水位线WL1的情况下,追踪单元320开始对第一输出频率f1进行多次负向追踪。如图4A所示,在时间t7时,输出频率fout=输入频率fin=48Khz。如图4B和4C所示,在时间t7时,FIFO的水位线WL依然小于第二预设水位线WL2。
如图4A所示,在t7-t8的时间段内,输出频率fout被多次负向追踪。在时间t8时,输出频率fout被减小至初始输出频率fint。如图4B和4C所示,在t7-t8的时间段内,FIFO的水位线WL为上升趋势。在时间t8时,水位线WL与第二预设水位线WL2相等。
由于初始输出频率fint小于输入频率fin,在信号读取电路330以初始输出频率fint从FIFO中读取待处理音频信号时,FIFO的水位线继续呈上升趋势。如图4B和4C所示,在t8-t9的时间段内,水位线WL位于第一预设水位线WL1和第二水位线WL2之间的安全水位线范围内。
在时间t9之后,FIFO的水位线会逐渐增高。在确定FIFO的水位线大于第一预设水位线WL1的情况下,追踪单元320和信号读取电路330可以依次重复执行时间段t2-t9内的操作,使输出频率和输入频率处于动态平衡中,FIFO的水位线位于安全水位线范围内。在确定FIFO的水位线位于安全水位线范围内的情况下,追踪单元320对第一输出频率fout停止追踪。
例如,第一预设水位线WL1=center_level+delta_value。第二预设水位线WL2=center_level-delta_value。center_level为FIFO的水位线区间的中间值WL_mid,delta_value为水位线的安全变量。FIFO的水位线位于center_level-delta_value与center_level+delta_value之间的范围时,FIFO不易出现上溢或下溢的现象。本领域的技术人员可以根据FIFO的实际情况,设置delta_value的值,本公开对delta_value的值不做限定。
例如,第一存储量阈值WL_th1=almost_overflow。在确定FIFO的水位线与第一存储量阈值WL_th1相等的情况下,FIFO即将出现上溢现象。第二存储量阈值WL_th2=almost_underflow。在确定FIFO的水位线与第二存储量阈值WL_th2相等的情况下,FIFO即将出现下溢现象。
例如,水位线最大值WL_max=overflow。在确定FIFO的水位线与水位线最大值WL_max相等的情况下,FIFO出现上溢现象。水位线最小值WL_min=underflow。在确定FIFO的水位线与水位线最小值WL_min相等的情况下,FIFO出现下溢现象。
图5示出了根据本公开另一实施例的音频信号处理装置的结构示意图。
如图5所示,音频信号处理装置包括参数生成电路510、追踪电路520、信号读取单元530和存储单元540。
在本公开实施例中,参数生成电路510、信号读取单元530和存储单元540分别与前文实施例所述的参数生成电路310、信号读取单元330和存储单元340类似。为了简明,本公开此处不再赘述。
追踪电路520包括外部晶振521、分频器522、锁相环523、分频器524和追踪单元525。
外部晶振521、分频器522、锁相环523、分频器524和追踪单元525依次电连接。参数生成电路510与锁相环523电连接。追踪单元525与信号读取单元530电连接。
外部晶振521产生初始信号,分频器522接收来自外部晶振521的初始信号,对初始信号进行预分频,可以将初始信号由高频信号转化为低频信号。例如,分频器522可以为前置分频器pre-divider。
锁相环523根据来自参数生产电路510的追踪参数,对预分频后的初始信号进行调整,生产初始追踪信号。锁相环523可以为锁相环-压控振荡器(PLL-VCO)。压控振荡器为振荡频率受控制电压控制的振荡器,压控振荡器可以根据追踪参数计算得到初始追踪信号。
分频器524对初始追踪信号进行分频运算,得到目标追踪信号。例如,分频器524可以为后置分频器post-divider。
在确定音频信号的输入频率与初始输出频率不相等的情况下,追踪单元525在目标追踪信号的控制下,对初始输出频率进行追踪,得到目标输出频率。例如,追踪单元525可以为由处理器CPU执行的应用程序。
在本公开实施例中,参数生成电路510根据FIFO的水位线信息以及音频频率数据(Maud和Naud),确定时间间隔和变化量,并根据时间间隔和变化量确定目标输出频率,并将与目标输出频率对应的PLL-VCO设定参数,将设定参数发送给锁相环523,使得锁相环523基于该设定参数生成的初始追踪信号能够使追踪单元525对初始输出频率进行追踪,得到目标输出频率。
图6A示出了根据本公开实施例的输出频率的频率抖动示意图。图6B示出了一种示例的输出频率的频率抖动示意图。
如图6A所示,在本公开实施例中,每次对输出频率的追踪方式是以一个较小数值为步长,对输出频率fout逐渐增加或减小。输出频率fout以阶梯式逐渐变化。
例如,在如图6A所示的输出频率的变化中,频率抖动可以由式(2)计算:
利用本公开音频信号处理装置的追踪机制,输出的音频信号的频率抖动为1.31×10-8,频率抖动较小。
例如,在如图6B所示的输出频率的变化中,频率抖动可以由式(3)计算:
在一种示例中,利用传统的音频信号处理装置的追踪机制,输出的音频信号的频率抖动为1.73×10-7。频率抖动大于本公开实施例得到的目标输出频率的频率抖动。
利用本公开音频信号处理装置的追踪机制,阶梯式调整音频信号的输出频率,使得输出频率可以以一个较小的变化幅度进行阶梯式变化。通过将变化幅度尽可能地降低到一个较小的范围,可以让音频信号的输出频率的频率抖动得到明显的降低,音频信号对DAC的影响也会减小。此外,利用本公开音频信号处理装置的追踪机制对输出频率进行阶梯式变化,这可以更精确地调整音频信号的输出频率,让输出频率趋近于信号源(DP信号)传输的频率点,使得音频信号处理装置输出的音频信号的整体输出频率的频率抖动更小。
图6C示出了根据本公开实施例的追踪参数对水位线的影响示意图。
在本公开实施例中,时间间隔Δt和变化量Δf可以根据信号源的传输特征而确定。在确定音频信号的输入频率与初始输出频率之间的差值较大的情况下,可以以较大的变化量Δf或较小的时间间隔Δt对初始输出频率进行追踪,使得初始输出频率可以快速增大或减小。在确定音频信号的输入频率与初始输出频率之间的差值较小的情况下,可以以较小的变化量Δf或较大的时间间隔Δt对初始输出频率进行追踪,使得初始输出频率可以平稳地增大或减小。
例如,一定的时间段内,若采用以较小的时间间隔Δt对初始输出频率进行追踪,追踪次数Num会增多,输出频率的变化更快,FIFO水位线的变化也更快。一定的时间段内,若采用以较大的时间间隔Δt对初始输出频率进行追踪,追踪次数会减少,追踪次数Num会减少,输出频率的变化更平稳,FIFO水位线的变化也更平稳。追踪次数Num与时间间隔Δt的乘积可以为固定值。例如,当设置时间间隔Δt为50μs,追踪次数Num为10次,此时Num*Δt=500μs。当设置时间间隔Δt为10μs时,追踪次数Num为50次。
利用追踪参数与FIFO的水位线之间变化规律,可以对时间间隔Δt和变化量Δf进行修正,或者在不同时间段内对时间间隔Δt和变化量Δf进行相应的动态调整,使得音频信号的输出频率可以更加满足不同信号源的传输特征。
如图6C所示,在变化量Δf固定为1Khz的情况下,随着时间间隔Δt的逐渐减小,FIFO的水位线WL的变化速度加快。
例如,时间间隔Δt分别为10μs、20μs和50μs。在时间间隔Δt为50μs时,水位线的变化速度最慢。在时间间隔Δt为20μs时,水位线的变化速率第二。在时间间隔Δt为10μs时,水位线的变化速率最快。
在变化量Δf固定为0.02Khz的情况下,随着时间间隔Δt的逐渐减小,FIFO的水位线WL的变化速度加快。
例如,时间间隔Δt分别为10μs、20μs和50μs。在时间间隔Δt为50μs时,水位线的变化速度最慢。在时间间隔Δt为20μS时,水位线的变化速率第二。在时间间隔Δt为10μs时,水位线的变化速率最快。
在时间间隔Δt固定为50μs的情况下,随着变化量Δf的逐渐增大,FIFO的水位线WL的变化速度加快。例如,变化量Δf分别为0.02Khz和1Khz。变化量Δf为0.02Khz的水位线的变化速度小于变化量Δf为1Khz的水位线的变化速率。
在时间间隔Δt固定为20μs的情况下,随着变化量Δf的逐渐增大,FIFO的水位线WL的变化速度加快。例如,变化量Δf分别为0.02Khz和1Khz。变化量Δf为0.02Khz的水位线的变化速度小于变化量Δf为1Khz的水位线的变化速率。
在时间间隔Δt固定为10μs的情况下,随着变化量Δf的逐渐增大,FIFO的水位线WL的变化速度加快。例如,变化量Δf分别为0.02Khz和1Khz。变化量Δf为0.02Khz的水位线的变化速度小于变化量Δf为1Khz的水位线的变化速率。
在音频信号的输入频率与初始输出频率之间的差值较小时(信号读取的稳定期间),可以通过设置较小的变化量Δf和/或较大的时间间隔Δt,使得FIFO的水位线WL的变化缓慢,有利于DAC稳定地接收音频信号。在音频信号的输入频率与初始输出频率之间的差值较大时(信号读取的非稳定期间),可以通过增大变化量Δf和/或减小时间间隔Δt,加快从FIFO中读取音频信号的速率,防止FIFO发生上溢或下溢现象。
通过对时间间隔Δt和变化量Δf的数值进行设定,以及在追踪过程中不断地修正时间间隔Δt和变化量Δf,可以使输出频率更好地适应不同信号源以及同一信号源在不同时间段下音频信号的传输特征,使FIFO的水位线保持平稳。
本公开还提供了一种适于实现音频信号处理装置的电子设备。
电子设备可以包括根据本公开任一实施例所述的音频信号处理装置。例如,电子设备可以包括音频信号处理装置200。
根据本公开的实施例,音频信号处理装置中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,音频信号处理装置中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者音频信号处理装置中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示出了根据本公开实施例的音频信号处理方法的流程图。
如图7所示,该实施例的音频信号处理方法包括操作S710~操作S730。
在操作S710,获取存储单元中待处理音频信号的数据存储量,并基于数据存储量,生成追踪参数。
在本公开实施例中,操作S710由参数生成电路210执行,与上述参数生成电路210执行的操作相对应,为了简明此处不再赘述。
在操作S720,在确定音频信号的输入频率与初始输出频率不相等的情况下,根据追踪参数,对初始输出频率进行追踪,得到目标输出频率。
在本公开实施例中,操作S720由追踪电路220执行,与上述追踪电路220执行的操作相对应,为了简明此处不再赘述。
在操作S730,以目标输出频率,从存储单元中读取音频信号。
在本公开实施例中,操作S720由信号读取电路320执行,与上述信号读取电路320执行的操作相对应,为了简明此处不再赘述。
图8示意性示出了根据本公开实施例的适于实现音频信号处理方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM802和RAM803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的音频信号处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。