FPGA浮点数整数提取

        在数字信号处理中,采集到的数都是定点数,有些算法对数据精度比较敏感,比如QAM高阶调制解调,在符号同步过程中,通过符号定时同步对接收到的信号进行盲解调。

        在同步过程中需要求取插值基点kn及小数uerr的数值,kn为整数,uerr的值为浮点数,该数据通过η与w的比值求取(kn+uerr=η/w),其中η设置为1,w=symbolrate*nsamp/fs,如果η和w的取值采用定点数,w取值可能与实际值偏差较大,解调星座图指标较差,如果采用浮点数,则FPGA处理需要求取其整数部分并使用定点数以满足时序逻辑确定采样基点mk,小数部分任然需要保留浮点数,这时需要求取kn及uerr的值。整数kn转换代码仿真:

module Data_Tran_tb;
reg             iClk;
reg             iRst_n;
reg [31:0]          multiple = 32'b0_1000_0101_001_1100_0100_0000_0000_0000;  //78.125
reg [9:0]           kna,knb;
reg [9:0]           kn;


always@(posedge iClk or negedge iRst_n)
begin
    if(!iRst_n)begin
        kn      <= 0;
        kna     <= 0;
        knb     <= 0;

    end else
    begin
        kna     <= 10'd1<<(multiple[30:23]-8'd127);
        knb     <= multiple[22:0]>>(8'd150-multiple[30:23]);
        kn      <= kna + knb;
        
    end
end
    initial begin
        // Initialize Inputs
        iClk = 0;
        iRst_n = 0;
        
        #100;
        iRst_n = 1'b1;
    end
always #1.6   iClk =~iClk;   
endmodule

仿真运算结果:

采用浮点数与定点数运算解调效果:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xfaxisss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值