正弦波发生器:
1.将连续的正弦波信号进行离散化
    设正弦波周期为T=2*pi,对一个周期的正弦波进行100次采样,则
  相应采样点的离散值为:
    sin(2*pi/100)
    sin(2*pi*2/100)
      . . .
    sin(2*pi*n/100) 0<=n<=100
      . . .
    sin(2*pi*100/100)
    对于采样点离散值的计算可以采用Matlab进行计算,程序见下。

2.将离散化后的正弦波一个整周期存储到Rom中
  (1)将离散后的数据进行定点化,Rom的规格是256x8bits,数据格式1bit符号位和7bits小数位
  (2)创建Rom

clc;
clear all;
%% 将连续的正弦波信号进行离散化
% 设正弦波周期为T=2*pi,对一个周期的正弦波进行100次采样,则
% 相应采样点的离散值为:
% sin(2*pi/100)
% sin(2*pi*2/100)
% . . .
% sin(2*pi*n/100) 0<=n<=100
% . . .
% sin(2*pi*100/100)

%% 1.设置离散化参数
T = 2*pi; %正弦波周期
N = 2^8; %采样点个数
sp = 0:(N-1); %采样点

%% 2.进行离散化采样
sin_data = sin(T*sp/N); % sin_data取值为-1至+1之间的浮点数

%% 3.将离散后的正弦波存储到Rom中
% 将离散后的数据进行定点化,
% Rom的规格是256x8bits,数据格式1bit符号位和7bits小数位
fix_point_sin_data = sin_data * (2^7-1);
fix_point_sin_data = fix(fix_point_sin_data);
% 对负数取补码,便于存储Rom中
for i=1:N
if fix_point_sin_data(i)<0
fix_point_sin_data(i) = 256+fix_point_sin_data(i);
end
end

%% 生成mif文件
fid = fopen('rom_256x8_init.mif','w+');
fprintf(fid,'WIDTH=8;\n');
fprintf(fid,'DEPTH=256;\n');
fprintf(fid,'\n');
fprintf(fid,'ADDRESS_RADIX=UNS;\n');
fprintf(fid,'DATA_RADIX=UNS;\n');
fprintf(fid,'\n');
fprintf(fid,'CONTENT BEGIN\n');
for i=0:255
fprintf(fid,' %d : %d;\n',i,fix_point_sin_data(i+1));
end
fprintf(fid,'END;\n');
fclose(fid);

  对于正弦波,如何能够将输出频率提高?离散后的正弦波采样值存储在rom中,通过对rom
进行寻址,读出存储的数据即为正弦波的采样值,因此可以通过控制对rom寻址的快慢(步长)
,来控制输出正弦波的频率。(此为DDS原理作铺垫)

转载于:https://www.cnblogs.com/MAQI/p/7604247.html

