seq_out: out std_logic);
.............
process(clk)
variable seq_gen:std_logic_vector(3 downto 0):="0011";---“周期是15的m序列 本原多项式的后4位(10011)”
variable seq_int : std_logic_vector(3 downto 0); ---任意输入序列(初始状态)
begin
seq_int:="1001";
if rising_edge(clk)
if seq_int(3)='1' then
seq_int:=(seq_int(2 downto 0) & '0') xor seq_gen;
else
seq_int:=seq_int(2 downto 0)& '0';
end if;
seq_out<=seq_int(1);
end if;
end process;
................
根据结果,可以输出m序列,但是就是不明白怎么生成的,通信原理中是用移位寄存器来实现的,是不是还有其他的方法?请高手指点!



最新回复
shanki_pm (2008-8-19 00:06:18)
cryinrain_cug (2008-8-19 00:09:33)
shanki_pm (2008-8-19 00:20:33)
shanki_pm (2008-8-19 00:23:37)
ruiruio4 (2008-8-19 11:19:29)
原理嘛,说不上来,这个好像要随seq_gen 来随意变化的(即产生其他的序列),规律或原理真的搞不懂,为什么就要、就可以因为这样就可以实现想要的周期?
下雨天儿 (2008-8-19 11:51:20)
yadog (2008-8-19 13:02:24)
对于nbit的m序列,周期就是2^n - 1,否则就不叫m序列
去看下m序列的定义吧,baidu“m序列”或伪随机序列能找到答案
shanki_pm (2008-8-19 23:58:02)
sl418 (2008-8-25 11:09:16)