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

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

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

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

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

假设你的clk就是1s周期的时钟

那么10s的应该是这么写

reg

[3:0]

cnt_10

reg

clk_10s

always

@

(posedge

rst

or

posedge

clk)

begin

if

(rst)

begin

cnt_10

<=

0

clk_10s<=

0

end

else

begin

if

(cnt_10==4)

begin

cnt_10

<=

0

clk_10s<=~clk_10s

end

else

begin

cnt_10

<=

cnt_10

+1

clk_10s<=

clk_10s

end

end

60的,cnt就在29归零,同时clk_60s反向

是在半周期反向才是占空比1:1。

这是一个将1MHZ的分频1HZ的,你看下程序,改下下面的参数就是你要的了

library ieee

use ieee.std_logic_1164.all

use ieee.std_logic_unsigned.all

entity fenpin is

port(clk:in std_logic

clock:out std_logic)j

end

architecture art of fenpin is

signal count:integer range 0 to 500000

signal clk_data:std_logic

begin

process(clk)

begin

if clk'event and clk='1' then

if count=500000 then-------频率多大,你可以改这个 计算公式为

count<=0 f1=2*count*f2,f1为分频前的频率

clk_data<=not clk_data f2为分频后的频率

else count<=count_1

end if

end if

clock<=clk_data

end process

end art


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

原文地址: http://outofmemory.cn/yw/12165503.html

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

发表评论

登录后才能评论

评论列表(0条)

保存