当前位置:首页 > 公众号精选 > 全栈芯片工程师
[导读]   基于FPGA低通滤波器FIR的设计1滤波器的特征参数介绍图1低通滤波器特征参数    如图1所示,低通滤波器的通带截止频率为ωp,通带容限为α1,阻带截止频率为ωs,阻带容限为α2。通带定义为|ω|≤ωp,过渡带定义为ωp

基于FPGA低通滤波器FIR的设计

1 滤波器的特征参数介绍


图1 低通滤波器特征参数如图1所示,低通滤波器的通带截止频率为ωp ,通带容限为α1,阻带截止频率为ωs,阻带容限为α2。通带定义为|ω|≤ωp ,过渡带定义为ωp<|ω|<ωs,阻带定义为ωs≤|ω|<π。

2 设计目标

要求:使用fir滤波器设计一个滤波器系数为15阶的低通滤波器,通带截止频率为1KHZ,采样频率为44.1khz。


3 matlab的设计验证

close all
clear all
clc

%设计一个低通滤波器 采样频率为44.1khz, 截止频率为1khz

FS = 44100; %HZ
fc = 1000;
N = 15;
Q = 16;

%以采样频率的一半,对频率进行归一化处理
wn_lpf=fc*2/FS;
%采用fir1函数设计FIR滤波器
b_lpf=fir1(N-1,wn_lpf);

%滤波系数进行量化
b_16=round(b_lpf/max(abs(b_lpf))*(2^(Q-1)-1));

%求滤波器的幅频响应
m_lpf=20*log(abs(fft(b_lpf)))/log(10);
b16_lpf=20*log(abs(fft(b_16)))/log(10);
%设置幅频响应的横从标单位为Hz
x_f=[0:(FS/length(m_lpf)):FS/2];

%绘制单位脉冲响应
subplot(221);stem(b_lpf);xlabel('n');ylabel('h(n)');
title('低通滤波器的单位脉冲响应','fontsize',8);

subplot(222);stem(b_16);xlabel('n');ylabel('h(n)');
title('低通滤波器的单位脉冲响应','fontsize',8);

%绘制幅频响应曲线
subplot(223);plot(x_f,m_lpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);
title('低通滤波器的幅频响应','fontsize',8);

subplot(224);plot(x_f,b16_lpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);
title('低通滤波器的幅频响应','fontsize',8);


图2 低通滤波器的matlab单位脉冲响应和幅频响应

4 FPGA信号发生器

为了验证低通滤波器,我们设计了测试验证的sin信号发生器。
wire [17:0] kfreq= (k<2048)?18’h00333:18’h00FFF;//1khz-5khz
产生1khz和5khz的sin波。


图3 信号发生器产生1khz和5khz的sin测试源测试源的FFT分析:

图4 测试源数据的matlab分析


由图4的频域图可知,测试源产生了1khz和5khz的sin。


5 FPGA的fir设计

Fir滤波器verilog代码设计采取全并行模式。


