日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

FPGA數(shù)字信號(hào)處理之verilog實(shí)現(xiàn)混頻器

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-12-09 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

混頻:兩個(gè)不同頻率之間的混合,得到第三個(gè)頻率。數(shù)字信號(hào)處理中用來(lái)完成頻譜搬移求和,是數(shù)字信號(hào)處理中的基本元件之一。例如通信中的混頻合路:ea69cb86-7761-11ed-8abf-dac502259ad0.png常見(jiàn)的數(shù)字混頻器結(jié)構(gòu)如下,由移頻模塊和求和模塊組成。比如信號(hào)A、B是輸入的兩個(gè)單音信號(hào),B是上一節(jié)講到的NCO信號(hào),使用復(fù)乘將A、B信號(hào)進(jìn)行搬移,然后求和。ea7aa906-7761-11ed-8abf-dac502259ad0.png

頻譜搬移的過(guò)程如下,輸入信號(hào)Data_in,與NCO產(chǎn)生的單音信號(hào)進(jìn)行復(fù)乘得到Data_out;

ea99f982-7761-11ed-8abf-dac502259ad0.png

將Data_in與Data_out的頻譜放到一起如下,可以看到頻譜搬移的過(guò)程。

eab480e0-7761-11ed-8abf-dac502259ad0.png

頻譜搬移在計(jì)算上就是復(fù)乘:(i+q*j)*(cos+sin*j)=(cos*i-sin*q)+(sin*i+cos*q)*j,用xilinx片子實(shí)現(xiàn)的話我們還是選擇DSP48,其結(jié)構(gòu)如下:

eae2ff42-7761-11ed-8abf-dac502259ad0.png

其中用到了dsp的級(jí)聯(lián),可以參考之前dsp48e1詳細(xì)講解的文章:FPGA的底層資源之DSP48E1和Xilinx DSP48E1仿真。這里不再詳細(xì)描述。

代碼實(shí)現(xiàn)如下:

首先的端口聲明:

// ============================================================
// File Name: cm_mix
// VERSION  : V1.0
// DATA     : 2022/11/6
// Author   : FPGA干貨分享
// ============================================================
// 功能:數(shù)字混頻器  (i+q*j)*(cos+sin*j) = (cos*i - sin*q) + (sin*i + cos*q)*j
// delay  
// ============================================================


