fir滤波器应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
奈奎斯特带
抽样定理
0
0Hz
fs/2Hz
……
fs/2
fs
3/2Fs
2fs
5/2fs
。 。 。
数字滤波器概述
宽带系统中滤波器的应用结构
数字滤波器概述
FIR滤波器基本介绍
有限长单位冲激响应滤波器,是数字信号 处理系统中最基本的元件,它可以在保证任意 幅频特性的同时具有严格的线性相频特性,同 时其单位抽样响应是有限长的,因而滤波器是 稳定的系统。
FIR滤波器基本介绍
FIR型滤波器的系统函数为:
wire [15:0] coe1=46;
wire [15:0] coe2=34; wire [15:0] coe3=7; wire [15:0] coe4=-52; wire [15:0] coe5=-154; wire [15:0] coe6=-287; wire [15:0] coe7=-406; wire [15:0] coe8=-439; wire [15:0] coe9=-300; wire [15:0] coe10=83; wire [15:0] coe11=736; wire [15:0] coe12=1624; wire [15:0] coe13=2641; wire [15:0] coe14=3632; wire [15:0] coe15=4421; wire [15:0] coe16=4858;
M
H ( z ) h(0) h(1) z 1 h( M ) z M
n 0

h( n) z n
FIR滤波器在matlab及FPGA中的调用 程序
Fir滤波器最常用的是窗函数设计法(Window)、等波
纹设计法(Equiripple)和最小二乘法(Least-Squares)等。 其中窗函数设计法在学校课堂中是重点讲解的, 著名的窗函数有矩形窗、三角窗、hannning、hamming 、blackman、kaiser窗等。
fil_reg[15] <= fil_reg[14] + m_result[15];
fil_reg[16] <= fil_reg[15] + m_result[15];
fil_reg[17] <= fil_reg[16] + m_result[14];
fil_reg[18] <= fil_reg[17] + m_result[13]; fil_reg[19] <= fil_reg[18] + m_result[12]; fil_reg[20] <= fil_reg[19] + m_result[11]; fil_reg[21] <= fil_reg[20] + m_result[10];
Matlab方法
取得系数后通过与信号的卷积,即可完成对信号的
滤波处理
ffir_x=conv(f_x,h);
FPGA使用滤波器系数
H ( z ) h(0) h(1) z 1 h( M ) z M
n 0

M
h( n) z n
FPGA使用滤波器系数
//A=[ 46, 34, 7, -52, -154, -287, -406, -439, -300, 83, 736, 1624, 2641, 3632, 4421, 4858, 3632, 2641, 1624, 736, 83, -300, -439, -406, -287, -154, -52, 7, 34, 46]; // 4858, 4421,
FIR滤波器应用
电子与通信工程
15610093
许永全
内容

数字滤波器概述 FIR滤波器基本介绍 FIR滤波器在matlab及FPGA中的调用程序

FIR滤波器在无线信号处理的一个应用
数字滤波器概述
常用的数字滤波器主要有两种:
无限长单位冲激响应 IIR 滤波器 有限长单位冲激响应 FIR 滤波器
fil_reg[10] <= fil_reg[9] + m_result[10];
fil_reg[11] <= fil_reg[10] + m_result[11]; fil_reg[12] <= fil_reg[11] + m_result[12]; fil_reg[13] <= fil_reg[12] + m_result[13]; fil_reg[14] <= fil_reg[13] + m_result[14];
做乘法运算
wire [31:0] m_result[32:0];
lpm_mult0 lpm_m1(.dataa(datainI),.datab(coe1),.result(m_result[0]));
lpm_mult0 lpm_m2(.dataa(datainI),.datab(coe2),.result(m_result[1])); lpm_mult0 lpm_m3(.dataa(datainI),.datab(coe3),.result(m_result[2])); lpm_mult0 lpm_m4(.dataa(datainI),.datab(coe4),.result(m_result[3])); lpm_mult0 lpm_m5(.dataa(datainI),.datab(coe5),.result(m_result[4])); lpm_mult0 lpm_m6(.dataa(datainI),.datab(coe6),.result(m_result[5])); lpm_mult0 lpm_m7(.dataa(datainI),.datab(coe7),.result(m_result[6])); lpm_mult0 lpm_m8(.dataa(datainI),.datab(coe8),.result(m_result[7])); lpm_mult0 lpm_m9(.dataa(datainI),.datab(coe9),.result(m_result[8])); lpm_mult0 lpm_m10(.dataa(datainI),.datab(coe10),.result(m_result[9])); lpm_mult0 lpm_m11(.dataa(datainI),.datab(coe11),.result(m_result[10])); lpm_mult0 lpm_m12(.dataa(datainI),.datab(coe12),.result(m_result[11])); lpm_mult0 lpm_m13(.dataa(datainI),.datab(coe13),.result(m_result[12])); lpm_mult0 lpm_m14(.dataa(datainI),.datab(coe14),.result(m_result[13])); lpm_mult0 lpm_m15(.dataa(datainI),.datab(coe15),.result(m_result[14])); lpm_mult0 lpm_m16(.dataa(datainI),.datab(coe16),.result(m_result[15]));
Matlab 方法1
wk.baidu.com
Matlab 方法1
使用 fdatool工具,产生n阶滤波器系数。
Matlab 方法2
使用函数产生滤波器系数
%samp = 100000; fcuts = [1500 6500]; mags = [1 0]; devs = [0.06 0.01]; [n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fs); hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale'); freqz(hh)
FIR滤波器在无线信号处理的一个应用
1 产生两个信号f1=1000,f2=10000,通过fs=100000
的采样系统,并加入-20dB的高斯白噪声
2通过fir滤波器,恢复两个独立信号;
3通过两级fir滤波器,得到fs/8的采样信号,比较两
种方法。
FIR滤波器在无线信号处理的一个应用
fil_reg[22] <= fil_reg[21] + m_result[9];
fil_reg[23] <= fil_reg[22] + m_result[8]; fil_reg[24] <= fil_reg[23] + m_result[7]; fil_reg[25] <= fil_reg[24] + m_result[6]; fil_reg[26] <= fil_reg[25] + m_result[5]; fil_reg[27] <= fil_reg[26] + m_result[4]; fil_reg[28] <= fil_reg[27] + m_result[3]; fil_reg[29] <= fil_reg[28] + m_result[2]; fil_reg[30] <= fil_reg[29] + m_result[1]; fil_reg[31] <= fil_reg[30] + m_result[0]; end end wire [31:0] filout_tmp = fil_reg[31];
做和运算
reg [31:0] fil_reg[32:0]; always @(posedge clk) begin if (clken_A) begin fil_reg[0] <= m_result[0]; fil_reg[1] <= fil_reg[0] + m_result[1]; fil_reg[2] <= fil_reg[1] + m_result[2]; fil_reg[3] <= fil_reg[2] + m_result[3]; fil_reg[4] <= fil_reg[3] + m_result[4]; fil_reg[5] <= fil_reg[4] + m_result[5]; fil_reg[6] <= fil_reg[5] + m_result[6]; fil_reg[7] <= fil_reg[6] + m_result[7]; fil_reg[8] <= fil_reg[7] + m_result[8]; fil_reg[9] <= fil_reg[8] + m_result[9];
相关文档
最新文档