MATLAB怎么生成一个周期信号,【matlab代码】生成10KHz正弦波信号,每个周期25个样点,持续40ms,最后以16位二进制格式输出...

【背景】

朋友需要用FPGA输入16位二进制格式的数据,让帮忙用matlab产生这样一组正弦信号数据。【10KHz正弦波信号,每个周期25个样点,持续40ms,最后以16位二进制格式输出】

【代码】 clc clear all close all f = 10000; % 频率, 10kHz T = 1/f; dt=T/25; %25是每个周期的点数 N=25*400; %40ms数据共计10000个点 x = 0:dt:(N-1)*dt;%根据每个周期多少个点计算中间的步进,0.1ms/25个点。 w = f*2*pi; % 频率,rad/s A = 1; % 振幅 sin_wave = A*sin(w*x); figure; plot(x,sin_wave); grid on xlabel('x/s'); ylabel('y/V'); % 量化位宽 width = 16;%数据宽度16位 % 量化滤波器系数 sin_data = round(sin_wave .* (2^(width-1) - 1));%量化正弦波形数据并取整 data_com_sin = zeros(1,length(sin_data)); for i = 1:length(sin_data) if sin_data(i) >= 0 data_com_sin(i) = sin_data(i); else data_com_sin(i) = 2^width + sin_data(i); end end data_bin = dec2bin(data_com_sin);%十进制转二进制

29d08e376d6780ef09b6581941fad841.png

33dd1b0110b6bb90429d97f0cddcdabb.png

c96e07b93d7f47a33a271f60d6d68aaf.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值