当前位置: 首页 > news >正文

做电影网站怎么挣钱毕设做网站些什么比较简单

做电影网站怎么挣钱,毕设做网站些什么比较简单,旧房翻新装修多少钱一平方,wordpress添加板块matlab生成正弦函数 采样点数为512#xff0c;每个采样点位宽为16位#xff0c;其中最高位为符号为#xff08;0正#xff0c;1负#xff09;。换句话说#xff0c;如果用ROM存储正弦函数的coe文件的话#xff0c;ROM ip核的位宽设置为16#xff0c;深度为512. clear…matlab生成正弦函数 采样点数为512每个采样点位宽为16位其中最高位为符号为0正1负。换句话说如果用ROM存储正弦函数的coe文件的话ROM ip核的位宽设置为16深度为512. clear all;Fs 512; t 0:1/Fs:1-1/Fs; y sin(10*t); %产生正弦波总点数为512点 y_16bit floor(y*2^15); %把数据量化为15位因为要留一个符号位subplot(221); plot(y_16bit); xlabel(原始有符号数的正弦波形);y1 fft(y_16bit,512); subplot(222); plot(real(y1)); xlabel(原始有符号数的fft(实部);y_16bit_a y_16bit; %定义相同大小的变量存储转变符号后的数据 %下面for循环的目的是将原本的负数变为正数在最高位加上符号位便于vivado读取 for i 1:length(y_16bit)if( y_16bit_a(i) 0 )y_16bit_a(i) 2^16y_16bit_a(i);%当信号小于零时通过将其与 2^16 相加可以确保最高位为1从而表示该数字是一个负数endendsubplot(223); plot(y_16bit_a); xlabel(将有符号数转化为无符号数的正弦波形);y2 fft(y_16bit_a,512);subplot(224); plot(real(y2)); xlabel(转化为无符号数后的fft实部);fid fopen(sinwave.txt,w); %将转变符号后的数据写入文件中等到vivado读取 fprintf(fid,%x\r\n,y_16bit_a); 注意 我们要确保输出给fft ip核的数据是16位同时最高位是符号位因此我们将原始数据乘上2的15次方填满低15位在将负数加上2的16次方使得最高位为1。在我们写入txt时我们是以%x16进制写入的因此正数最高位自动补0负数保持不变这样就确保了16bit输入同时正数最高位为0负数最高位为1 vivado FFT ip核使用 ip核的配置 此时我们看一下FFT ip核的信息 从图上可以知道该FFT ip核在完成512次fft计算后会经过3476次时钟周期一次时钟周期时4ns因此一共延迟13868ns13.868us FFT ip核的例化  顶层文件如下 timescale 1ns / 1ps module fft_top(input [15:0]data_in,input clk,input data_last,input data_valid,output out_valid,output [31:0]out_im,output [31:0]out_re);wire [63:0]fft_out;xfft_0 test (.aclk(clk), // input wire aclk (输入时钟.s_axis_config_tdata(16d1), // input wire [15 : 0] s_axis_config_tdata配置数据1为FFT0为IFFT.s_axis_config_tvalid(1d1), // input wire s_axis_config_tvalid 1则开始进行FFT配置0停止.s_axis_config_tready(), // output wire s_axis_config_tready 输出当FFT配置好时会给标志.s_axis_data_tdata({16d0,data_in}), // input wire [31 : 0] s_axis_data_tdata (输入数据高n位为虚部低n位为实部.s_axis_data_tvalid(data_valid), // input wire s_axis_data_tvalid 1则开始进行FFT计算0停止.s_axis_data_tready(), // output wire s_axis_data_tready .s_axis_data_tlast(data_last), // input wire s_axis_data_tlast 最后一个数据标志位便于结束FFT.m_axis_data_tdata(fft_out), // output wire [63 : 0] m_axis_data_tdata FFT的输出值.m_axis_data_tvalid(out_valid), // output wire m_axis_data_tvalid.m_axis_data_tuser(), // output wire [15 : 0] m_axis_data_tuser.m_axis_data_tready(1d1), // input wire m_axis_data_tready 一直置1即可 .m_axis_data_tlast(), // output wire m_axis_data_tlast.event_frame_started(), // output wire event_frame_started.event_tlast_unexpected(), // output wire event_tlast_unexpected.event_tlast_missing(), // output wire event_tlast_missing.event_status_channel_halt(), // output wire event_status_channel_halt.event_data_in_channel_halt(), // output wire event_data_in_channel_halt.event_data_out_channel_halt() // output wire event_data_out_channel_halt );assign out_im fft_out[63:32];assign out_re fft_out[31:0];endmodule FFT ip核的例化详见Vivado IP核FFT实验 - 知乎 (zhihu.com)  TestBench文件编写 timescale 1ns / 1ps module fft_tb();reg [15:0] data_temp [0:511]; reg [15:0] data_input;reg clk;reg data_last;reg data_valid;wire [31:0]out_im;wire [31:0]out_re;wire out_valid;reg [31:0]reg_out_im;reg [31:0]reg_out_re;integer i;integer fid_out_re;integer fid_out_im;always #2 clk ~clk; //生成时钟///例化代码fft_top bidesign_top1(.data_in(data_input),.clk(clk),.data_last(data_last),.data_valid(data_valid),.out_valid(out_valid),.out_im(out_im),.out_re(out_re));///initial beginclk 1d1;data_input 16d0;data_valid 1b0;data_last 1b0;$readmemh(E:/FPGA/book/vivado/FPGA_DSP/project_FFT_ip/matlab/sinwave.txt,data_temp); //读文件fid_out_re $fopen(E:/FPGA/book/vivado/FPGA_DSP/project_FFT_ip/matlab/out_re.txt,w); fid_out_im $fopen(E:/FPGA/book/vivado/FPGA_DSP/project_FFT_ip/matlab/out_im.txt,w);#10; //延迟2.5个时钟周期 for(i 0;i511;i i1)begindata_valid 1;data_input data_temp[i];#4;//延迟一个时钟周期enddata_last 1;data_valid 0;data_input 16d0; #2000;endalways (posedge clk) begin $fwrite(fid_out_re,%d\n,$signed(reg_out_re[31:0])); $fwrite(fid_out_im,%d\n,$signed(reg_out_im[31:0])); endalways (posedge clk) begin //fft输出结果到寄存器中保存使数据更稳定reg_out_im out_im;reg_out_re out_re;endalways (posedge clk) beginif(!out_valid) begin reg_out_re 32d0;reg_out_im 32d0;endend endmodule 值得注意的点输入fft的数据是在 clk系统时钟的上升沿读取的如果数据也是在clk上升沿更新的话可能会出现亚稳态因此我们通过时延半个周期使得数据在中间位置即 clk 的下降沿被fft读取时才是相对稳定的。在代码中#10确保了data_input在下降沿更新#4确保了数据更新周期与时钟周期保持一致这样就确保了FFT读取data_input时data_input信号是稳定的。 时序分析 注意data_input的格式调整为unsigned/analog下的曲线  接下来我们分析每个信号的变化关系 注意data_input也是延迟10ns后开始变化的但是由于data_input初始值为0所以在10~14ns的时间内任然保持0 接下来我们重点分析FFT的输出信号out_re和out_im  out_re是延迟了11828ns输出结果out_im是延迟了11832ns输出结果它们分别对应延迟了11828/42957和11832/42958个时钟周期。除此之外可以发现reg_out_im和reg_out_re滞后out_im和out_re一个时钟周期这也是时序逻辑赋值产生的延迟 out_re和out_im在延迟了13876ns后输出完成一共延迟了13876/43469个时钟周期减去初始化的2.5个之中周期后延迟结果与FFT ip核的信息给出的结果保持一致。 Matlab 数据分析 我们将vivado输出的FFT ip核的fft 实部虚部结果的txt文件导入matlab matlab导入txt代码如下 clear all; present_reimportdata(out_re.txt); present_imimportdata(out_im.txt);% 找到非零值的索引 nonzero_indices_re find(present_re.data ~ 0);% 提取非零值对应的元素 re present_re.data(nonzero_indices_re);plot(re); 我们只需要去其实部即可 与matlab结果保持一致。验证了我们的工作正确性
http://www.zqtcl.cn/news/987482/

