當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 全棧芯片工程師
[導(dǎo)讀]???基于FPGA低通濾波器FIR的設(shè)計(jì)1濾波器的特征參數(shù)介紹圖1低通濾波器特征參數(shù)????如圖1所示,低通濾波器的通帶截止頻率為ωp,通帶容限為α1,阻帶截止頻率為ωs,阻帶容限為α2。通帶定義為|ω|≤ωp,過(guò)渡帶定義為ωp

基于FPGA低通濾波器FIR的設(shè)計(jì)

1 濾波器的特征參數(shù)介紹


圖1 低通濾波器特征參數(shù)如圖1所示,低通濾波器的通帶截止頻率為ωp ,通帶容限為α1,阻帶截止頻率為ωs,阻帶容限為α2。通帶定義為|ω|≤ωp ,過(guò)渡帶定義為ωp<|ω|<ωs,阻帶定義為ωs≤|ω|<π。

2 設(shè)計(jì)目標(biāo)

要求:使用fir濾波器設(shè)計(jì)一個(gè)濾波器系數(shù)為15階的低通濾波器,通帶截止頻率為1KHZ,采樣頻率為44.1khz。


3 matlab的設(shè)計(jì)驗(yàn)證

close all
clear all
clc

%設(shè)計(jì)一個(gè)低通濾波器 采樣頻率為44.1khz, 截止頻率為1khz

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

%以采樣頻率的一半,對(duì)頻率進(jìn)行歸一化處理
wn_lpf=fc*2/FS;
%采用fir1函數(shù)設(shè)計(jì)FIR濾波器
b_lpf=fir1(N-1,wn_lpf);

%濾波系數(shù)進(jìn)行量化
b_16=round(b_lpf/max(abs(b_lpf))*(2^(Q-1)-1));

%求濾波器的幅頻響應(yīng)
m_lpf=20*log(abs(fft(b_lpf)))/log(10);
b16_lpf=20*log(abs(fft(b_16)))/log(10);
%設(shè)置幅頻響應(yīng)的橫從標(biāo)單位為Hz
x_f=[0:(FS/length(m_lpf)):FS/2];

%繪制單位脈沖響應(yīng)
subplot(221);stem(b_lpf);xlabel('n');ylabel('h(n)');
title('低通濾波器的單位脈沖響應(yīng)','fontsize',8);

subplot(222);stem(b_16);xlabel('n');ylabel('h(n)');
title('低通濾波器的單位脈沖響應(yīng)','fontsize',8);

%繪制幅頻響應(yīng)曲線
subplot(223);plot(x_f,m_lpf(1:length(x_f)));xlabel('頻率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);
title('低通濾波器的幅頻響應(yīng)','fontsize',8);

subplot(224);plot(x_f,b16_lpf(1:length(x_f)));xlabel('頻率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);
title('低通濾波器的幅頻響應(yīng)','fontsize',8);


圖2 低通濾波器的matlab單位脈沖響應(yīng)和幅頻響應(yīng)

4 FPGA信號(hào)發(fā)生器

為了驗(yàn)證低通濾波器,我們?cè)O(shè)計(jì)了測(cè)試驗(yàn)證的sin信號(hào)發(fā)生器。
wire [17:0] kfreq= (k<2048)?18’h00333:18’h00FFF;//1khz-5khz
產(chǎn)生1khz和5khz的sin波。


圖3 信號(hào)發(fā)生器產(chǎn)生1khz和5khz的sin測(cè)試源測(cè)試源的FFT分析:

圖4 測(cè)試源數(shù)據(jù)的matlab分析


由圖4的頻域圖可知,測(cè)試源產(chǎn)生了1khz和5khz的sin。


5 FPGA的fir設(shè)計(jì)

Fir濾波器verilog代碼設(shè)計(jì)采取全并行模式。


`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實(shí)驗(yàn)modelsim仿真結(jié)果,從圖5來(lái)看1khz幾乎保持不變,而5khz波形幅度上被抑制了很多。

圖5 modelsim fir實(shí)驗(yàn)結(jié)果時(shí)域波形


Matlab fft分析:


圖6 matlab分析實(shí)驗(yàn)結(jié)果由圖2和圖6對(duì)比,5khz經(jīng)過(guò)濾波后的功率減小了20DB,圖2與圖5基本一致,fir的低通濾波器全并行設(shè)計(jì)成功。








本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