99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

GNU Radio中g(shù)r.hier_block2:層次化信號處理塊原理與實戰(zhàn)指南

GNU Radio中g(shù)r.hier_block2:層次化信號處理塊原理與實戰(zhàn)指南 在GNU Radio里摸爬滾打一段時間后你會發(fā)現(xiàn)一個問題流圖越來越大模塊之間的連線密密麻麻改一個參數(shù)要在好幾處地方來回找換個項目想把上一版的前端鏈路復(fù)用過來除了復(fù)制粘貼就是改錯漏改。這時候就該把目光轉(zhuǎn)向gr.hier_block2了。它是GNU Radio里用來構(gòu)建層次化信號處理塊的核心類作用和函數(shù)封裝差不多——把一組基礎(chǔ)塊組合成一個整體對外只暴露輸入輸出端口內(nèi)部隨便你怎么折騰。這篇文章我從原理、實操到踩坑完整過一遍適合已經(jīng)能跑通簡單流圖、想讓工程結(jié)構(gòu)更清晰的開發(fā)者參考。1. 為什么要在GNU Radio中構(gòu)建層次化塊1.1 從一張大圖到可復(fù)用積木先回憶一下典型的GNU Radio場景。剛開始接觸SDR時隨便一個接收鏈路就是十來個小塊串在一起下變頻、低通濾波、頻譜翻轉(zhuǎn)、同步、解碼……每個塊在GRC里都占據(jù)一塊畫布連接線密密麻麻鋪滿整個工作區(qū)。前期調(diào)試問題不大但項目一多問題全暴露了同一個前端鏈路要在四五個流圖里重復(fù)畫一遍改一個參數(shù)得把所有流圖都打開改一遍整體結(jié)構(gòu)不清晰別人拿到你的grc文件很難快速判斷哪一段是接收前端、哪一段是解調(diào)器想給鏈路做一個統(tǒng)一的增益接口但散落在各個塊的參數(shù)設(shè)置里沒有統(tǒng)一入口。gr.hier_block2就是在這一背景下被經(jīng)常拉出來救場的工具。它可以把你常用的那串塊比如射頻輸入 - 低噪放 - 帶通濾波 - 增益控制 - 基帶輸出全部塞進一個自定義的層次塊里。外部看它就是一個普通的塊有輸入端口、有輸出端口、有參數(shù)配置項。內(nèi)部則可以是一個完整的信號處理子圖。這和軟件工程里的函數(shù)抽象完全是同一個思路。1.2 hier_block2到底解決什么問題具體來說gr.hier_block2的價值體現(xiàn)在三個方面第一是復(fù)用性。一個自定義層次塊可以被多個頂層流程圖引用也可以被另外的層次塊再次包含形成多級嵌套。我在做某個跨平臺信號接收系統(tǒng)時就把自動增益控制直流消除信號功率檢測封裝成一個層次塊然后在調(diào)頻解調(diào)、正交幅度解調(diào)等好幾個分支里直接復(fù)用后端邏輯完全不用關(guān)心前端細節(jié)。第二是可維護性。如果想調(diào)整前端鏈路的濾波器階數(shù)、增益范圍只需要修改層次塊內(nèi)部定義所有引用它的流圖同步生效不需要逐個去改。這個優(yōu)勢在GRC里體現(xiàn)得特別明顯。第三是接口隔離。層次塊對外暴露的端口數(shù)量和數(shù)據(jù)類型是固定的內(nèi)部塊無論怎么調(diào)整只要接口不變外部代碼就不會被影響。這給多人協(xié)作項目省了很多溝通成本。還有一點很多人沒意識到gr.hier_block2幾乎是零性能損失的。GNU Radio在真正運行時會先把包含層次塊的流圖展開成扁平化的流程拓撲也就是說內(nèi)部各個塊仍然是直接首尾相連的層次塊只是一層邏輯上的殼并不產(chǎn)生多余的數(shù)據(jù)拷貝或調(diào)度開銷。這一點讓它比用文件或Socket中轉(zhuǎn)信號的笨辦法靠譜得多。2. gr.hier_block2的底層機制與接口設(shè)計2.1 輸入輸出簽名先搞清楚這個塊長什么樣使用gr.hier_block2時第一步是定義這個層次塊對外暴露幾個輸入、幾個輸出以及每個端口上傳輸?shù)臄?shù)據(jù)類型。這一步通過gr.io_signature完成。from gnuradio import gr gr.io_signature(1, 1, gr.sizeof_gr_complex)這行代碼的意思是該塊的流輸入端口至少1個、最多1個每個樣本是復(fù)數(shù)類型。第一個參數(shù)是min_streams最小流數(shù)量第二個參數(shù)是max_streams最大流數(shù)量第三個參數(shù)是sizeof_stream_item每個采樣占用的字節(jié)數(shù)通常用gr.sizeof_float4字節(jié)浮點、gr.sizeof_gr_complex8字節(jié)復(fù)數(shù)、gr.sizeof_byte1字節(jié)等常量。如果層次塊需要多個不同類型的輸入就要用到gr.io_signaturev它把每個流的字節(jié)數(shù)分別列出來例如一個輸入是復(fù)數(shù)流另一個輸入是浮點控制流寫法是gr.io_signaturev(1, 2, [gr.sizeof_gr_complex, gr.sizeof_float], 1, 1, [gr.sizeof_gr_complex])在繼承g(shù)r.hier_block2時父類構(gòu)造函數(shù)的第二個和第三個參數(shù)就是輸入輸出簽名所以自定義層次塊的骨架是這樣的from gnuradio import gr class my_hier_block(gr.hier_block2): def __init__(self): gr.hier_block2.__init__( self, my_hier_block, gr.io_signature(1, 1, gr.sizeof_gr_complex), gr.io_signature(1, 1, gr.sizeof_gr_complex) )很多時候你會覺得簽名不就是寫幾個數(shù)字嗎不重要。但實際上類型不匹配是GNU Radio里最常見的運行時錯誤之一如果一個層次塊聲明輸入為復(fù)數(shù)但在主流程圖里給它接了浮點信號源流圖運行起來立刻就會報類型錯誤或者出現(xiàn)垃圾數(shù)據(jù)。所以簽名定義要想清楚再動手。2.2 流的連接與端口映射層次塊內(nèi)部連接流圖時self就代表這個層次塊自身同時充當外部輸入端口和外部輸出端口的映射點。self.connect(self, self.some_internal_block) self.connect(self.some_internal_block, self)第一行的含義是把本層次塊的第一個輸入端口接到內(nèi)部塊的輸入上。第二行的含義是把內(nèi)部塊的輸出接到本層次塊的第一個輸出端口上。對這里的connect并不僅僅是連接兩個塊還承擔了端口傳遞的職責(zé)。如果內(nèi)部鏈路有一段中間處理比如輸入 - 濾波A - 濾波B - 輸出代碼自然就是三條連接self.connect(self, self.filter_a) self.connect(self.filter_a, self.filter_b) self.connect(self.filter_b, self)有一個容易搞反的點connect(self, block)里的self必須是數(shù)據(jù)流的方向起點block是終點而connect(block, self)里的self則是終點。用自然語言理解self就是端口墻數(shù)據(jù)流從墻上流進來穿過內(nèi)部管線再從墻上流出去。連接時還有一個隱藏要求內(nèi)部塊的輸入輸出類型必須和簽名一致。比如簽名聲明了復(fù)數(shù)輸入結(jié)果內(nèi)部第一個塊是浮點濾波器fir_filter_fff兩者類型對不上GRC在生成代碼時不一定報錯運行時卻可能直接段錯誤或者什么都收不到。所以我在定義層次塊時通常會在內(nèi)部第一個塊的輸入前加一個類型轉(zhuǎn)換塊比如blocks.complex_to_float把類型問題在內(nèi)部消化掉。2.3 消息端口讓層次塊活起來除了傳統(tǒng)的流端口gr.hier_block2還支持消息端口。流端口適合傳輸連續(xù)信號樣本消息端口則適合傳輸事件、指令或稀疏數(shù)據(jù)比如更新某參數(shù)報告當前狀態(tài)收到一個控制指令。消息端口的注冊方式是from gnuradio import pmt self.message_port_register_in(pmt.intern(cmd)) self.message_port_register_out(pmt.intern(status))然后通過self.msg_connect把消息路徑穿起來self.msg_connect(self, cmd, self.amp, set_msg) self.msg_connect(self.amp, msg, self, status)這里把層次塊的cmd消息端口接到內(nèi)部放大器塊的set_msg端口把內(nèi)部放大器的msg端口接到層次塊的status端口。這樣外部可以發(fā)送pmt消息動態(tài)調(diào)整增益還能收到內(nèi)部返回的狀態(tài)信息。消息端口讓層次塊不再是死板的靜態(tài)管線而是一個可以接受外部控制的組件。3. 動手實操從零構(gòu)建一個自定義層次塊3.1 環(huán)境準備與最小骨架先準備一個可用的GNU Radio開發(fā)環(huán)境常見的版本是3.8、3.10。環(huán)境安裝好以后你可以選擇兩種方式構(gòu)建層次塊一種是直接用Python寫一個類另一種是在GRC里用圖形化方式創(chuàng)建。我推薦兩種都掌握Python方式適合邏輯比較復(fù)雜、需要頻繁修改代碼的場景GRC方式適合快速搭建、給別人看圖理解的場景。先給出一個最小Python骨架from gnuradio import gr from gnuradio import blocks class dc_remover_hier(gr.hier_block2): def __init__(self): gr.hier_block2.__init__( self, dc_remover_hier, gr.io_signature(1, 1, gr.sizeof_gr_complex), gr.io_signature(1, 1, gr.sizeof_gr_complex) ) # 內(nèi)部塊定義 self.dc_blocker blocks.dc_blocker_cc(1024, False) # 連接 self.connect(self, self.dc_blocker) self.connect(self.dc_blocker, self)這個層次塊的功能就一句話去掉復(fù)數(shù)信號里的直流分量。外部看起來它就是一個直流消除器內(nèi)部用到了dc_blocker_cc。把這個類放在某個Python文件里其他流圖里直接import然后實例化即可。3.2 例一單輸入單輸出的信號調(diào)理塊早些時候做某圖像處理Demo的射頻前端模擬時我需要反復(fù)在多個測試流圖里插入直流消除 帶通濾波 自動增益控制鏈路。每次復(fù)制粘貼這些塊參數(shù)還容易串。后來我干脆寫了一個信號調(diào)理層次塊from gnuradio import gr from gnuradio import blocks, filter class analog_frontend_hier(gr.hier_block2): def __init__(self, samp_rate2e6, center_freq100e3, low_cut90e3, high_cut110e3, gain2.0): gr.hier_block2.__init__( self, analog_frontend_hier, gr.io_signature(1, 1, gr.sizeof_gr_complex), gr.io_signature(1, 1, gr.sizeof_gr_complex) ) # 直流消除 self.dc_blocker blocks.dc_blocker_cc(1024, False) # 帶通濾波器使用firdes設(shè)計線性相位FIR濾波器 taps filter.firdes.band_pass(1.0, samp_rate, low_cut, high_cut, int(samp_rate / 1000), filter.firdes.WIN_HAMMING) self.band_pass filter.fir_filter_ccf(1, taps) # 增益控制 self.amp blocks.multiply_const_cc(gain) # 內(nèi)部鏈路 self.connect(self, self.dc_blocker) self.connect(self.dc_blocker, self.band_pass) self.connect(self.band_pass, self.amp) self.connect(self.amp, self)這個層次塊把三個常用處理單元串在了一起對外就是一個模擬前端盒。構(gòu)造參數(shù)low_cut、high_cut、gain成為了這個盒子的配置項外部想用不同帶寬、不同增益直接改參數(shù)而不用關(guān)心內(nèi)部濾波器系數(shù)是怎么設(shè)計的。這里有個細節(jié)filter.firdes.band_pass返回的是浮點濾波器系數(shù)然后用fir_filter_ccf這個復(fù)數(shù)輸入、浮點系數(shù)、復(fù)數(shù)輸出的濾波器去執(zhí)行。如果寫成fir_filter_fff參數(shù)就對不上了流圖會直接報類型錯誤。3.3 例二帶參數(shù)動態(tài)更新的濾波器鏈上面的層次塊參數(shù)是在初始化時固定的如果想運行時動態(tài)調(diào)整帶寬或者增益需要在層次塊里顯式暴露setter方法。這不是gr.hier_block2自動提供的功能很多人在這里踩坑——初始化好之后外部想改層次塊內(nèi)部某個塊的參數(shù)結(jié)果發(fā)現(xiàn)沒法直接操作。正確做法是在自定義類里加方法def set_gain(self, gain): self.amp.set_k(gain) def set_bandwidth(self, low_cut, high_cut): taps filter.firdes.band_pass(1.0, self.samp_rate, low_cut, high_cut, int(self.samp_rate / 1000), filter.firdes.WIN_HAMMING) self.band_pass.set_taps(taps)multiply_const_cc有一個set_k方法可以修改增益fir_filter_ccf有set_taps方法可以更新濾波器系數(shù)。把這些方法放在層次塊里外部就能像操作一個普通變量一樣控制整個鏈路的特性。這里需要注意動態(tài)改濾波器系數(shù)一般建議重新設(shè)計一組新的taps后一次性設(shè)置而不是逐點修改否則會產(chǎn)生幅度抖動這在信號處理上是個常見的經(jīng)驗。3.4 例三多輸入多輸出與消息控制只看單輸入單輸出還體現(xiàn)不出層次塊的全部威力。實際通信系統(tǒng)里經(jīng)常需要兩個輸入合成一個輸出比如一個簡單的混頻測試鏈路本振信號和待調(diào)信號同時輸入內(nèi)部相乘后輸出。class mixer_hier(gr.hier_block2): def __init__(self): gr.hier_block2.__init__( self, mixer_hier, gr.io_signaturev(2, 2, [gr.sizeof_gr_complex, gr.sizeof_gr_complex]), gr.io_signature(1, 1, gr.sizeof_gr_complex) ) self.mixer blocks.multiply_cc() # 端口0和端口1分別連到乘法器的兩個輸入 self.connect((self, 0), (self.mixer, 0)) self.connect((self, 1), (self.mixer, 1)) self.connect(self.mixer, self)注意到關(guān)鍵字connect((self, 0), ...)。當層次塊有多個輸入端口時必須在self后面帶上端口序號(self, 0)表示第0個輸入(self, 1)表示第1個輸入。同理輸出側(cè)多端口時也用(self, n)這種寫法。這個語法在單輸入情況下可以省略但多端口時一旦漏掉序號GNU Radio默認連到的是第0號端口很容易產(chǎn)生明明有兩個輸入但第二個輸入沒接上的怪現(xiàn)象。如果你希望層次塊同時支持流控制和消息控制可以把前面提到的消息端口注冊也加進來。這樣這個混頻器不但可以實時接受本振信號還可以通過消息指令切換增益或工作狀態(tài)。3.5 在GRC中使用用Python寫好層次塊后在GRC里用起來有兩種方式。第一種是把你的層次塊封裝成GRC模塊。GRC會自動掃描~/.grc_gnuradio和gr-*目錄下的XML定義文件把自定義層次塊顯示在塊庫中。你可以為層次塊寫一個XML描述文件指明名稱、參數(shù)、端口類型然后就能像使用內(nèi)置塊一樣拖拽使用。對大多數(shù)開發(fā)者來說這一步容易卡在XML的格式上我提供一個樸素的示例?xml version1.0? block nameAnalog Frontend Hier/name keyanalog_frontend_hier/key categoryCustom/category importfrom examples.frontend import analog_frontend_hier/import makeanalog_frontend_hier($samp_rate, $center_freq, $low_cut, $high_cut, $gain)/make param nameSamp Rate/name keysamp_rate/key typereal/type /param param nameCenter Freq/name keycenter_freq/key typereal/type /param param nameLow Cut/name keylow_cut/key typereal/type /param param nameHigh Cut/name keyhigh_cut/key typereal/type /param param nameGain/name keygain/key typereal/type /param sink namein/name typecomplex/type /sink source nameout/name typecomplex/type /source /block第二種更輕量如果只是在一個工作區(qū)內(nèi)復(fù)用直接在GRC里框選一組塊右鍵選擇Create Hier BlockGRC會自動把選中的塊折疊成一個層次塊并讓你定義外部端口。這個功能在處理一次性的試驗流圖時非常好用省去手寫XML的繁瑣。要注意的是GRC生成的層次塊通常并存兩個文件一個.grc圖形文件和一個.py實現(xiàn)文件。圖形文件負責(zé)描述內(nèi)部結(jié)構(gòu)Python文件才是真正被主流程import執(zhí)行的。如果直接編輯Python文件一定要保證和GRC里看到的圖一致否則容易張冠李戴。4. 常見錯誤排查與技巧實錄4.1 錯誤速查表我把這幾年在gr.hier_block2上踩過的坑按癥狀和原因整理成一張表遇到問題直接對著排查癥狀常見原因解決辦法運行時提示輸入輸出端口數(shù)量不匹配io_signature或io_signaturev參數(shù)寫錯核對min_streams和max_streams以及每個流的數(shù)據(jù)類型字節(jié)數(shù)連接時報錯IO signature mismatchconnect時把不同數(shù)據(jù)類型的塊連在一起在內(nèi)部加blocks.float_to_complex或complex_to_float做類型轉(zhuǎn)換流圖運行后輸出端口沒有數(shù)據(jù)內(nèi)部鏈路沒有連接self輸出數(shù)據(jù)終止在內(nèi)部某個sink檢查是否有connect(internal_block, self)這條路徑消息發(fā)了但內(nèi)部塊不響應(yīng)消息端口名稱不一致比如set_msg寫成setmsg用pmt.intern統(tǒng)一名稱并在GRC里核對端口名多次實例化層次塊后參數(shù)互相污染在類里定義了共享可變對象如列表、字典把所有可變狀態(tài)放到__init__里用實例變量承載不要用類變量層次塊里有file_sink導(dǎo)致后續(xù)塊收不到數(shù)據(jù)數(shù)據(jù)流被sink消耗但沒有加一個分支到輸出如果需要同時記錄數(shù)據(jù)并輸出要用blocks.tee把數(shù)據(jù)分流動態(tài)改參數(shù)無效層次塊沒有暴露setter方法或方法名拼寫錯誤在層次塊里顯式定義set_xxx方法調(diào)用內(nèi)部塊的對應(yīng)方法4.2 排查思路與調(diào)試技巧排查層次塊問題時我一般遵循先類型、再拓撲、再數(shù)據(jù)的順序。先類型確認外部端口的輸入輸出類型與內(nèi)部鏈路首尾塊的類型完全匹配。這一步出錯最快暴露但也是新人最常犯的。我的習(xí)慣是在動手寫connect之前先把鏈條中每一個塊的數(shù)據(jù)類型寫下來像列方程一樣把類型流理一遍complex - dc_blocker_cc(complex) - fir_filter_ccf(complex) - multiply_const_cc(complex) - complex輸出。這樣類型鏈完全一致再寫連接代碼就很少出錯。再拓撲在GRC里把層次塊展開查看內(nèi)部圖檢查是否存在懸空的輸出端點。很多時候數(shù)據(jù)看起來沒信號是因為內(nèi)部某個塊雖然接了輸入但它的輸出并沒有繼續(xù)連接到self輸出端口這個塊實際上成了信號黑洞。如果你輸出端口數(shù)量多建議逐個端口追蹤看它的來源是否有完整的鏈路。最后看數(shù)據(jù)在層次塊內(nèi)部臨時插入blocks.vector_sink_c或blocks.probe_signal_c來觀察中間結(jié)果。不要迷信肯定沒問題先用數(shù)據(jù)確認每一級輸出是否正常再判斷是哪一級出了問題。調(diào)試完后記得移除這些探測塊否則會引入不必要的計算開銷。4.3 幾個值得注意的實踐細節(jié)構(gòu)造函數(shù)調(diào)用順序不能亂。Python里gr.hier_block2.__init__要先執(zhí)行把流圖骨架初始化好然后才能connect。如果你在父類初始化之前就創(chuàng)建內(nèi)部塊并嘗試連接運行時會出現(xiàn)訪問空指針的致命錯誤。這一點和普通Python類的習(xí)慣不一致寫的時候要刻意注意。self就是端口別重復(fù)實例化。有些新手會把層次塊自己再實例化一次或者嘗試在內(nèi)部connect到外部實例導(dǎo)致循環(huán)引用。記住層次塊內(nèi)部使用的自我引用就是self對象本身不需要再新建一個同類的實例。關(guān)于消息端口名稱大小寫。pmt.intern(Set_Gain)和pmt.intern(set_gain)是兩個完全不同的端口。GRC中顯示的端口名和代碼中的字符串必須一字不差否則消息連接在運行時是靜默失敗的既不給提示也不工作排查起來很浪費時間。層次塊內(nèi)部不要放頂層控制塊。比如blocks.udp_sink、qtgui這類可視化或網(wǎng)絡(luò)塊放進來會造成層次塊難以復(fù)用。屬于外部副作用的塊應(yīng)該留在頂層流圖層次塊保持純粹的數(shù)據(jù)處理職責(zé)這樣測試時才不會動不動彈出圖形界面。5. 更深一層層次塊的性能優(yōu)化與協(xié)作實踐5.1 運行時展開機制對性能的影響前面提到gr.hier_block2在運行時會被展開成扁平化流圖。機制上GNU Radio先將層次塊內(nèi)部的所有塊拆出來重新建立端口映射關(guān)系再統(tǒng)一交給調(diào)度器。所以理論上只要內(nèi)部不引入多余的塊層次化的結(jié)構(gòu)不會帶來性能懲罰。但多余要小心。一個常見行為是為了讓層次塊看起來清晰隨手在內(nèi)部加入blocks.keep_one_in_n、blocks.throttle這類采樣率控制塊結(jié)果整個處理鏈路的吞吐量反而被它們限制住了。特別是throttle它本意是在仿真環(huán)境中限制流速防止CPU跑滿如果放到層次塊里這個限制會傳播到所有使用該層次塊的流圖導(dǎo)致真實測試時性能下降。我的建議是層次塊內(nèi)部只保留必要的信號處理塊所有仿真限速功能放在頂層流圖。還有一個容易被忽略的細節(jié)層次塊內(nèi)部的調(diào)度粒度。GNU Radio調(diào)度器是按塊調(diào)度的扁平化之后內(nèi)部每個塊依舊是獨立的調(diào)度單元。一個層次塊里有幾十個小塊拓撲過深可能帶來調(diào)度上下文切換開銷。雖然大多數(shù)情況下不明顯但在追求極端實時性比如處理幾百MHz采樣率時可以考慮把緊耦合的處理合并到一個OOT C塊中。這也是一種合理的優(yōu)化策略不是說有了層次塊就非要層層嵌套。5.2 在團隊協(xié)作中使用層次塊做過多項目復(fù)用之后我認為gr.hier_block2最大的隱藏價值是給團隊建立了一塊公共地基。當多個開發(fā)者都在維護各自的信號處理鏈路時如果沒有統(tǒng)一的層次塊抽象A寫的濾波參數(shù)和B寫的濾波參數(shù)很難對齊有了公共層次塊接口一旦凍結(jié)內(nèi)部實現(xiàn)誰變動都只影響內(nèi)部。我在參與某跨平臺系統(tǒng)的仿真部分時團隊把信道編碼、數(shù)字調(diào)制、成形濾波封裝為發(fā)送端層次塊把匹配濾波、定時同步、均衡封裝為接收端層次塊。測試不同調(diào)制方案時只需要替換其中一個層次塊后端誤碼率評估完全不變。這個方案的缺點是如果層次塊接口設(shè)計得不好比如端口類型定義過細非要單獨為某個調(diào)制方式開端口復(fù)用范圍就會很窄。接口設(shè)計的另一個經(jīng)驗是盡可能使用復(fù)數(shù)基帶信號作為層次塊統(tǒng)一接口而不是暴露I/Q兩路單獨的浮點端口。復(fù)數(shù)接口表示這里是一個完整的復(fù)信號后續(xù)接入濾波器、混頻器、解調(diào)器都更方便強行拆分I/Q會讓層次塊的使用者被迫處理兩路信號的同步問題。5.3 與嵌入式Python塊的選型建議gr.hier_block2經(jīng)常和另一種自定義塊概念混淆即gr.embedded_python_block。我在實際項目里的選型經(jīng)驗是如果要做的事情是組合已有塊比如把官方提供的濾波器、放大器、信號源按順序連起來使用gr.hier_block2因為它沒有work函數(shù)不需要自己維護采樣數(shù)據(jù)的輸入輸出循環(huán)代碼量小、不易出錯。如果要做的事情是實現(xiàn)一個全新算法比如自己寫一個符號定時同步器、自定義的調(diào)制映射器使用embedded_python_block或C OOT塊因為這時需要精確控制每個采樣如何處理需要重寫work方法。兩者還可以混用在gr.hier_block2內(nèi)部可以包含一個embedded_python_block實現(xiàn)既有自定義算法、又有現(xiàn)成塊組合的鏈路。比如在一個接收層次塊內(nèi)部先用官方低通濾波再接入自己寫的判決器Python塊是完全可以的。一點個人體會代碼寫多了會發(fā)現(xiàn)工具本身并不復(fù)雜真正塑造工程質(zhì)量的是你對結(jié)構(gòu)邊界的感知。gr.hier_block2提供的就是這樣一種能力把信號流變成信號組件讓復(fù)雜的系統(tǒng)可以被分而治之。我至今還記得第一次把一組散落的塊折疊成一個層次塊時整個GRC畫布瞬間干凈了那種清爽感確實很值。如果你剛開始嘗試建議從小處入手先挑一個你重復(fù)畫過三次的鏈路把它封裝成層次塊在流圖里替換掉原來的散塊。然后試著加一兩個setter方法、加一個消息端口把它變成一個可以動態(tài)控制的組件。過程中踩到任何坑都回到這篇文章的排錯表里找找大概率能找到對應(yīng)的解法。GNU Radio的學(xué)習(xí)曲線不算平緩但把層次化這一關(guān)過了后面的工程化之路會順很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
Xx色综合| 婷婷基地成人五月天| 久这里只有精品99| 伊人色五月| 第五色婷婷| 久久精品小视频| 人人叉久| av操B网站| 色情五月婷| 五月丁香日本片| 殴美97色| 91人妻九色大屁股| 九热精品| 亚洲综合婷婷| 国熟女视频| 丁香六月五月天| 日韩啪| 国产精品a无线| 五月婷婷免费在线观看视频| 九九免费在线视频| 丁香月五月天婷婷久久| 天天爽爽日日做做| 激情久久久| 久久99草五月婷婷| 综合久久十三| 婷婷97色| 影音先锋男士资源网一区| 人人草人人舔| 丁香婷婷久久| 99国产精品久久久久久久久久久| 色综合激情| 丁香五月天中文字幕| 久久久er热| 96性爱视频| 97人人操人人爽| 激情综合婷婷久久| 91啪啪啪啪| 777米奇影视第四色| www.激情五月| 五月综合视频| 色婷婷19| 六月色色| 另类在线| 五月婷婷色欲| av婷婷丁香| 综合色图婷婷| 久久婷婷六月综合综合| 五月停停999| 色婷婷五月天偷拍| 丁香婷婷五月激情综合| 99热热热99精品丁香| 色欲av伊人久久大香线蕉影院| 亚洲日日操| 五月丁香六月婷婷中合网| 九九色婷婷| 精品在线网站| 激情五月激情综合俺也去婷婷小说| AV成人在线播放| 亚洲人成网站999久久久综合| 日韩成人中文| 亚洲精品网址| 99色天堂| 狠狠久久婷五月综合色| site:feetmall.com| 色人五月婷婷| 色五月婷婷五月天激情综合| 五月天伊人综合| 在线视频99| 五月激情在线| 激情小说婷婷| 九九丁香社区欧美激情| 丁香五月Av| 五月婷婷综合在线观看| 五月丁香激情四射| BBWCUCKOLD精品熟妇| 日产精品一线二线三线芒果| 九月婷婷激情久久| 好好干Av| 婷婷五月天伊人网| 中文av网站| 色婷婷99| 综合99久久天天综合| 美女黄频aⅴ视频| 狠狠色丁香久久久婷| 激情深爱综合| 婷婷五月天激情免费在线观看| 色婷婷小说网| 青草视频在线播放| 色在线99| 婷婷涩五月天综合| 91精品久久久久| 五月丁香影视| 五月婷婷草| 欧美天天草人人草| 97大香蕉五月天| 这里只有精品在线视频精品| 国外亚洲成AV人片在线观看| 久9热视频| 五月丁香激| 九月色婷婷| 九九操综合网| 26uuu最新地址| 超碰免费人| 9久操| 五月丁香狠狠爱| 天天 青草 丝袜制服 在线| 天天操夜夜爱| 蜜臀av无码久久久久久久久| 亚洲va综合va国产va中文| 大香蕉AV在线| 日本女人久久| 人人舔人人| 天天色丁香| 中文字幕丰满孑伦无码专区| 一级黄色影片| 色色99| 中文字幕按摩做爰| 婷婷五月天堂网| 激情五月婷婷综合色播小说| 公的粗大挺进了我的密道| 无码九九九九| 丁香五月a| 久久机热/这里只有精品| 99超超碰| 五月丁香亭亭成人电影| 激情深爱五月天| 婷婷五月色花丁香社区| 亚洲五月婷天天操| 欧美电影在线观看| 色六月丁香婷婷狠狠干| 成功精品影院| 丁香五月1页| 婷婷婷婷婷开心无码播放| 亚洲中文字幕av| 金品在线视频99| 六月天丁婷婷| 真实的国产乱XXXX在线91| 婷婷97碰碰| 无码yw| 色综合五月婷婷狠狠干| 综合五月草 | 久久九九怡红院| www色五月| 亚洲网站观看视频| 五月天婷婷激情春色小说| 色偷偷五月天| 无码一区二区日韩| 国产成人精品一区二三区熟女在线| 操操天堂| 色99色| 大香蕉五月天婷婷| 综合网激情| 99精品久久久久久久婷婷| 久热69| 麻豆精品| 超碰超碰在线| 日韩激情婷婷五月天| 丁香五月天激情综合| 97久久久久| 久久92| 婷婷五月天亚洲综合| 亚美欧色影院| 欧美综合123区| 精品99在线| 婷婷五月色图| 99色热| 五月丁香综合激情在线观看| 超碰av在| 九九热精品| 精品爆操| 色丁香五月婷婷| 99色视| 久久婷综合| www.sd-xiangsu.cpm| 搡BBBB搡BBB搡18| 超碰精品手机在线| 亚洲天堂色色| 六月激情婷婷| 熟女色色一区二区| 2017人人操| 秋霞成人毛片一级A片| 99ri在线视频| 色色色色色爱| 97干在线视频| 丁香婷婷浪潮AV久久综合| 婷婷激情五月天激情| 91xxxx九色| 久久综合婷婷五月| 激情综合网,婷婷| 久久成人亚洲欧美电影| 草草视频91| 五月丁香婷婷五月色| 大操人妻| 婷婷丁香18| 九九热这里只有精品一| 婷婷性爱网| 天天天天操| 丁香激激情网| 午夜婷婷丁香| 丁香婷婷超碰 | 久久 中文 日本| 日本三级韩三级99久久| 色婷婷色五月综合| 伊人影音无码一区二区三区 | AV堂狠狠干| 婷婷影视久久| 日本婷婷| 色五月综合在线| 色99综合视频| 麻豆科斗777| 97婷婷丁香五月综合| 亚洲不卡| 色色综合色| 开心婷婷中文字慕| 开心婷婷五月| 9久热这里只有精品| 国产三级片91| 婷婷丁香黄色| 亚洲第一成人AV| 九九热黄色| 久久久精品色色色| 大伊久久| 开心五月婷婷在线视频免费观看| 激情综合网丁香| 五他月天啪啪啪| 97色婷| 色五月天成人| 婷婷综合五月色播| 婷婷色播综合五月| AAAA亚洲| 99热日韩这里只有精品| 综合色播| 婷婷色网| 开心婷婷五月天综合| 91人人妻人人操| 少妇搡BBBB搡BBB搡毛茸茸| AV成人在线播放| 色狠狠色狠狠| 狠狠色婷婷六月激情网| 艾小青av| 综合深爱五月| 色五月丁香六月婷婷| 欧美激情五月天婷婷| 综合性爱网| 亚洲AV日韩在线观看| 99色视频| 久久人妻少妇嫩草AV| 99久久这里只有精品| 影音先锋91| 91/九色黑人| 熟妇人妻中文字幕无码老熟妇| 亚洲AV网站在线观看| 亚洲成人在线五月天| 午夜无码精品色综合久久| 无码一区二区日韩| 求可以看的AV网址| 色欲资源网| 怡红院精品视频久久久久久久久| 人人操女人| www。五月,com| 成人精品视频99在线观看免费| 另类天堂| 亚洲欧洲中文日韩久久AV乱码| 婷婷五月天在线观看| 91综合在线| 五月丁香人妻| 99色网站| 99久久综合网| 六月丁香综合999| 九九婷婷热| 九九热经典视频在线观看| 九九热10| 蜜桃婷婷丁香| 丁香婷婷色五月| 丁香五月激情视频| 天天综合精品| 五月婷婷丁香| 教师性爱毛片| 激情亭亭五月| 成人操呦av| 色五月丁香一区在线| 26uuu欧美亚洲日韩| 天天日夜夜夜操操操操| 五月综合婷婷五月| 成人精品在线| 亚洲日韩成人三级av| 亚洲情欲久久| 99狠狠| 丁香六月狠狠干| 四色永久成人网站| 婷婷丁香色五月天| 亚洲小电影在线观看黄999| 九九黄色网| 日日操,日日爽| 99久久久国产精品免费蜜乳tv| 婷婷六月视频| www.激情| 91性交在线播放| 久久超视频| 国产片XXXXA片国语对白| 日韩一级| 日本九九热| 亚洲在线免费成人| 婷婷综合精品视频97| 色久综合天天做视频| 九九精品热播| 成人国产欧美大片一区| 五月丁香婷婷婷激情爱爱| 99re视频在线播放| www.五月天社区| 激情综合色图| 久久涩视频| av色婷婷| 色播播婷婷| 色屌丝中文字幕| 91九色偷拍| 色丁香五月天| 天天干 夜夜爽| 在线播放成人网站| 香蕉乱插| 性生活久久人妻| 99碰超| 欧美色男人网站| 99热国产婷婷| 五月婷婷黄| 亚洲国产色婷婷| www.激情五月天| 超碰人人干| 97精品人人A片免费看| 五月丁香网站| 久久婷婷六月综合综合色| 色婷久久| 婷婷综合另类小说| 97资源欧美日韩大香蕉超碰一区| 五月婷婷婷色| 六月婷婷国产| 国产肥白大熟妇BBBB视频| 99ri精品在线| 免费看欧美成人A片无码| 九九热123| 六月色日韩| 99热日| 超级碰 久久9| 久久久久思思热| 五月天激情网图片| 丁香五月天天| 久久精彩免费视频| 色婷五月天亚洲| 五月婷婷色| 九九性视频| 狠狠干在线| 亚洲熟妇AV乱码在线观看| 偷拍91九色| 日本VA视频| 成人在线视频网| 思思热久久艹| 婷婷色狠狠| 激情六月丁香| 日日日日操| av中文在线| 日本婷婷色| 久久久人妻人伦| 99爱免费视频| 久久久久久欧美精品se一二三四| 91九色中文| 国产日韩欧美性生活| 色色网站在线| 久久色大香蕉| 婷婷五六月丁香| 99热在线观看免费精品| 日本黄色一级| 久久五月天合网| 精品乱码久久久久| 68热超碰在线| 狠狠搞综合色| 桃色五月天| 色婷在线视频| 丁香六月婷婷姐网| 色五月激情五月| 婷婷久久亚洲| 婷婷色片| www.久9| 99热这里精| 狠狠色丁香| 亚洲国产网站| 思思热精品在线视频| 九九av| 丁香六月色婷婷| 激情五月婷婷丁香| 婷色综合| 激情五月婷在线精品| 亚洲成人免费在线| 一起草无码视频| 久久免费操| 免费观看高清无码| 五月天久久网站| 免费无码毛片一区二区A片| 婷婷99| 综合色影| 一本久道综合99| 激情五月天婷婷丁香 | 色综合五月在线| 黄色AV日韩| 色五月自偷自拍婷婷婷婷| 日韩操逼小电影| 无码日本精品XXXXXXXXX| 丁香五月激情宗合网| 六月丁香综合| 97狠狠色| 四色五月婷婷| 蜜臀A∨在线水帘洞| 噜噜五月天综合| 丁香六月啪啪啪| 日本一级| 夜夜嗨一区二区三区直播内容 | 丁香九色不卡aaa| 天天操天天日天天爽| 激情五月综合网| 天天色天天色天天色天天色天天色天天色| 久久免费精彩视频| 天天日人人| 精品无码久久久久久久久| 噜噜色五月| 免费视频99| 五月婷婷综合热| 日本三级日本三级99| 亚洲婷婷五月天综合| 久久人妻视频| 久久婷婷操| 五月天婷婷婷| 五月久久婷婷成人网| 月色色综合婷婷网| 99热青青草| 色丁香五月婷婷| 色色色无码| 五五月丁香花激情综合网| 久久婷婷五月| 激情五月深爱婷婷| 久久WW| 91丨九色丨熟女高潮| 那里有AV网址| 色99久草在线| 五月婷婷色播| 99惹| 天天综合网色欲香| 色狠狠色狠狠| 99在线视频在线观看| 激情五月婷婷丁香六月| 五月婷婷综合网| 啄木鸟黑丝一区二区| 久久99人人| 第五色婷婷| 操久久网| 色9色| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 婷婷刺激综合| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 丁香五月色五月| 99爱视频在线观看| 骚。com| 97色在线观看视频| 精品一二三区久久AAA片 | 五月天丁香成人| 天天综合色丁香| 啪啪操网| 天天做天天爽| 亚洲第一综合| 婷婷激情鹿城五月天| 69精品无码一区二区三区| 婷婷色情网| 九九视频精品在线免费| 日本婷婷在线| 婷婷在线网| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 五月天婷a在线| 九九热视频免费观看| 开心五月婷婷婷美女| √天堂资源在线人妻熟女| 婷婷色五月激情| 日韩十国产极品久久| 五月丁香网站| 婷婷五月色综合| 五月天婷婷自拍图片在线观看| AV在线不卡网站| 色色色图| 99免费视频| 大狠狠在线| 噜噜噜狠狠色综| 丁香五月婷婷操逼| 国产精品国产成人国产三级| 亚洲欧洲国产精品| 狠狠五月激情丁香六月| 我要色综合五月婷婷| 久久与婷婷| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 97久操| 精品国产AV色一区二区深夜久久| 中文字幕精品在线观看| 99热.com| 五月丁香激情婷婷综合| 99久久99热| 综合色五月| 大香蕉丁香| 久久婷婷丁香花综合网| 成人做爰高潮A片免费视频| 任你日视频| 天天天久久人人人合| 春色激情第四色| 91狠狠色丁香婷婷综合久久| 97人妻碰碰碰久久香蕉| 成年视频免费观看| 黄色aa观看aaguochan| 8090在线影视少妇| 久热这里只有精品99re| 9久热在线视频精品| 婷婷亚洲天堂| 97资源欧美日韩大香蕉超碰一区| 五月丁香成人网| 日本性激情色播| 丁香色啪综合| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 五月婷婷丁香俺日污视频| 天天色天天爽| 91fuliwang| 国产毛片精品一区二区色欲黄A片 国产人妻777人伦精品HD | 婷婷基地五月色| 激情五月天在线| 久久视频66| 激情丁香社区| 青草青草久热这里只有精品| 九九香蕉网| 天天日天天舔天天摸 | 99热国内精品| 国产激情久久久| 97久久超碰| 五月婷婷欧美| 激情五月天影院| 五月天婷婷色色| 一起草性爱不卡视频| 少妇高潮一区二区三区99欧美| ww久久| 亚洲九区| 91狠狠综合久久久| 超碰亚洲欧美| 久久婷婷五月综合色天| 日本黄色在线观看| 97精品欧美91久久久久久久| 天天色天天搡| 777精品成人a v久久| 婷婷五月天亚洲图片| 五月丁香激情深爱婷婷| 5月婷婷激情在线| 五月精品| 国产精品色色色色| 欧美日本高清视频99| CAOBIBI| 六月丁香六月婷婷欧美| 六月丁香久久| 久久伊人日日夜夜| 97色色色色色| 色五月天堂| 99精品视频网| 五月婷婷视频| 色婷婷国产精品综合在线观看| 啪啪激情综合| 激情网站综合五月天| AV79| 久久多色| 国产乱子轮XXX农村| 天天综合网~91| 九月婷婷综合网| 91中文在线| 俺五月| 欧美五月丁香| 丁香五月六月综合激情| 91九色偷拍| 超碰在线超碰| 可以免费看av网站| 人妻啪啪啪| 婷婷深爱五月| 极品五月天| 亭亭色色五月天| 情五月亚洲婷婷| 99热精品无码| 人妻少妇色综合| 人人操大| 日本丁香五月婷婷| 色综合伊人网| 亚洲情综合五月天| 97精品自拍| 五月婷六月丁| 五月激情小说网| 91女人18毛片水多国产| 狠狠色婷婷在线| 色色射| 国产激情综合五月久久| 日韩久综合| 五月婷婷色男女| 天天日天天色| 久久久久久久11111111111| 亚洲天堂啪啪| 色婷婷九月| 色噜噜狠狠色综合日日| 成人 九九九九| 精品无码色| 久久久久久久人妻| 久久久高清| 99热综合| 欧洲色色| 97偷拍对白视频| 五月情四婷婷| 欧美在线视频99| 超碰99成人在线| 色色色色色色色综合| 九九干视频| 97午夜一区二区| 九九热色视频| WWW.婷婷五月天.COM| 久久九九思思| www.狠狠干| 337p大胆噜噜噜噜噜91Av| 亚洲殴洲精品Av在线| 色播五月丁香| 五月丁香爱婷婷深深| 日韩色色色色色| 呦呦v线| 狠狠色色| 激情啪啪五月| 天天澡天天狠天天天做| 好叼操在线观看| 美女va| 97久久久| 9久热在线视频精品| 丁香婷婷婷五月| 国产毛片精品一区二区色欲黄A片| 综合色播| 99色婷婷| 超碰成人电影| AV在线大香蕉| 成人版视频在线观看| 天天插天天爽| 综合亚洲AV| 婷婷五月花丁香| 天天操天天干天天射| 婷婷色网| 五月婷婷偷| 久久这里有精品| 精品久久99| 激情九月婷婷| 亚洲黄色影视| 五月天色婷婷综合| 婷婷激情五月吧| 丁香桃色网| 色婷婷手机在线| 狠狠干夜夜干| 丁香五月天色综合| 欧美性猛交 XXXX 乱大交| 26uuu国产色| 亚洲成人在线播放| 日韩六十路91性交电影| 久久久久久久11111111111| 婷婷玉月丁香五月在线视频| 九月丁香婷婷基地| 五月天社区狠狠| 91N 一起草| 无码区婷婷五月花开| 欧美精品A片一区在线观看| 99热综合网| 热99精品视频| 色五月天在线观看| 日本va网站| 综合色播| 亚洲性爱AV在线| 激情五月,深深爱五月| 亚洲av另类在线观看| 丁香五月五月婷婷五月天激情四射| 激情精品久久| www.五月天婷婷| 青青草婷婷综合五月| 久操香蕉| AA丁香综合激情| 色婷婷伊人| 可以看的AV| 婷婷区日本| 五月天婷婷婷| 久久激情天堂| 精品国产va久久久久| 亚洲精品V天堂中文字幕| 狠狠插狠狠| 大天天伊人| 丁香六月啪啪| 天天拍久久| 97碰成超视频免费视频| 五月婷婷中文字幕| 丁香五月综合亚洲| 人人干99| 免费看欧美成人A片无码| 丁香婷婷伊人| 伊久久婷婷| 五月丁香久久| 亚洲美女网Va| 激情丁香婷婷五月天| av一区二区电影免费在线观看| 九九色色网| 丁香婷五月| 九月综合| 五月天激情美女久久| 极品另类| 天天操天天谢| caop在线视频| 国产在线网址1| 久久婷五月| 色播五月丁香| 六月五月丁香五月欧美| 免费99色| 久久这里只有精品视频26| 丁香六月色| 精品一二三区久久AAA片| 开心五月网| 丁香五月亭亭六月综合激情网| 欧美日韩国产日本精品四虎网网站物| 亚洲综合另类| 大香蕉网站,大香蕉综合| 99色热综合| 99,色| 婷婷丁香色性爱| 欧洲第一无人区观看| 六月久久婷婷| 五月丁香六月婷婷网站| 婷婷激情五月天激情在线| 色噜久| 无码视频国内精品久久久| 五月天社区| 日本va欧美va国产激情| 99色看| 九九热在线亚洲免费视频| 伊人五月天97| 国产亚洲AV人片在线| 色狠狠综合| 婷婷久久久久| 色婷婷电影网| 五月婷婷二月丁香| 99热首页在线30| www.五月天色色色| 婷婷的色色五月天| 天天天天天久久久久久| 五月情综合| 9|人妻人人操| 亚洲爆乳无码精品AAA片蜜桃| 午夜婷婷久久| 五月天无码| 精品99在线| 丁香88AV五月婷婷| 六月丁香VA| 欧美综合五月丁香六月婷| 亚洲婷婷五月天综合| 51XX午夜影福利| 九九综合网色全集| 九九99在线视频| 黄色AAAAAAA| 精品九九九久| 97超级碰| 99久久综合狠狠综合久久| 超碰v| 丰满少妇猛烈A片免费看观看| 99爱视频在线| 天天插综合网| 五月丁香色综合| 欧美日韩999| 欧美综合五月丁香六月婷| 五月天激情综合首页| 99久久久99久久91熟女| 另类精品视频在线观看| 亚洲天堂啪啪| 91精品视频男人的天堂| 五月婷婷 激情按摩| 日本黄色一级| 久久中文网| 艹B高清无码| ..真实国产乱子伦对白在线_欧 | 91久久久久久久久久久| 99热资源在线| 婷婷射图| 九色91美女| 啊v视频在线观看| 色综合中文色综合网| 国产av影片| 日本成人综合| www色色com| 无码激情| VA国产在线综合网站| 秋霞学生妹一二级| 婷婷丁香基地在线| 日本91在线播放| 色婷婷综合网| 网色99| 狠狠色婷婷7777久| 国产毛片精品一区二区色欲黄A片| 99亚洲天堂| 亚洲中文字幕av| 五月婷婷激情| 伊人九热| 日韩AV一区二区三区| 色五月婷婷激情基地| 色欧美日| 9久精品| 99综合视频在线| 97色伦另类图片小说视频 | 色婷婷在线综合色播网| 成人婷婷五月天| 99热这里只有免费| www。狠狠干。com| 五月婷婷综合潮喷| 亚洲网站999| 久热99| 无人区码一码二码三码医生系列| 91碰人人| 色色爽爽天天| 亚洲激情免费久久| 久久丁香五月婷| 99热99美国在线观看| 99成人| 色婷婷色综合久久精品V| 中文字幕成人影视| 2020日日干| 99超在线| 五月天成人网在线观看| 色婷婷久久| 婷婷激情啪啪| 手机免费福利视频| 五月天婷婷青青| 99热在线观看精品| 一本大道熟女人妻中文字幕在线| 深爱五月日韩| 青青草原中文字幕| Caoub青青超碰| 综合aV在线| 久久性爱视频网站| 五月亭亭直播| 久久婷婷五月综合啪| 九九干视频| 五月天开心成人网| 婷婷激情视频欧美视频自拍视频欧美剧| 久久综合爱| 人人人操 超碰| 九九99九九99偷拍视频免费看| 热无码A∨| 天天射影院| 噼里啪啦在线观看免费完整版视频| 97久久超级| 色五月在线| 波多野结衣AV无码Porn| 综合天堂AV久久久久久久| 亚洲婷婷五月| 欧美激情2025| www.狠狠| 久久天堂婷婷五月| 六月色婷婷欧美| 亚洲AV网址| www.五月天婷婷| 狠狠综合色网| 五月色欧美| 91avse| 色色综合五月| 亚洲激情 久久| 大香蕉99| 国产亚洲AV人片在线| 噜一噜免费视频| 丁香五月六月综合激情| 播丁香五月婷婷欧美| 开心六月婷| 九九热视频这里只有精品| 日韩综合成人| 99九九精品| 女人天堂AV| 激情五月天久久| 成人必爱视| 国产免费AV在线| 亚洲精品成人片在线播| 九九精品在线网| 欧美99热| www色色色com| 久久婷婷五月综合啪| 五月丁香 狠狠爱| 色婷婷六月激情| 九九热最新视频| 日韩有码一区| 天天色综合综合| 国产午夜成人AV在线播放| 久婷婷| 久久精品五月天| 日本欧美999久久久三级片| 婷婷丁香人妻久久在线观看| 色婷婷小说| 九九热这里只有精品首页| 五月丁香六月婷| 五月丁香六月婷婷久久| 99爱在线免费视频| 国产jd1024基地手机看国产| 欧洲日韩一区二区三区| 99性爱视频| 婷婷五月天受日本法律保护| 婷婷五月天综合在线| 婷婷综合伊人| 丁香五月亚综合图片| www.婷婷com| 婷婷丁香五月,狠狠综合| 五月丁香啪啪啪| 婷婷成人综合免费视频| 亚洲色五月| 免费超碰在线| 91人人操人人| 色色哒五月婷婷六月丁香| 婷婷五月色播天| 伊人综合网4| 色一色综合| 天天爽人人爽| 国产成人综合亚洲| 丁香五月天天高清在线| www.一区二区三区| 色五月综合在线| 97性高潮久久久| 激情综合五| 狼人狠狠操| 亚洲另类婷婷综合| 五月色综合| 能看的av| 色五月激情基地| 内射 无码 伊人| 蜜乳中文字| 婷婷娌伦网| 色综合大香蕉| 大功率国产在线| 欧美99| 综合综合网| 天综合日日夜综合7799| 操逼巨乳91| 久久精彩综合视频| 97自拍视频在线| 激情综合网 激情五月天| 色婷婷亚洲综合天堂| 热久久99热欧美国产亚洲| 狼人婷婷综合| 婷婷五月天丁香| 五月丁香直播| 二区成人视频| 亚洲午夜一区二区| 激情 五月 婷婷 丁香| 精品影院| 26uuu最新地址| 婷婷五月色情天| 婷婷色综合| 精品国产va久久久| 9精品视频在线| 91精品久久久久久77777| 亚洲麻豆乱码国产2028| 热久久这里只有三级视频| 99riAV国产精品视频| 婷婷五月天最新综合你懂的 | 五月丁香av在线| 九九综合五月欧美| 丁香五月在线自慰| 五月丁香久久久日婷婷久久婷婷日| 九九久久玖玖爱| 欧美天堂久久| 天天做天天干天天综合网| 偷拍99在线视频观看| 亚洲综合婷婷| 综合五月激情| 久大香蕉| 美女婷婷激情亚洲| 久9免费视频| 激情五月丁香在线观看直播| 9精品视频在线| 天天色粽合合合合合合合| 丁香六月激情综合啪啪| 激情床戏| 天天肏在线视频| 成片免费观看视频大全| 9999热这里只有精品| 日本久热| 成人.在线日韩| 99精品热视频| 婷婷激情五月天小说校园| 日韩性视频| 亚洲人成网站999综合| 99爱在线视频| 九热视频| 久久99热 这里有精品| 超碰国产在线观看| 国产XXXX搡XXXXX搡麻豆| 五月丁香啪综合| 99re思思精品在线观看| 99日本黄站| 蜜臀av 粉嫩av 懂色av | 丁香五月五月婷婷欧美大香蕉| 青青草五月天| 丁香婷婷五月六月天| 殴美激情综合网| www.cao.com久久| 免费看欧美成人A片无码| 婷婷五月综合网| 五月婷婷在线网站| 99热免费18| 国产69久久久欧美黑人A片| 区美毛片子| 色五月视频,小说| A一级操| 色婷婷亚洲| 另类国产欧美视频| 丰满少妇猛烈A片免费看观看| 九九热思思| 国产探花AV在线| 丁香六月婷婷开心| 日韩黄色网络| WWW.久久久久久久久久久久久| 色综啪啪网| 久久99视频| 成人片在线播放| 五月丁香色综合| 99热这里只有精品最新| 天天 日综合| 综合久| 婷婷中文无码| 99热丁香| 1024你懂的欧美曰韩| OYIWbGcPu8H| 超喷97免费在线视频| 六月丁香五月天| 97综合在线| 日日操天天操| 狠狠草狠狠草| 五月丁香六月婷婷在线观看| 操逼123网| 天天爽人人爽| 99热综合在线观看| 九九视频这里是精品五月| 思思热国产视频| 五月婷婷六月丁香| 97干免费视频| 久久久激情视频| 五月丁香啪啪啪综合网| 丁香五月婷婷欧美激情-中文天堂最新版在线观看| 色综合女人99| 91午夜婷婷狠狠久久综合9色| 影音先锋91网站在线观看| 亚洲乱码日产精品BD| 五月丁香啪啪啪| 97综合在线| 亚洲激情综合| 操操碰| av国产精品| 在线理论片| 成人精品视频99在线观看免费| 五月天婷婷色| 久久人妻少妇嫩草AV| 免费看欧美成人A片无码| 国产午夜成人AV在线播放| 午夜不卡久久精品无码免费| 激情综合五月天| 强辱丰满人妻HD中文字幕| 婷婷久久丁香五月| 亚洲中文字幕av| 色99在线观看| 激情五月天视频| 亚洲中文字幕在线观看| 婷婷五月激情基地| 亚洲人成播放网站| 久久综合婷| 婷婷五月天亚洲综合| 人妻aV在线| 久久精彩综合视频| 五月丁香婷色| 天天添天天摸天天天天做| 成人超碰Av| 婷婷五月天福利| 九九re精品视频在线观看| 99熟女| 四LLL少妇BBBB槡BBBB| 九九99久久精品| 六月丁香啪| www.五月婷婷.com| 99热9| 怡红院院久久| 99热精品无码| 激情综合网址| 激情综合五月激情| 久久这里只有国产视频| 五月天色婷婷激情| 久久综合五月天| 天天爽天天爽| 欧美97超碰| 日本久久超碰| 操啊操av| 日韩性爱无码| 亚洲亚洲人成综合网络| 天天操人人干| 7月婷婷六月丁香| 天堂美国久久| 97婷婷狠狠| 情久久综合五月天| 色婷婷AAA| 日韩在线一级| 99热最新网址| 精品成人a v无码内射| 色综色五月天婷婷| 久久五月婷婷电影| 99爱这里只有精品免费视频| 99热最新| 亚洲激情Av| 人妻操逼视频。| 婷婷六月色情| 欧日韩成人| 老美AA片| 婷婷欧美激情| 色色婷五月天| 丁香五月先锋| 五月丁香六月激情综合| 青草视频在线播放| 99热亚洲精品| 婷婷丁香六月五月天| 69色色视频| 26uuu日韩| 色射7856五月天激情四射| 日本99久久| 丁香五月天在线| 五月天激情国产综合婷婷婷| 丁香五月欧美婷婷| 亚洲视频a| 天天做天天爱| 亚洲精品无码一区二区| 亚洲人妻Av| 五月久久丁香| 亚洲色婷婷| 中文字幕亚洲-区久久99婷婷| 人人色性网| 日日干日日| 伊人高清无码| 99视频内射三四| 婷婷性爱五月天| 婷婷丁香六月天| 操逼六区| www激情com| 九九久久综合| 久久亚洲无码| 五月开心深深爱激情综合| 色婷婷影院| 激情久久丁香| 色5月婷婷| 亚洲第一综合| 欧美日本国产欧美日本韩国99| 丁香综合网| 欧美槡BBBB槡BBB少妇| 九热视频在线精品15| 深爱婷婷丁香五月激情| 欧美性色A片免费免费观看的 | 五月丁香婷庭在线| 狠狠综合| 色色色地址| 操草草草| 五月婷婷深深爱爱| 久久99视频| 日韩黄色电影| 人人干人人操人人摸| 99精品国产在热久久| 日日骑夜夜撸| www.五月婷婷| 99九九热视频免费| 开心五月激情婷婷| 激情网 久久| 欧美综合五月丁香六月婷| 涩综合婷婷| 另类国产欧美视频| 欧美婷婷五月| 精品欧美一区二区三区久久久| 色五月丁香五月激情五月激情| 亚洲精品成人| 人人九色| 婷婷五月色情| 91久久电影| wwww.9免费视频| 五月婷婷免费视频| 色婷婷成人做爰A片免费看网站| www.粉嫩av.com| 99精品在线播放| 中文字幕日韩成人| 伊人婷婷五月天| 日本123区日韩欧美不卡在线看| 思思热在线免费视频| 久久婷青青草原| 丁香5月婷婷| 4399无码视频二区| 丁香五月婷婷激情123| 美国少妇性做爰| 日韩小视频在线99| 91狠狠色丁香婷婷综合久久| 99婷婷| 99热在线观看免费精品| 青青草原中文字幕| 天天插综合| 激情五月天婷婷免费观看| 欧美日综合| 日韩激情婷婷五月天| 亚洲欧美成人在线| 热久久99视频| 九久久婷婷| 六月丁香激情综合| 久久ri精品视频| 婷婷久久丁香| 九九色之九九色88| 亚洲成人av在线| 亚洲小视频免费播放| 欧美性爱五月天| 色色丁香五月婷婷| 99ER热精品视频| 丁香六月激情综合啪啪| 97艹| 99九九久久| 五月久久五月激情| 亚洲乱码日产精品BD| 激情综合色婷婷啪啪六月天| 六月婷婷日| 人人操AV| 国产成人网| 熟妇内谢69XXXXXA片| 五月婷婷天天色| 大香蕉综合视频在线| 久久五月综合| 九洲一级A片| 婷婷综合一二三| 亚洲小视频免费看| 97五月婷| 婷婷五月综合体验看| 婷婷在线综合| 激情婷婷五月天| 国产VA亚洲VA96| 色碰碰| 婷婷五月天AV| 六月色丁香中文字幕| 久久伊人9| 激情开心五月天| 可以免费看的av网站| 91人操人人人操人| 99无码精品| 激情综合网五月激情网| ady狠狠入| 亚洲综合色色色| 九九热这里只有国产精品| 99久久视频| 婷婷丁香九月| 26uuuavcom| 超碰不卡在线| 午夜少妇在线观看视频| 九九视频在线观看| 五月天色图| 亚洲黄网在线| 国产精品久久..4399| 99色热视频| 亚洲色综久久五月| 99国产精品白浆在线观看免费| 久久99网| 婷婷激情综合无月| 97sese婷婷| 五月丁香啪啪啪| 九月av| 激情五月天小说视频|