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);%十进制转二进制

ed645fa0602213932c1b6a8e5425b0de.png

8209d9937ad79e8ea4ed9d0742250c91.png

aeebf2565808ca97c8f7cdb0d4055940.png

标签:25,16,二进制,data,40ms,com,sin

来源: https://blog.csdn.net/qq_15271231/article/details/89854461

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值