MATLAB产生了一组有符号型数据,传给FPGA进行处理

%% 产生了一组有符号型数据,传给FPGA进行处理,
%% FPGA的IP核处理有符号数时就是以补码形式进行处理的
clear all;close all;clc;
fs = 50e6;
f0 = 200e3;

W = 16;   %数据位宽16位
N = 1024;

t = [0:N-1]/fs;

yr = cos(2*pi*f0*t);
yi = sin(2*pi*f0*t);

% yr_N =round( yr*(2^(W-1)-1) + (2^(W-1)-1) );
% yi_N =round( yi*(2^(W-1)-1) + (2^(W-1)-1) );

% yr =round( yr*(2^(W-1)-1));   %W位的符号数,正数最大值为2^(W-1)-1,如W=4,则正数最大为7,这是幅度最大值,单负数最大为-2^(W-1) = -8,
% yi =round( yi*(2^(W-1)-1));
yr =round( yr*(2^(W-1)));   %W位的符号数,正数最大值为2^(W-1)-1,如W=4,则正数最大为7,这是幅度最大值,单负数最大为-2^(W-1) = -8,
yi =round( yi*(2^(W-1)));
mag = abs(yr + j*yi);

figure
plot(t,yr,t,yi)
title('MATLAB显示数据')

sign_r = yr<0;
sign_i = yi<0;

yr_N = yr + sign_r*2^W;
yi_N = yi + sign_i*2^W;
figure
plot(t,yr_N,'r')
title('FPGA显示数据,二进制补码符号数')


fid_r = fopen('real_input.txt','w');
fprintf(fid_r,'%X\n',yr_N);
fclose(fid_r);

fid_i = fopen('imag_input.txt','w');
fprintf(fid_i,'%X\n',yi_N);
fclose(fid_i);


结果:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值