搜索
bottom↓
回复: 3

请教ASK调制解调问题

[复制链接]

出0入0汤圆

发表于 2010-7-9 17:33:32 | 显示全部楼层 |阅读模式
1. ASK调制VHDL程序
--文件名:PL_ASK
--功能:基于VHDL硬件描述语言,对基带信号进行ASK振幅调制
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_ASK is
port(clk     :in std_logic;           --系统时钟
     start   :in std_logic;           --开始调制信号
     x     :in std_logic;           --基带信号
     y     :out std_logic);         --调制信号
end PL_ASK;
architecture behav of PL_ASK is
signal q:integer range 0 to 3;         --分频计数器
signal f :std_logic;                 --载波信号
begin
process(clk)
begin
if clk'event and clk='1' then
   if start='0' then q<=0;
   elsif q<=1 then f<='1';q<=q+1; --改变q后面数字的大小,就可以改变载波信号的占空比
   elsif q=3 then f<='0';q<=0;    --改变q后面数字的大小,就可以改变载波信号的频率
   else  f<='0';q<=q+1;
   end if;
end if;
end process;
y<=x and f;                   --对基带码进行调制
end behav;

ASK解调VHDL程序
--文件名:PL_ASK2
--功能:基于VHDL硬件描述语言,对ASK调制信号进行解调
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_ASK2 is
port(clk      :in std_logic;          --系统时钟
     start    :in std_logic;         --同步信号
     x      :in std_logic;          --调制信号
     y      :out std_logic);        --基带信号
end PL_ASK2;
architecture behav of PL_ASK2 is
signal q:integer range 0 to 11;        --计数器
signal xx:std_logic;                --寄存x信号
signal m:integer range 0 to 5;        --计xx的脉冲数
begin
process(clk)                      --对系统时钟进行q分频,
begin
if clk'event and clk='1' then xx<=x;   --clk上升沿时,把x信号赋给中间信号xx
   if start='0' then q<=0;           --if语句完成q的循环计数
   elsif q=11 then q<=0;
   else q<=q+1;
   end if;
end if;
end process;
process(xx,q)                    --此进程完成ASK解调
begin
if q=11 then m<=0;               --m计数器清零
elsif q=10 then            
   if m<=3 then y<='0';           --if语句通过对m大小,来判决y输出的电平
   else y<='1';
   end if;
elsif  xx'event and xx='1'then m<=m+1; --计xx信号的脉冲个数
(以上程序并不是本人写的)
    对于上述程序当中的ask解调部分模块,对于其中q的取值问题一直都不明白为什么取11做为计数循环,取10做为判断使能条件,还有抽样判决数m为什么取0到5的范围,而判决条件取3。

我是这样理解的,对于m的取值范围可以任意定,抽样判决数也是,而对于q的取值则和m的取值有关或者是说抽样判决数有关,如这里抽样判决数用的3,而对于ask调制部分来说,载波其实是个4分频信号,这样3*4=12个clk时钟周期,所以q取11(0-11恰好12个),而对于为什么解调时又用到q=10却是有点不明白了,因为用的是同时钟系统时钟clk,是不是和两个模块间的调制信号存在时钟差原因!

请大家多多帮忙!  谢谢大家!  这里也负有原码仿真doc

ask调制解调原码及仿真图ourdev_566841NW2IUJ.doc(文件大小:67K) (原文件名:ASK调制与解调VHDL程序及仿真.doc)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-7-10 08:18:14 | 显示全部楼层
是不是问题没提好,怎么没人回帖呢?

出0入0汤圆

发表于 2010-7-22 21:54:42 | 显示全部楼层
搂住能不能发个pdf版的?没有装word啊

出0入0汤圆

发表于 2010-12-26 00:50:04 | 显示全部楼层
以我看 根本之要在12个时钟阶段m 不为零就可以认为是 1 ,所以不一定要选10 ,只要能判断出来可以取小点 比如 q=8 判m大于2--始终就行。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 15:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表