哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談matlab+vivado設(shè)計(jì)數(shù)字濾波器

FPGA之家 ? 來源:數(shù)字積木 ? 作者:數(shù)字積木 ? 2021-05-29 11:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1,MATLAB代碼仿真

首先介紹下信號混頻的相關(guān)概念。混頻就是把兩個(gè)不同頻率的信號混合,得到第三個(gè)頻率。數(shù)字電路中最常見的混頻方法就是將兩個(gè)信號相乘。將兩個(gè)頻率為 f0,f1 的正弦波進(jìn)行相乘,根據(jù)積化和差公式,得到兩個(gè)頻率分量為 f0+f1 ,f0-f1 的信號。

數(shù)字混頻在通信的調(diào)制,解調(diào),DUC(數(shù)字上變頻),DDC(數(shù)字下變頻)等系統(tǒng)中應(yīng)用廣泛。通常把其中一個(gè)信號稱為本振信號( local oscillator ),另一個(gè)我信號稱為混頻器的輸入信號。

下面的matlab代碼用于驗(yàn)證混頻器的設(shè)計(jì)。

%%信號混頻

%%將兩個(gè)頻率為 f0,f1 的正弦波進(jìn)行相乘,根據(jù)積化和差公式,得到兩個(gè)頻率分量為 f0+f1 ,f0-f1 的信號

clear all;close all;clc;

fs = 100*10e6; %采樣頻率 100MHz

f1 = 2*10e6; %信號0的頻率 2MHz

f0 = 1.5*10e6; %信號1的頻率 1.5MHz

fpass =1.7*10e6; %低通濾波器通帶頻率

fstop =1.9*10e6; %低通濾波器截止頻率

DIV = 16

N = 4096; %采樣點(diǎn)數(shù)

t = 0 : 1/fs : (N-1)/fs; %設(shè)置采樣時(shí)間

Sig0 = sin (2*pi*f0*t); %生成信號0

Sig1 = sin (2*pi*f1*t); %生成信號1

Sig = Sig0 .*Sig1; %兩個(gè)信號進(jìn)行相乘

% 進(jìn)行快速傅里葉變化,得到頻譜

XK0 = fft(Sig0);

XK1 = fft(Sig1);

XK = fft(Sig);

%設(shè)置頻率

f = ( 0:N/DIV-1 )*fs/( N * 10e6 ); %單位設(shè)置為MHz

Amax = max (abs( XK(1:N/DIV)));

f0 = [0 fpass/(10e6 ) fstop/(10e6 ) ( N/DIV-1 )*fs/( N * 10e6 ) ];

A = [ Amax Amax 0 0 ];

%繪制時(shí)域波形圖

figure(1);

subplot(3,1,1); plot(t,Sig0); title(“頻率為1.5MHz的正弦信號”);xlabel(“時(shí)間(s)”);ylabel(“幅度”);

subplot(3,1,2); plot(t,Sig1); title(“頻率為2.0MHz的正弦信號”);xlabel(“時(shí)間(s)”);ylabel(“幅度”);

subplot(3,1,3); plot(t,Sig); title(“1.5MHz和2.0MHz正弦波相乘得到的信號”);xlabel(“時(shí)間(s)”);ylabel(“幅度”);

%繪制頻域圖

figure(2);

subplot(3,1,1); plot(f, ( abs( XK0(1:N/DIV) ) ) );title(“1.5MHz正弦信號的頻譜”);xlabel(“頻率(MHz)”);ylabel(“幅度”);

subplot(3,1,2); plot(f, ( abs( XK1(1:N/DIV) ) ) );title(“2.0MHz正弦信號的頻譜”);xlabel(“頻率(MHz)”);ylabel(“幅度”);

subplot(3,1,3); plot(f, ( abs( XK(1:N/DIV) ) ) );title(“1.5MHz和2.0MHz正弦波相乘得到的信號的頻譜”);xlabel(“頻率(MHz)”);ylabel(“幅度”);

hold on;

%低通濾波器示意圖

plot( f0 ,A );

在該仿真代碼中,設(shè)置采樣時(shí)鐘為100MHz,兩個(gè)信號的頻率分別為1.5MHz 和2.0 MHz 。兩個(gè)信號相乘后,產(chǎn)生一個(gè)頻率分量為 0.5MHz ( 2.0MHz - 1.5MHz ) 和3.5MHz ( 2.0MHz + 1.5MHz ) 的信號。時(shí)域圖顯示如下:

