偶数分频器的如何设计?代码如何实现?
扫描二维码
随时随地手机看文章
一直以来,分频器都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来偶数分频器的技术设计和代码实现的相关内容,详细内容请看下文。
一、分频器原理
从电路结构来看,分频器本质上是由电容器和电感线圈构成的LC滤波网络,高音通道是高通滤波器,它只让高频信号通过而阻止低频信号;低音通道正好相反,它只让低频信号通过而阻止高频信号;中音通道则是一个带通滤波器,除了一低一高两个分频点之间的频率可以通过,高频成份和低频成份都将被阻止。在实际的分频器中,有时为了平衡高、低音单元之间的灵敏度差异,还要加入衰减电阻;另外,有些分频器中还加入了由电阻、电容构成的阻抗补偿网络,其目的是使音箱的阻抗曲线平坦一些,以便于功放驱动。
位于功率放大器之后,设置在音箱内,通过LC滤波网络,将功率放大器输出的功率音频信号分为低音,中音和高音,分别送至各自扬声器。连接简单,使用方便,但消耗功率,出现音频谷点,产生交叉失真,它的参数与扬声器阻抗有直接的关系,而扬声器的阻抗又是频率的函数,与标称值偏离较大,因此误差也较大,不利于调整。
将音频弱信号进行分频的设备,位于功率放大器前,分频后再用各自独立的功率放大器,把每一个音频频段信号给予放大,然后分别送到相应的扬声器单元。因电流较小故可用较小功率的电子有源滤波器实现,调整较容易,减少功率损耗,及扬声器单元之间的干扰。使得信号损失小,音质好。但此方式每路要用独立的功率放大器,成本高,电路结构复杂,运用于专业扩声系统。
二、偶数分频器设计方法和代码实现
1、设计方法
2分频时钟设计,只需要循环计数0~1,计数为0时输出低电平,计数为1时输出高电平。
4分频时钟设计,只需要循环计数0~3,计数为0和1时输出低电平,计数为2和3时输出高电平。
8分频时钟设计,只需要循环计数07,计数为03时输出低电平,计数为4~7时输出高电平。
下图分别画出了基准时钟、2分频时钟、4分频时钟、8分频时钟。
由此可以推导出,偶数分频设计的方法:设为2N分频,只需设计一个计数器在上升沿时循环计数0N-1,每隔0N-1时输出翻转一次。
2、verilog代码实现
任意偶数分频设计,可通过设置参数NUM,设定分频数,具体代码如下所示:
module clk_divider_even#(parameter NUM = 8)(input clk,input rst,output reg clk_o);//参数定义
localparam WIDTH = $clog2(NUM);
localparam CNT_END = NUM/2 - 1;
reg [WIDTH-1:0] cnt;//计数模块
always@(posedge clk or posedge rst)beginif(rst)cnt <= 'b0;else if(cnt == CNT_END) //计满则清零
cnt <= 'b0;elsecnt <= cnt + 1'b1;end//分频时钟输出模块
always@(posedge clk or posedge rst)beginif(rst)clk_o <= 1'b0;
else if(cnt == CNT_END) //计满则输出反转clk_o <= ~clk_o;
elseclk_o<= clk_o;
endendmodule仿真测试结果图:
从图中看出,输出了8分频时钟信号,与预期一致。
上述所有信息便是小编这次为大家推荐的有关分频器的内容,希望大家能够喜欢,想了解更多有关它的信息或者其它内容,请关注我们网站哦。
20240610_6666d266ed18c__000