1、高斯滤波器的 Verilog程序和仿真验证Verilog程序:module gmsktop(CLK,clk_50,RST,RDY,dout);input CLK;/主时钟信号,500KHzinput clk_50;/50KHz时钟信号input RST;/input ND;output RDY;output33:0 dout;wire ND,RFD;wire15:0 source;sent_source sent_source(clk_50,RST,ND,RFD,source);gsfir gsfir(ND,RDY,CLK,RST,RFD,source,dout);endmodulemodul
2、e sent_source(clk_50,RST,ND,RFD,source);input clk_50;/50KHz时钟信号input RST;/复位信号,高电平有效input RFD;output15:0 source;/1bit基带信号,用 16bit表示output ND;reg15:0 source;reg15:0 scode;reg3:0 num;reg ND;always (posedge clk_50)beginif(RST) beginND = 0;source = 16d0; num = 4b1111;scode = 16b1011101001010101;endelse
3、if(RFD)beginif(scodenum) begin source = 16h7fff; endelse begin source = 16h8000; endND = 1;num = num-1;endelse ND = 0;endendmodule先生成一个 50kbps码率的源(带宽为 25KHz),码元 1编码成 7FFFH(+1)发送,码元 0编码成 80000H(-1)发送。利用 SystemView制作一个采样频率为500KHz的低通高斯滤波器,把生成的 21阶滤波器系数做成.coe 文件(如 IIR filter的 datasheet要求)加载到 IP Core中生成所需低通滤波器。最后将码元通过高斯滤波器进行滤波。SystemView生成的高斯滤波器时域波形图:SystemView生成的高斯滤波器频域波形图:功能仿真波形如下。连续发送的码元为 1011101001010101,最后通过高斯滤波后得到的平滑的波形如下,与原始码元型号一一对应。布局布线后仿真的波形如下。可以看到有明显的毛刺。