怎么对一个输入信号进行2分频,10分频程序

怎么对一个输入信号进行2分频,10分频程序,第1张

分频器吧。用将输入的模拟音频信号分离成高音、中音、低音等不同部分,然后分别送入相应的高、中、低音喇叭单元中重放,即可实现分频。

以2分频为例,2000Hz的信号,经过2分频之后变成1000Hz,处理的过程是,设计一个循环计数器,对输入脉冲进行计数,计数规则是0-1-0-1-0-1-0??这种计数器每归零一次给出一个溢出信号。就实现了2分频。

从电路结构来看,分频器本质上是由电容器和电感线圈构成的LC滤波网络,高音通道是高通滤波器,它只让高频信号通过而阻止低频信号;低音通道正好相反,它只让低音通过而阻止高频信号。

这个一般有两种方法,一种是分奇偶分频,因为奇偶分频不一样,所以先判断是奇偶,然后再相应处理就可以了,另一种是一种整体算法思想,不需要判断奇偶数。。。

顶层模块程序:

entity control_clk is

port(

Clk_i : in std_logic

Data_i : in std_logic_vector(4 downto 0)

Clk_div: out std_logic

)

end control_clk

architecture rlt_control of control_clk is

component odd_div is

port(

Clk_i : in std_logic

Data_i : in std_logic_vector(4 downto 0)

Clk_odd: out std_logic

)

end component

signal clk_odd : std_logic :='0'

component even_div is

port(

Clk_i : in std_logic

Data_i : in std_logic_vector(4 downto 0)

Clk_even : out std_logic

)

end component

signal clk_even : std_logic :='0'

signal odd_even : std_logic :='0'

begin

odd_u : odd_div

port map(

Clk_i =>Clk_i,

Data_i =>Data_i,

Clk_odd=>clk_odd

)

even_u : even_div

port map(

Clk_i =>Clk_i,

Data_i =>Data_i,

Clk_even=>clk_even

)

odd_even <= Data_i(0)

process(odd_even,clk_even,clk_odd)

begin

if odd_even ='0' then

Clk_div <= clk_even

else

Clk_div <= clk_odd

end if

end process

end rlt_control


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11030291.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存