正弦波信号发生器(离散采样)相关推荐

  1. Xilinx-Verilog-学习笔记(19):正弦波信号发生器与DDS

    Xilinx-Verilog-学习笔记(19):正弦波信号发生器与DDS 一.正弦波信号发生器 1.浮点数的定点化 这里以2.918为例,实现浮点数向定点数的转换: (1)在进行浮点转定点之前,要先确 ...

  2. verilog设计简易正弦波信号发生器_信号发生器工作原理是什么

    信号发生器是指产生所需参数的电气测试信号的仪器.根据信号波形可分为四类:正弦信号.函数(波形)信号.脉冲信号和随机信号发生器.那么信号发生器工作原理是什么?听听广州荣鑫电子怎么说. 信号发生器又称信号 ...

  3. dsp正弦波信号发生器c语言编程实例,DSP实验三 正弦波信号发生器

    代码片段和文件信息 属性            大小     日期    时间   名称 ----------- ---------  ---------- -----  ---- 目录        ...

  4. dsp 正弦波信号发生器matlab程序,基于DSP的正弦波信号发生器源程序(汇编语言).doc...

    基于DSP的正弦波信号发生器源程序(汇编语言) 正弦波信号发生器源程序 D.1用泰勒级数开展开法计算一个角度的余弦值 ***************************************** ...

  5. 模电课设 方波—三角波—正弦波信号发生器

    文章目录 一.课程设计目的 二.设计内容 三.设计思路 一.课程设计目的 掌握电子电路的分析与综合设计方法,能够理论联系实践,设计电路模型 掌握电子技术现代工具的使用,能熟练运用电路仿真软件对电路进行 ...

  6. dsp正弦波信号发生器c语言编程实例,毕业设计基于DSP的正弦波信号发生器的设计与实现整理版V3.1...

    <[毕业设计]基于DSP的正弦波信号发生器的设计与实现(整理版).doc>由会员分享,可免费在线阅读全文,更多与<毕业设计基于DSP的正弦波信号发生器的设计与实现(整理版)(V3.1 ...

  7. 电赛练习1《基础版》— 利用Multisim设计并制作一个简易的方波-三角波-正弦波信号发生器,要求输出频率可调,矩形波占空比可调等

    首先呢, 感慨一下,我记得去年这个时候,也是放寒假,我在CSDN上写了第一篇原创,使用python画了一个蜡笔小新的头像,并且我在文末说明了自己会陆续更新很多文章,结果- 到了今天放寒假,我的文章还是 ...

  8. verilog设计简易正弦波信号发生器_信号发生器入门手册-白皮书 (上)

    一提到电子测量,可能进入人们脑海的第一个东西是采集仪器,其通常是示波器或逻辑分析仪.但是,只有在能够采集某类信号时,这些工具才能进行测量.在许多情况下,这些信号是没有的,除非在外部提供信号. 例如,应 ...

  9. verilog设计简易正弦波信号发生器_采用集成运放和分立元件相结合的方式,利用迟滞比较器电路产生方波信号,以及充分利用差分电路进行电路转...

    展开全部 在Multisim中,函数发生器2113与被测设5261备连接时应注意以下情况:函数发生4102器有三个连接端子1653,+连接端子和-连接端子,中间是公用端子.当使用+和共用端子时,输出信 ...

最新文章

  1. RuntimeError: Expected object of backend CUDA but got backend CPU for argument #4 'mat1'
  2. 使用Cloud Application Programming模型开发OData的一个实际例子
  3. dismiss的词组_法律英语常用词必记:Dismiss
  4. Java Number shortValue()方法与示例
  5. python3图片转代码_python3图片转换二进制存入mysql示例代码
  6. 企业实战_09_MyCat 搭建Mysql 一主三从复制环境
  7. [翻译]创建ASP.NET WebApi RESTful 服务(9)
  8. sql server中扩展存储过程
  9. 用 TigerVNC 实现 Linux 远程桌面
  10. AcWing提高算法课Level-3 第四章 高级数据结构
  11. OpenCart 2.x 系统商品数量库存减少逻辑
  12. 手工配置Service的过程中。
  13. 【Keil MDK】(一)Keil MDK 5.28 的下载、安装、破解
  14. win10系统任务管理器资源监视器不小心关闭进行导致电脑黑屏
  15. [译]露天矿山道路设计指南:第一章
  16. num =10在c语言中是什么意思,num是什么词性
  17. Large-scale Video Classification with Convolutional Neural Networks
  18. 蜂巢的艺术与技术价值 - PostgreSQL PostGIS's hex-grid
  19. 好的电子书资源——原创力文档
  20. curl 错误:unable to verify the first certificate 解决办法

热门文章

  1. python中星号(*)的用法
  2. 通俗易懂解释拜占庭容错
  3. UML建模(六)需求之系统用例规约
  4. 互联网晚报 | 刘慈欣自曝用ChatGPT写发言稿;QQ音乐豪华绿钻续费价格上调;美国教授称海底住95天后年轻10岁...
  5. oracle新增用户名密码,增加权限
  6. 用python输出数组_Python 中输出数组中的全部元素
  7. python dataframe dropna_python pandas DataFrame.dropna用法及代碼示例
  8. Sql确定两个日期之间的工作日数目
  9. KLT光流跟踪特征点对
  10. 400元左右的蓝牙耳机啥牌子好?400元价位蓝牙耳机推荐