师兄毕设--双滑动窗能量检测算法实现突发信号检测

在这里插入图片描述
通过双滑动窗法检测接收信号中的突发报文段,其中两个相邻的窗口在相对于接收信号滑动的过程中是相对静止的,当两个窗都处于噪声段或者都处于信号加噪声段时,前后两个窗内的能量比值Sn相对平坦。当信号加噪声开始滑入前窗W1时,W1中的能量一直增加,而W2仍处于噪声段,此时Sn的值逐渐上升,直到突发信号的开始部分都包含在W1中而信号加噪声段即将进入W2时,两个窗内的能量比值Sn到达一个峰值。继续接收信号时,信号加噪声段也开始滑入W2,Sn逐渐开始下降,直到W2也全部处于信号加噪声段时恢复平坦。因此,在双窗滑动的过程中,能量比值Sn会呈现一个三角波形,峰值位置为噪声与信号的交界位置,即为突发信号的起始位置。根据两个滑动窗内的信号能量比值超过判决门限Th的位置来得到突发报文的起始端和结束端的位置,提取出突发报文。
matlab程序

for i=1:len-2*L
    window1_energy(i)=sum(input_energy(i:i+L-1));
    window2_energy(i)=sum(input_energy(i+L:i+2*L-1));
    energy_r1(i)=window2_energy(i)/window1_energy(i);
    energy_r2(i)=window1_energy(i)/window2_energy(i);
end

verilog代码
由于FPGA中为时序信息,所以不能像matlab中一样有一个累加过程(如果,把信号进行延迟1位,2位,3位…然后累加将消耗太多资源。因此可以

begin
  window_A<=window_A+energy_IQ-energy_IQ_delay48;
  window_B<=window_B+energy_IQ_delay48-energy_IQ_delay4848;
 end

在这里插入图片描述

品,细品。
在这里插入图片描述

//为了避免结束端少几个符号
reg msg_end_flag_pre;//当结束端的峰值第一次到达阈值时置高位
always@(posedge clk)
 begin
  if(!rst)
   begin
    msg_end_flag_pre<=1'd0;
   end
  else if(peake_k>=valid_gate&&msg_valid_flag==1'b1)
   begin
    msg_end_flag_pre<=1'd1;
   end
  else if(msg_valid_flag==1'b0)
   begin
    msg_end_flag_pre<=1'd0;
   end
 end

always@(posedge clk)
 begin
  if(!rst)
   begin
    msg_valid_flag<=1'd0;
   end
  else if(peaks_k>=valid_gate)
   begin
    msg_valid_flag<=1'd1;
   end
  else if(peake_k<valid_gate&&msg_end_flag_pre==1'b1)
   begin
    msg_valid_flag<=1'd0;
   end
 end

在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值