3cc3531c-bfcf-11eb-9e57-12bb97331649.png

頻域圖顯示如下:

3ccf8542-bfcf-11eb-9e57-12bb97331649.png

如圖上所示,混頻后得到了兩個(gè)頻率頻率分量為 0.5MHz 和 3.5 MHz的信號。將該信號通過一個(gè)截止頻率為2.0MHz左右的濾波器中,即可過濾掉 3.5 MHz的高頻信號,只留下 0.5MHz的信號。即如上圖橙色曲線所示。

2.MATLAB設(shè)計(jì)濾波器系數(shù)。

利用matlab的 濾波器設(shè)計(jì)工具箱( Filter Designer )可以非常方便地設(shè)計(jì)出符合工程要求的濾波器,在該工具箱中可以直接導(dǎo)出用于FPGA 濾波器設(shè)計(jì)的系數(shù)文件。打開該工具箱后,默認(rèn)顯示如下:

3d04b640-bfcf-11eb-9e57-12bb97331649.png

進(jìn)行簡單的設(shè)置:

濾波器類型:低通濾波器

濾波器形式:fir

濾波器階數(shù):100

頻率單位:MHz

采樣頻率:100MHz

通帶頻率:1MHz

截止頻率:2MHz

濾波器參數(shù)設(shè)置好后,點(diǎn)擊 Designer Filter 按鈕,稍等片刻,即可出現(xiàn)設(shè)計(jì)好的濾波器的頻幅相應(yīng)曲線?!咀ⅰ坑捎谑浅鯇W(xué)乍練,以上的參數(shù)設(shè)計(jì)的不一定合理,其中某些概念還不是很懂,還望通信大神指點(diǎn)。

由于要在FPGA中使用,還要將浮點(diǎn)型的系數(shù)轉(zhuǎn)化為定點(diǎn)數(shù)。如下圖設(shè)置,設(shè)置輸出格式為定點(diǎn)數(shù),位寬為16bit.

3d22621c-bfcf-11eb-9e57-12bb97331649.png

接下來就可以生成用于FPGA設(shè)計(jì)的系數(shù)文件了。在菜單【 Targets 】下點(diǎn)擊【 XILINX coefficient(.coe)file 】,保存即可。

.coe文件中的內(nèi)容大致如下,存儲了濾波器的各個(gè)系數(shù),用16進(jìn)制表示。

3d7a7092-bfcf-11eb-9e57-12bb97331649.png

至此,濾波器就設(shè)置完成了。

3.建立FPGA工程。

利用xilinx 的vivado工具來建立 fir 濾波器系統(tǒng),對上述的matlab 程序進(jìn)行硬件驗(yàn)證。兩路正弦波信號可以用vivado 的DDS IP生成,乘法操作用乘法器IP實(shí)現(xiàn),用vivado自帶的fir 濾波器實(shí)現(xiàn)濾波。利用vivado 的 block design 工具,可以不寫一行代碼,實(shí)現(xiàn)FPGA系統(tǒng)的搭建。先預(yù)覽下搭建好的一個(gè)簡單的fir 系統(tǒng)工程。

3d854224-bfcf-11eb-9e57-12bb97331649.png

該工程中,利用兩個(gè)DDS 輸出 1.5MHz 和 2.0MHz 的正弦波,利用乘法器IP進(jìn)行兩路信號的相乘,實(shí)現(xiàn)混頻操作。再講混頻的信號通過一個(gè)fir濾波器,實(shí)現(xiàn)濾波操作。先亮以下仿真結(jié)果,漂亮的波形圖。

3d8f4a44-bfcf-11eb-9e57-12bb97331649.png

濾波器完美輸出了0.5MHz的波形,濾掉了3.5MHz的高頻波。不過這是在仿真中的結(jié)果,在實(shí)際工程中,輸入的信號可能含有噪聲,失真等缺陷,實(shí)際效果不可能如此完美,但這個(gè)仿真結(jié)果也可以說明問題,在理想的輸入下,該濾波器可以完美地濾掉高頻波。下面詳細(xì)介紹 FPGA 工程的搭建。

1,建立 block design 工程。

在vivado 工具中點(diǎn)擊 create block design ,輸入 fir_system ( 該名稱可以任意指定 )。

2,添加IP。

