fpga数据位宽截取_FPGA信号截位策略研究

在FPGA中,随着信号处理的层次加深,对信号进行乘、累加、滤波等运算后,可能输入时仅为8位位宽的信号会扩展成几十位位宽,位宽越宽,占用的硬件资源就越多,但位宽超过一定范围后,位宽的增宽并不会对处理精度带来显著的改善,这时就需要对信号进行截位。写过FPGA HDL代码的童鞋都应该知道,截位是最为经常的一种操作。

一般来说,截位只需截掉低几位即可,这是最简单的做法;对于无符号数来说,这样做也没有问题;当然也有四舍五入的截位方法,就是给次低位加一后再进行截位。

下面讨论三种截位截略:1)直接截位;2)负数截位后加1;3)负数取绝对值后再截位。在matlab中模拟FPGA截位过程,运行如下一段程序,得到四幅图。

a=10000*randn(1,1000);

%% 截位方式一:直接截位

b=floor(a/2^5); %截去低5位

afft=fft(a);

bfft=fft(b);

figure; %观察原始信号与截位后信号的频谱

subplot(2,1,1);plot(abs(afft)/max(abs(afft)));grid;title('原始信号');

subplot(2,1,2);plot(abs(bfft)/max(abs(bfft)));grid;title('截位信号');

b=floor(a/2^12); %截去低12位

afft=fft(a);bfft=fft(b);

figure; %观察原始信号与截位后信号的频谱

subplot(2,1,1);plot(abs(

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值