`timescale 1ns/1ps
module cm_mix #(
        parameter           C_DATA_WITH     = 16 ) // 
    (
        input  wire                     I_sys_clk    , // 輸入時(shí)鐘
        input  wire                     I_rst_in     , // 輸入復(fù)位 高有效
        input  wire [6:0]               I_phase      , // 初始相位
        input  wire [7:0]               I_freq       , // 頻率,步進(jìn),1代表1M
        input  wire [C_DATA_WITH-1:0]   I_data_in_i  , // 輸入數(shù)據(jù) 實(shí)部I
        input  wire [C_DATA_WITH-1:0]   I_data_in_q  , // 輸入除數(shù) 虛部Q
        output reg  [C_DATA_WITH-1:0]   O_data_out_i , // 輸出數(shù)據(jù) 實(shí)部I
        output reg  [C_DATA_WITH-1:0]   O_data_out_q );// 輸出除數(shù) 虛部Q
        
// ============================================================
// 內(nèi)部參數(shù)
// ============================================================


// ============================================================
// 變量
// ============================================================
wire       [10:0]               S_sin_out       ;
wire       [10:0]               S_cos_out       ;
reg        [C_DATA_WITH-1:0]    S_data_in_q     ;
reg        [10:0]               S_sin_out_d     ;
reg        [10:0]               S_cos_out_d     ;


wire       [47:0]               S_pcout_cos_i   ;
wire       [47:0]               S_dsp_out_i     ;
wire       [47:0]               S_pcout_sin_i   ;
wire       [47:0]               S_dsp_out_q     ;

然后調(diào)用上一篇文章中的NCO模塊FPGA數(shù)字信號(hào)處理之verilog實(shí)現(xiàn)NCO(代碼及仿真):

cm_nco_100 cm_nco_100 (
    .I_sys_clk      (I_sys_clk     ) , /// 工作時(shí)鐘 100M
    .I_rst_n        (!I_rst_in     ) , /// 復(fù)位信號(hào),用來(lái)清相位
    .I_phase        (I_phase       ) , /// 初始相位
    .I_freq         (I_freq        ) , /// 頻率,步進(jìn),1代表1M
    .O_sin_out      (S_sin_out     ) , /// 輸出正弦值
    .O_cos_out      (S_cos_out     )   /// 輸出余弦值
);

接著打拍并調(diào)用乘法器:


always @(posedge I_sys_clk )
    if(I_rst_in)
        begin
            S_data_in_q <= 'd0 ;
            S_sin_out_d <= 'd0 ;
            S_cos_out_d <= 'd0 ;
        end
    else
        begin
            S_data_in_q <= I_data_in_q ;
            S_sin_out_d <= S_sin_out   ;
            S_cos_out_d <= S_cos_out   ;
        end
    
// ============================================================
// (cos*i - sin*q)
// ============================================================
//cos*i
cm_dsp48e1 #(
    .C_DATA_WITH_A      (C_DATA_WITH     ),
    .C_DATA_WITH_B      (11              ),
    .C_DATA_WITH_C      (48              ),
    .C_DATA_WITH_D      (25              )
)
U0_cm_dsp48e1(
    .I_CLK              (I_sys_clk      ) , // clk
    .I_RST              (I_rst_in       ) , // RST
    .I_A                (I_data_in_i    ) , // [29:0] 
    .I_B                (S_cos_out      ) , // [17:0] 
    .I_C                (48'd0          ) , // [47:0] 
    .I_D                (25'd0          ) , // [24:0] 
    .I_PCIN             (48'd0          ) , // [47:0] 只能直連PCOUT
    .I_ALUMODE          (4'd0           ) , // [3:0] 
    .I_INMODE           (5'b00101       ) , // [4:0] 
    .I_OPMODE           (7'b0000101     ) , // [6:0] 
    .O_P                (               ) , // [47:0]
    .O_PCOUT            (S_pcout_cos_i  )   // [47:0] 只能直連PCIN
    );


//Pcin - sin*q
cm_dsp48e1 #(
    .C_DATA_WITH_A      (C_DATA_WITH     ),
    .C_DATA_WITH_B      (11              ),
    .C_DATA_WITH_C      (48              ),
    .C_DATA_WITH_D      (25              )
)
U1_cm_dsp48e1(
    .I_CLK              (I_sys_clk      ) , // clk
    .I_RST              (I_rst_in       ) , // RST
    .I_A                (S_data_in_q    ) , // [29:0] 
    .I_B                (S_sin_out_d    ) , // [17:0] 
    .I_C                (48'd0          ) , // [47:0] 
    .I_D                (25'd0          ) , // [24:0] 
    .I_PCIN             (S_pcout_cos_i  ) , // [47:0] 只能直連PCOUT
    .I_ALUMODE          (4'b0011        ) , // [3:0] 
    .I_INMODE           (5'b00101       ) , // [4:0] 
    .I_OPMODE           (7'b0010101     ) , // [6:0] 
    .O_P                (S_dsp_out_i    ) , // [47:0]
    .O_PCOUT            (               )   // [47:0] 只能直連PCIN
    );
    
    
// ============================================================
// (sin*i + cos*q)
// ============================================================
//sin*i
cm_dsp48e1 #(
    .C_DATA_WITH_A      (C_DATA_WITH     ),
    .C_DATA_WITH_B      (11              ),
    .C_DATA_WITH_C      (48              ),
    .C_DATA_WITH_D      (25              )
)
U2_cm_dsp48e1(
    .I_CLK              (I_sys_clk      ) , // clk
    .I_RST              (I_rst_in       ) , // RST
    .I_A                (I_data_in_i    ) , // [29:0] 
    .I_B                (S_sin_out      ) , // [17:0] 
    .I_C                (48'd0          ) , // [47:0] 
    .I_D                (25'd0          ) , // [24:0] 
    .I_PCIN             (48'd0          ) , // [47:0] 只能直連PCOUT
    .I_ALUMODE          (4'd0           ) , // [3:0] 
    .I_INMODE           (5'b00101       ) , // [4:0] 
    .I_OPMODE           (7'b0000101     ) , // [6:0] 
    .O_P                (               ) , // [47:0]
    .O_PCOUT            (S_pcout_sin_i  )   // [47:0] 只能直連PCIN
    );


//Pcin + cos*q
cm_dsp48e1 #(
    .C_DATA_WITH_A      (C_DATA_WITH     ),
    .C_DATA_WITH_B      (11              ),
    .C_DATA_WITH_C      (48              ),
    .C_DATA_WITH_D      (25              )
)
U3_cm_dsp48e1(
    .I_CLK              (I_sys_clk      ) , // clk
    .I_RST              (I_rst_in       ) , // RST
    .I_A                (S_data_in_q    ) , // [29:0] 
    .I_B                (S_cos_out_d    ) , // [17:0] 
    .I_C                (48'd0          ) , // [47:0] 
    .I_D                (25'd0          ) , // [24:0] 
    .I_PCIN             (S_pcout_sin_i  ) , // [47:0] 只能直連PCOUT
    .I_ALUMODE          (4'b0000        ) , // [3:0] 
    .I_INMODE           (5'b00101       ) , // [4:0] 
    .I_OPMODE           (7'b0010101     ) , // [6:0] 
    .O_P                (S_dsp_out_q    ) , // [47:0]
    .O_PCOUT            (               )   // [47:0] 只能直連PCIN
    );

最后四舍五入后輸出:

/// 四合五入輸出
always @(posedge I_sys_clk )
    if(I_rst_in)
        begin
            O_data_out_i <= 'd0;
            O_data_out_q <= 'd0;
        end
    else
        begin
            O_data_out_i <= S_dsp_out_i[10+:C_DATA_WITH] + S_dsp_out_i[9];
            O_data_out_q <= S_dsp_out_q[10+:C_DATA_WITH] + S_dsp_out_q[9];
        end


endmodule

對(duì)代碼的詳細(xì)講解參考B站視頻:

【FPGA數(shù)字信號(hào)處理之verilog實(shí)現(xiàn)數(shù)字混頻器】 https://www.bilibili.com/video/BV1hg411B7Rb/?share_source=copy_web&vd_source=9736f43bc2eebc284f4fbbe5805247a7


審核編輯 :李倩


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

    關(guān)注

    1664

    文章

    22513

    瀏覽量

    639648
  • 數(shù)字信號(hào)處理

    關(guān)注

    16

    文章

    580

    瀏覽量

    47922
  • 混頻器
    +關(guān)注

    關(guān)注

    11

    文章

    889

    瀏覽量

    50121

原文標(biāo)題:FPGA數(shù)字信號(hào)處理之verilog實(shí)現(xiàn)混頻器

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    MAX2690:低噪聲2.5GHz下變頻混頻器的卓越

    MAX2690:低噪聲2.5GHz下變頻混頻器的卓越選 在當(dāng)今電子設(shè)備飛速發(fā)展的時(shí)代,低噪聲、高性能的下變頻混頻器對(duì)于便攜式消費(fèi)設(shè)備的性能提升至關(guān)重要。MAX2690作為一款低噪聲、低功耗的下變頻
    的頭像 發(fā)表于 04-27 14:40 ?96次閱讀

    LTC5593:高性能雙路下變頻混頻器的卓越

    LTC5593:高性能雙路下變頻混頻器的卓越選 在無(wú)線通信和微波系統(tǒng)的設(shè)計(jì)中,混頻器作為核心組件之一,其性能直接影響著整個(gè)系統(tǒng)的表現(xiàn)。今天,我們就來(lái)深入了解一款高性能的雙路下變頻混頻器
    的頭像 發(fā)表于 04-24 17:40 ?648次閱讀

    LTC5562:低功耗寬帶有源混頻器的卓越

    LTC5562:低功耗寬帶有源混頻器的卓越選 在電子設(shè)計(jì)領(lǐng)域,混頻器是至關(guān)重要的組件,它在信號(hào)處理和通信系統(tǒng)中扮演著關(guān)鍵角色。今天,我們來(lái)
    的頭像 發(fā)表于 04-24 17:15 ?640次閱讀

    LTC5553:高性能微波混頻器的卓越

    LTC5553:高性能微波混頻器的卓越選 在微波領(lǐng)域,混頻器實(shí)現(xiàn)頻率轉(zhuǎn)換的關(guān)鍵器件,其性能直接影響到整個(gè)系統(tǒng)的性能表現(xiàn)。今天,我們就來(lái)深入了解一款高性能的微波
    的頭像 發(fā)表于 04-24 17:00 ?717次閱讀

    LT5579:高性能上變頻混頻器的卓越

    下載: LT5579.pdf 一、產(chǎn)品概述 LT5579是一款專為1.5GHz至3.8GHz頻率范圍優(yōu)化的高性能上變頻混頻器。它具有諸多出色的特性,為各類無(wú)線通信應(yīng)用提供了強(qiáng)大的支持。 1. 產(chǎn)品特性 高輸出IP3 :在2.14GHz時(shí),輸出IP3高達(dá)+27.3dBm,這意味著它能夠
    的頭像 發(fā)表于 04-24 16:55 ?710次閱讀

    LT5527:高性能下變頻混頻器的卓越

    LT5527:高性能下變頻混頻器的卓越選 在無(wú)線通信領(lǐng)域,混頻器作為關(guān)鍵的射頻前端器件,其性能直接影響著整個(gè)系統(tǒng)的表現(xiàn)。今天,我們就來(lái)深入探討一下 Linear Technology 公司
    的頭像 發(fā)表于 04-24 16:40 ?216次閱讀

    LT5525:高性能低功耗下變頻混頻器的卓越

    LT5525:高性能低功耗下變頻混頻器的卓越選 在電子工程領(lǐng)域,混頻器是射頻系統(tǒng)中至關(guān)重要的組件,其性能直接影響到整個(gè)系統(tǒng)的信號(hào)處理能力。
    的頭像 發(fā)表于 04-24 16:40 ?224次閱讀

    LT5521:高性能線性混頻器的卓越

    LT5521:高性能線性混頻器的卓越選 在電子工程師的設(shè)計(jì)工作中,混頻器是射頻系統(tǒng)里極為關(guān)鍵的組件。今天就來(lái)深入探討一款高性能的線性混頻器——LT5521,看看它有哪些獨(dú)特之處,能為
    的頭像 發(fā)表于 04-24 16:35 ?212次閱讀

    探索 HMC - MDB218 GaAs MMIC 亞諧波 IRM 混頻器:54 - 64 GHz 領(lǐng)域的卓越

    探索 HMC - MDB218 GaAs MMIC 亞諧波 IRM 混頻器:54 - 64 GHz 領(lǐng)域的卓越選 在高頻電子設(shè)計(jì)領(lǐng)域,混頻器是至關(guān)重要的組件,它能實(shí)現(xiàn)
    的頭像 發(fā)表于 04-24 14:30 ?164次閱讀

    HMC - MDB171 GaAs MMIC I/Q 混頻器:35 - 45 GHz 頻段的卓越

    HMC - MDB171 GaAs MMIC I/Q 混頻器:35 - 45 GHz 頻段的卓越選 在高頻電子設(shè)計(jì)領(lǐng)域,混頻器是至關(guān)重要的元件,它能夠實(shí)現(xiàn)
    的頭像 發(fā)表于 04-24 14:30 ?177次閱讀

    HMC - MDB172 GaAs MMIC I/Q混頻器:19 - 33 GHz的理想

    應(yīng)用場(chǎng)景 HMC - MDB172具有廣泛的應(yīng)用場(chǎng)景,適用于多種通信和雷達(dá)系統(tǒng): 點(diǎn)到點(diǎn)無(wú)線電 :在點(diǎn)到點(diǎn)的通信鏈路中,該混頻器能夠高效地處理信號(hào),確保信號(hào)的穩(wěn)定傳輸。
    的頭像 發(fā)表于 04-24 14:30 ?160次閱讀

    HMC - C014 GaAs MMIC 混頻器模塊:16 - 32 GHz 頻段的理想

    HMC - C014 GaAs MMIC 混頻器模塊:16 - 32 GHz 頻段的理想選 在電子工程領(lǐng)域,混頻器作為重要的射頻器件,廣泛應(yīng)用于各種通信和雷達(dá)系統(tǒng)中。今天我們要介紹的 HMC
    的頭像 發(fā)表于 04-23 17:55 ?976次閱讀

    HMC339 GaAs MMIC亞諧波泵浦混頻器:33 - 42 GHz的卓越

    HMC339 GaAs MMIC亞諧波泵浦混頻器:33 - 42 GHz的卓越選 在微波和通信領(lǐng)域,混頻器實(shí)現(xiàn)信號(hào)頻率轉(zhuǎn)換的關(guān)鍵器件。今
    的頭像 發(fā)表于 04-23 16:35 ?120次閱讀

    IQ混頻器為何能抑制鏡像頻率

    IQ混頻器是一種基于正交架構(gòu)的混頻器,通過(guò)將輸入信號(hào)分解為同相(I)和正交(Q)兩路信號(hào),并分別進(jìn)行混頻運(yùn)算,
    發(fā)表于 09-08 09:43

    數(shù)字信號(hào)處理的基本組成及其特點(diǎn)?

    的以數(shù)字信號(hào)處理器為核心部件的數(shù)字信號(hào)處理系統(tǒng)框圖,此系統(tǒng)既可處理數(shù)字信號(hào),也可
    的頭像 發(fā)表于 06-18 09:02 ?1565次閱讀
    <b class='flag-5'>數(shù)字信號(hào)</b><b class='flag-5'>處理</b>的基本組成及其特點(diǎn)?
    涞水县| 台北市| 绥德县| 满城县| 文山县| 慈溪市| 蛟河市| 五莲县| 乌什县| 泸溪县| 洪江市| 德州市| 钟山县| 耒阳市| 永嘉县| 遂平县| 甘肃省| 新邵县| 隆子县| 尚志市| 盐津县| 修武县| 腾冲县| 无棣县| 宿松县| 郯城县| 于田县| 彝良县| 四平市| 岳池县| 宁明县| 贵阳市| 满洲里市| 盈江县| 康定县| 年辖:市辖区| 乌苏市| 彭州市| 荥阳市| 南郑县| 盘锦市|