在新打開的 Diagram 視圖中,添加IP 塊。點(diǎn)擊 “ + ”號,在彈出的對話框中輸入DDS,雙擊DDS compiler ,即可將DDS IP 加入到塊圖中。

3da1935c-bfcf-11eb-9e57-12bb97331649.png

按照上面的方法依次添加兩個(gè) DDS( DDS compiler ) IP ,兩個(gè)截位( slice )IP ,一個(gè)fir濾波器(fir compiler) IP,一個(gè)乘法器( mult )IP,如下圖。

3,設(shè)置IP。

IP添加后,還有經(jīng)過配置參數(shù)才能使用。雙擊IP 塊即可進(jìn)行配置。

(1)DDS配置。

兩個(gè)DDS模塊,一塊設(shè)置輸出為2.0MHz,一個(gè)設(shè)置輸出為1.5MHZ,其余設(shè)置保持相同即可。時(shí)鐘頻率一定要設(shè)置為100MHz,和前面matlab仿真保持一致。

另一個(gè)DDS設(shè)置為1.5MHz 。設(shè)置方法同上。需要注意的是,如上圖顯示,輸出數(shù)據(jù)端口(MAXISDATA_TDATA)為16bit ,高8位為 正弦波(sin)數(shù)據(jù),低8位為余弦波(cos)數(shù)據(jù)。

(2)slice IP設(shè)置。

該IP用于截位操作,設(shè)置如下,輸入為16bit,輸出為8bit,為16bit的bit7到bit0.位寬為8bit.該IP用于截取從DDS輸出的正弦波數(shù)據(jù)。

(3)乘法器IP配置。

輸入位寬設(shè)置為8bit 有符號數(shù),流水線級數(shù)采用建議的延時(shí),設(shè)置為3.表示從輸入到乘法結(jié)果輸出經(jīng)過3個(gè)時(shí)鐘周期延時(shí)。其余可保持默認(rèn)。

(4)移位寄存器設(shè)置。

移位寄存器用以延時(shí)數(shù)據(jù)有效信號,使其與乘法器的輸出保持同步。由于乘法器有3個(gè)時(shí)鐘的延遲,故將移位寄存器深度也設(shè)置為3,使其輸出比輸入延遲3個(gè)時(shí)鐘周期。其余可保持默認(rèn)。

(5)fir濾波器配置。

濾波器的系數(shù)設(shè)置為coe文件,加載前面在matlab生成的coe文件,稍等片刻即可在左邊窗口看到該濾波器的幅頻響應(yīng)曲線。將輸入采樣頻率和時(shí)鐘頻率都設(shè)置為100MHz。其余可默認(rèn)。

4,引出端口。

鼠標(biāo)選中端口,右鍵選擇 make external,即可導(dǎo)出端口。

5,IP連接。

IP最終連接如下圖。

3e92f0a8-bfcf-11eb-9e57-12bb97331649.png

6,生成代碼。

按照下圖,選中塊設(shè)計(jì),右鍵先選擇 “ generate output product.。?!保却瓿珊笤谶x擇 “create HDL wrapper.。?!?,即可自動生成頂層代碼。

3ea054dc-bfcf-11eb-9e57-12bb97331649.png

如果出現(xiàn)下面的界面,可選擇下拉菜單中的最大值,這個(gè)選項(xiàng)表示運(yùn)行時(shí)vivado軟件可使用的最大核心數(shù)。

最終自動生成的頂層代碼如下,就是對建立的原理圖工程做了模塊調(diào)用,其本質(zhì)還是Verilog代碼。

4,F(xiàn)PGA仿真驗(yàn)證。建立如下的測試文件:

module tb_fir( );

wire [7:0]adc0_sin;

wire [7:0]adc1_sin;

wire [15:0]fir_in;

wire [39:0]fir_out_tdata;

wire fir_out_tvalid;

reg sysclk;

fir_system_wrapper fir_system_wrapper

.adc0_sin ( adc0_sin ),

.adc1_sin ( adc1_sin ),

.fir_in ( fir_in ),

.fir_out_tdata ( fir_out_tdata ),

.fir_out_tvalid ( fir_out_tvalid ),

.sysclk ( sysclk )

);

initial

begin

sysclk = 0;

#50000 $stop(2);

end

always #5 sysclk = ~sysclk;

Endmodule