相关文章:

  • 做响应式网站的菜单中国造价网官网
  • 爱心捐赠网站怎么做中国机械网官网
  • 好的ftp网站微信小程序开发基础
  • 西安 网站 公司wordpress+帖子置顶
  • 广州开发网站服务上海千途网站建设
  • 网站建设功能分为几种百度搜索数据
  • 电影网站模板html微信开发者代码管理
  • 小程序ui界面设计手机优化大师官网
  • 佳木斯市建设局网站网络游戏名
  • 建筑钢结构网站汉阳网站建设哪家便宜
  • 营销型网站建设评价临湘网站建设
  • 做网站的价格参考巴中建网站的公司
  • 张家口建设网站网络技术工程师
  • 大型网站后台登录地址一般是如何设置的哪里网站用vue.js做的
  • 网页设计规范图标设计百度seo优化多少钱
  • 网站打开速度概念建筑网站知乎
  • 网站的flash怎么做的杭州市城乡建设网官网
  • 宿迁网站建设排名wordpress多站点可视化
  • 苏州好的做网站的公司哪家好前端如何做响应式网站
  • 广州网站建设招标推广方式有哪些渠道
  • 郑州做网站狼牙东莞建设造价信息网站
  • 网站制作代理加盟国内seo服务商
  • 如何在建设银行网站预约纪念币网络销售好不好做
  • 利用淘宝视频服务做视频网站聊城做网站价格
  • 做美容行业的网站哪个好广西互联网企业
  • 做网站平台的营业执照江镇做包子网站
  • 网站建设 摄影服务wordpress破解模板
  • 网站规划中的三种常用类型宁波海曙区建设局网站
  • dede做网站湖北网址大全
  • 如何注册网站的名字html表单制作