`timescale 1ps/1ps

module fir1(
input mclk,//45.1584MHZ
input reset_n,
input signed[31:0] pcm_in,
output signed[31:0] pcm_out
);

localparam LAST_CYCLE = 1023;
reg [9:0] i;

reg signed [31:0] pcm1,pcm2,pcm3,pcm4,pcm5,pcm6,pcm7,pcm8,pcm9,pcm10,pcm11,pcm12,pcm13,pcm14,pcm15;
reg signed [47:0] pcm1_out,pcm2_out,pcm3_out,pcm4_out,pcm5_out,pcm6_out,pcm7_out,pcm8_out,pcm9_out,pcm10_out,pcm11_out,pcm12_out,pcm13_out,pcm14_out,pcm15_out;
reg signed [51:0] pcm_r;

wire signed [15:0] coeff1,coeff2,coeff3,coeff4,coeff5,coeff6,coeff7,coeff8,coeff9,coeff10,coeff11,coeff12,coeff13,coeff14,coeff15;

assign coeff1 = 2208;
assign coeff2 = 3631;
assign coeff3 = 7612;
assign coeff4 = 13576;
assign coeff5 = 20413;
assign coeff6 = 26727;
assign coeff7 = 31169;
assign coeff8 = 32767;
assign coeff9 = 31169;
assign coeff10 = 26727;
assign coeff11 = 20413;
assign coeff12 = 13576;
assign coeff13 = 7612;
assign coeff14 = 3631;
assign coeff15 = 2208;
assign pcm_out = pcm_r[51:20];
always @(posedge mclk or negedge reset_n) begin
if(!reset_n) begin
i<= 0;
pcm1<=0;
pcm2<=0;
pcm3<=0;
pcm4<=0;
pcm5<=0;
pcm6<=0;
pcm7<=0;
pcm8<=0;
pcm9<=0;
pcm10<=0;
pcm11<=0;
pcm12<=0;
pcm13<=0;
pcm14<=0;
pcm15<=0;

pcm1_out<=0;
pcm2_out<=0;
pcm3_out<=0;
pcm4_out<=0;
pcm5_out<=0;
pcm6_out<=0;
pcm7_out<=0;
pcm8_out<=0;
pcm9_out<=0;
pcm10_out<=0;
pcm11_out<=0;
pcm12_out<=0;
pcm13_out<=0;
pcm14_out<=0;
pcm15_out<=0;

pcm_r<= 0;
end
else begin
i <= i 1;
if(i == 0) begin
pcm1<=pcm_in;
pcm2<=pcm1;
pcm3<=pcm2;
pcm4<=pcm3;
pcm5<=pcm4;
pcm6<=pcm5;
pcm7<=pcm6;
pcm8<=pcm7;
pcm9<=pcm8;
pcm10<=pcm9;
pcm11<=pcm10;
pcm12<=pcm11;
pcm13<=pcm12;
pcm14<=pcm13;
pcm15<=pcm14;
end
if(i==1) begin
pcm1_out <= pcm1*coeff1;
pcm2_out <= pcm2*coeff2;
pcm3_out <= pcm3*coeff3;
pcm4_out <= pcm4*coeff4;
pcm5_out <= pcm5*coeff5;
pcm6_out <= pcm6*coeff6;
pcm7_out <= pcm7*coeff7;
pcm8_out <= pcm8*coeff8;
pcm9_out <= pcm9*coeff9;
pcm10_out <= pcm10*coeff10;
pcm11_out <= pcm11*coeff11;
pcm12_out <= pcm12*coeff12;
pcm13_out <= pcm13*coeff13;
pcm14_out <= pcm14*coeff14;
pcm15_out <= pcm15*coeff15;
end
if(i==2) pcm_r<= pcm1_out pcm2_out pcm3_out pcm4_out pcm5_out pcm6_out pcm7_out pcm8_out pcm9_out pcm10_out pcm11_out pcm12_out pcm13_out pcm14_out pcm15_out;
end
end

endmodule
fpga实验modelsim仿真结果,从图5来看1khz几乎保持不变,而5khz波形幅度上被抑制了很多。

图5 modelsim fir实验结果时域波形


Matlab fft分析:


图6 matlab分析实验结果由图2和图6对比,5khz经过滤波后的功率减小了20DB,图2与图5基本一致,fir的低通滤波器全并行设计成功。








本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在下述的内容中,小编将会对滤波器的相关消息予以报道,如果滤波器是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 滤波器 低通滤波器 高通滤波器

在这篇文章中,小编将为大家带来锁相环的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 锁相环 相位检测器 低通滤波器

为了减小模拟信号链的尺寸,降低其成本,并提供ADC抗混叠保护(ADC采样频率周围频段中的ADC输入信号不受数字滤波器保护,必须由模拟低通滤波器(LPF)进行衰减)。20 V p-p LPF驱动器一般用于工业、科技和医疗(...

关键字: 模拟信号链 低通滤波器 ADC驱动器

上海2023年3月13日 /美通社/ -- 2023年3月10日,英国豪迈集团受邀参加2023(第六届)智领制造·企业家国际论坛,并荣获“杰出本土化服务商”奖项。此奖项肯定了英国豪迈在过去几年面对疫情等困境...

关键字: CHINA 智能制造 FIR FOR

杭州2023年2月28日 /美通社/ -- 近日,觅瑞MiRXES联合创始人兼CTO邹瑞阳博士接受《癌症早筛KOL100》系列专访(原文链接:https://mp.weixin.qq.com/s/efms-xPaiLnd...

关键字: FIR 创始人 ST RS

北京2022年11月21日 /美通社/ -- 日前,亚马逊云科技宣布将适用于容器的无服务器计算服务Amazon Fargate的计算和内存资源配置分别增加4倍,客户最高可配置使用16个虚拟CPU(vCPU)和120GiB...

关键字: 内存 TE CPU FIR

低通滤波器有3个重要参数:通带、阻带和过度带,理想的滤波器是没有过度带的(也叫做砖墙式滤波器),超过Fc截止频率的成分会被戛然而止滤除,而实际滤波器会有过渡带的限制,信号在过渡带内被逐渐衰减,我们一般希望过渡带窄一些,这...

关键字: 低通滤波器 过度带 信号

本文讨论了 Sallen-Key 低通滤波器的设计。为了便于具体电路参数选择,采用了比率设计方案进行讨论,大大提高了电路参数的实现可能性。

关键字: Sallen-Key 低通滤波器 比率设计

腾盛博药生物科技有限公司公布了两项在美国健康志愿者中开展的评估长效BRII-732和BRII-778的1期研究最新数据,这两种在研候选药物旨在用于治疗人类免疫缺陷病毒(HIV)感染。两项研究结果均表明,BRII-732和...

关键字: FIR ST RS

上海2022年10月14日 /美通社/ -- Ansys(NASDAQ: ANSS)宣布任命马金梭先生担任中国区总经理,全面负责Ansys在中国大陆地区的业务,并领导包括销售、渠道、高校、合规以及营销、运营等在内的工作。...

关键字: ANSYS FIR NAS 中国制造
关闭
关闭