由于該工程的邏輯已在源代碼中完成,故在測試文件只是對頂層模塊做了例化和產(chǎn)生時(shí)鐘信號。最后仿真結(jié)果如下圖:

3d8f4a44-bfcf-11eb-9e57-12bb97331649.png

濾波器完美輸出了0.5MHz的波形,濾掉了3.5MHz的高頻波。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    162

    文章

    8471

    瀏覽量

    186287
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5620

    瀏覽量

    130423
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1884

    瀏覽量

    156719
  • 乘法器
    +關(guān)注

    關(guān)注

    9

    文章

    221

    瀏覽量

    38945
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4976

    瀏覽量

    74385

原文標(biāo)題:matlab+vivado設(shè)計(jì)數(shù)字濾波器

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    輸入濾波器 vs 輸出濾波器:核心差異解析

    變頻輸入和輸出濾波器雖然只有一字之差,但它們的角色、電路設(shè)計(jì),甚至電氣特性都截然不同。簡單來說,輸入濾波器是為了讓變頻與電網(wǎng)“和諧相處”,而輸出
    的頭像 發(fā)表于 04-20 11:43 ?413次閱讀
    輸入<b class='flag-5'>濾波器</b> vs 輸出<b class='flag-5'>濾波器</b>:核心差異解析

    屏蔽電源濾波器的分類

    屏蔽房用來屏蔽 輻射 干擾,而濾波器用來濾除 傳導(dǎo) 干擾。沒有濾波器,屏蔽房的整體隔離效果會下降60dB以上(相當(dāng)于百萬倍的效能損失),因此濾波器是屏蔽房發(fā)揮完整功能的核心部件。 來看下分類: 屏蔽
    的頭像 發(fā)表于 04-16 10:53 ?159次閱讀
    屏蔽電源<b class='flag-5'>濾波器</b>的分類

    深入剖析AMC1210:多功能數(shù)字濾波器的卓越應(yīng)用

    深入剖析AMC1210:多功能數(shù)字濾波器的卓越應(yīng)用 在電機(jī)控制和信號處理領(lǐng)域,數(shù)字濾波器扮演著至關(guān)重要的角色。今天,我們要深入探討一款功能強(qiáng)大的數(shù)字濾波器——AMC1210,它由德州儀器(TI)推出
    的頭像 發(fā)表于 01-25 10:50 ?1505次閱讀

    深入解析AMC1210:適用于電機(jī)控制的多功能數(shù)字濾波器

    ? 在電機(jī)控制應(yīng)用領(lǐng)域,精確的電流測量和位置解碼至關(guān)重要。TI推出的AMC1210數(shù)字濾波器,為這一領(lǐng)域提供了強(qiáng)大而靈活的解決方案。本文將深入剖析AMC1210的特性、工作原理、接口模式以及在
    的頭像 發(fā)表于 11-29 14:03 ?3033次閱讀
    深入解析AMC1210:適用于電機(jī)控制的多功能<b class='flag-5'>數(shù)字濾波器</b>

    ADS127L21 技術(shù)文檔總結(jié)

    該ADS127L21是一款 24 位、Δ-Σ (ΔΣ)、模數(shù)轉(zhuǎn)換 (ADC),具有可編程數(shù)字濾波器。該數(shù)字濾波器使用寬帶濾波器的數(shù)據(jù)速率高達(dá) 512kSPS,使用低延遲
    的頭像 發(fā)表于 10-29 09:27 ?712次閱讀
    ADS127L21 技術(shù)文檔總結(jié)

    ADS127L21B 產(chǎn)品技術(shù)文檔總結(jié)

    該ADS127L21B是一款高精度、24位、Δ-Σ(Δσ)、模數(shù)轉(zhuǎn)換(ADC),具有可編程數(shù)字濾波器。該數(shù)字濾波器使用寬帶濾波器的數(shù)據(jù)速率高達(dá) 512kSPS,使用低延遲
    的頭像 發(fā)表于 10-24 09:56 ?954次閱讀
    ADS127L21B 產(chǎn)品技術(shù)文檔總結(jié)

    德州儀器ADS127L21高精度24位ΔΣ模數(shù)轉(zhuǎn)換技術(shù)解析

    Texas Instruments ADS127L21 24位Δ-Σ(ΔΣ)模數(shù)轉(zhuǎn)換 (ADC) 具有可編程數(shù)字濾波器,數(shù)據(jù)速率高達(dá)512kSPS。該ADC采用寬帶濾波器,使用低延遲濾波器
    的頭像 發(fā)表于 08-20 15:40 ?1293次閱讀
    德州儀器ADS127L21高精度24位ΔΣ模數(shù)轉(zhuǎn)換<b class='flag-5'>器</b>技術(shù)解析

    STM32單片機(jī)片上數(shù)字濾波器操作文檔 快速入門數(shù)字濾波器在單片機(jī)上的實(shí)現(xiàn)

    這個(gè)文檔,是為了幫助大家快速入門數(shù)字濾波器在單片機(jī)上的實(shí)現(xiàn)。
    的頭像 發(fā)表于 06-23 16:53 ?1934次閱讀
    STM32單片機(jī)片上<b class='flag-5'>數(shù)字濾波器</b>操作文檔 快速入門<b class='flag-5'>數(shù)字濾波器</b>在單片機(jī)上的實(shí)現(xiàn)

    Analog Devices Inc. ADMV8526數(shù)字可調(diào)諧濾波器數(shù)據(jù)手冊

    Analog Devices Inc. ADMV8526數(shù)字可調(diào)諧濾波器是射頻帶通濾波器,具有數(shù)字可選工作頻率。該器件具有1.25GHz至2.60GHz可調(diào)F~CENTER~頻率范圍,
    的頭像 發(fā)表于 06-22 10:16 ?1209次閱讀
    Analog Devices Inc. ADMV8526<b class='flag-5'>數(shù)字</b>可調(diào)諧<b class='flag-5'>濾波器</b>數(shù)據(jù)手冊

    常用的數(shù)字濾波器算法及其特性

    常用的軟件濾波器有限幅濾波法、中位值濾波法、算數(shù)平均濾波法、遞推平均濾波法、中位值平均濾波法、限
    的頭像 發(fā)表于 06-18 09:04 ?1391次閱讀

    有源濾波器與無源濾波器的區(qū)別

    濾波器是根據(jù)電路參數(shù)對電路頻帶寬度的影響而設(shè)計(jì)出來的工程應(yīng)用電路,濾波器種類很多,有源濾波器和無源濾波器的區(qū)別我們最簡單的分別辦法是看看是否需要電源,在作用上最大的區(qū)別在于有源
    的頭像 發(fā)表于 06-18 09:03 ?2239次閱讀

    GNSS 低噪聲放大器前端模塊,集成前濾波器和后濾波器 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()GNSS 低噪聲放大器前端模塊,集成前濾波器和后濾波器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有GNSS 低噪聲放大器前端模塊,集成前濾波器和后濾波器的引腳圖、接線圖、封裝手
    發(fā)表于 06-06 18:34
    GNSS 低噪聲放大器前端模塊,集成前<b class='flag-5'>濾波器</b>和后<b class='flag-5'>濾波器</b> skyworksinc

    Sky5? 低電流 GNSS LNA 前端模塊,集成前置濾波器和后置濾波器 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()Sky5? 低電流 GNSS LNA 前端模塊,集成前置濾波器和后置濾波器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有Sky5? 低電流 GNSS LNA 前端模塊,集成前置濾波器和后置
    發(fā)表于 05-14 18:31
    Sky5? 低電流 GNSS LNA 前端模塊,集成前置<b class='flag-5'>濾波器</b>和后置<b class='flag-5'>濾波器</b> skyworksinc

    基于 FPGA 的任意波形發(fā)生+低通濾波器系統(tǒng)設(shè)計(jì)

    的待濾波信號,兩個(gè)正弦波的頻率分別是200Hz、800Hz。用MATLAB產(chǎn)生頻率為500Hz的低通濾波器抽頭系數(shù),然后將待濾波信號送入Vivado
    發(fā)表于 05-07 15:34
    桐城市| 嘉定区| 姚安县| 汉阴县| 庄浪县| 城口县| 慈利县| 安福县| 鞍山市| 嘉定区| 元氏县| 绥阳县| 鄄城县| 沁源县| 景洪市| 濮阳县| 左权县| 拉孜县| 兴国县| 九龙城区| 资源县| 大洼县| 丽江市| 霍山县| 千阳县| 淳安县| 绿春县| 丹东市| 电白县| 吉木萨尔县| 香河县| 平原县| 宝兴县| 东乡| 扬州市| 澄迈县| 区。| 萝北县| 慈利县| 南华县| 高雄市|