1.一种PLC时域消除脉冲干扰的方法,其特征在于:该方法包括以下步骤;
S1:生成OFDM符号峰值置零标志数组;
S2:使用峰值置零标志数组对OFDM符号数据进行置零过程。
2.根据权利要求1所述的一种PLC时域消除脉冲干扰的方法,其特征在于:所述S1具体为:
S11:从接收数据流中获取一个完整的OFDM符号时域数据,然后对该符号数据进行归一化操作,归一化之后的OFDM符号数据记为:a_rx_ofdm_data;
S12:对归一化OFDM数据进行取模操作,即进行取绝对值计算得到OFDM符号的模值,记为a_rx_ofdm_abs_data;
S13:搜索a_rx_ofdm_abs_data的峰值,并且记录峰值和峰值出现的位置,记为a_rx_ofdm_peak_data和a_rx_ofdm_peak_pos;
S14计算出a_rx_ofdm_peak_data数组的中值,记为v_rx_ofdm_median_value;
S15:在v_rx_ofdm_median_value基础上增加了一个固定的偏移量v_threshold_offset_value,形成置零判决门限值v_ofdm_threshold_value;
v_ofdm_threshold_value=v_rx_ofdm_median_value+v_threshold_offset_valueS16:a_rx_ofdm_peak_data中每个峰值和v_ofdm_threshold_value比较,如果大于v_ofdm_threshold_value,则表明该点为脉冲干扰点,需要进行置零操作;记录在a_rx_ofdm_set_zero_flag和a_rx_ofdm_set_zero_pos;其中a_rx_ofdm_set_zero_flag为0,表示需要进行置零操作;a_rx_ofdm_set_zero_pos记录a_rx_ofdm_set_zero_flag在OFDM符号中的具体位置;a_rx_ofdm_set_zero_pos和a_rx_ofdm_set_zero_flag组成峰值置零标志数组。
3.根据权利要求2所述的一种PLC时域消除脉冲干扰的方法,其特征在于:所述S2具体为:
S21:设置v_rx_ofdm_peak_num,v_set_zero_flag1,v_set_zero_pos1,v_set_zero_flag2,v_set_zero_pos2的初值;
即:v_rx_ofdm_peak_num=1,v_set_zero_flag1=0,v_set_zero_pos1=0,v_set_zero_flag2=0,v_set_zero_pos2=0;
S22:假定归一化OFDM符号数据a_rx_ofdm_data的第一点和最后一点和峰值置零标志数组的第一个峰值和最后一个峰值置零标志相同;并且将第一点加入到峰值置零标志数组头部,最后一点数据加入到峰值置零标志数组尾部;形成新的峰值置零标志数组;
S23:从峰值置零标志数组中依次取出两个元数,分别赋值到v_set_zero_flag1,v_set_zero_pos1,v_set_zero_flag2,v_set_zero_pos2中;
v_set_zero_flag1=a_rx_ofdm_set_zero_flag(v_rx_ofdm_peak_num)v_set_zero_flag2=a_rx_ofdm_set_zero_flag(v_rx_ofdm_peak_num+1)v_set_zero_pos1=a_rx_ofdm_set_zero_pos(v_rx_ofdm_peak_num)v_set_zero_pos2=a_rx_ofdm_set_zero_pos(v_rx_ofdm_peak_num+1)S24:如果v_set_zero_flag1等于0,或者v_set_zero_flag2等于0,则将归一化OFDM数据a_rx_ofdm_data中从位置v_set_zero_pos1到v_set_zero_pos2位置的数据强制置零;
a_rx_ofdm_data(v_set_zero_pos1:v_set_zero_pos2)=0其中,a_rx_ofdm_data(v_set_zero_pos1:v_set_zero_pos2)表示在a_rx_ofdm_data数组中,从v_set_zero_pos1开始到v_set_zero_pos2位置的数据依次置零操作;
如果v_set_zero_flag1等于0,或者v_set_zero_flag2等于0判定不成立,则a_rx_ofdm_data数据,从位置v_set_zero_pos1到v_set_zero_pos2位置的数据保留原值;
S25:将v_rx_ofdm_peak_num增加1,如果v_rx_ofdm_peak_num指向峰值置零标志数组的最后一个元数,则直接退出,否则跳回到步骤3继续执行。