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
返回資訊列表
av婷婷丁香| 色色色综合网| 裸体做A爰片毛片A片免费| 亚洲色激情| 久久99热这里只有精品首| 99热草草| 97色精品视频 | 五月婷丁香久久久| 国产xxxxx在线观看| 五月丁香亭亭A片| 九九精品热| 综合XX网| 丁香五月天激情综合| 五月丁香六月婷婷综合免| 成人综合视频在线| 小色小蛇伊人婷婷色香五月| 欧美久人人| 精品成人在线| av大片在线| 日本久久精品| 色五月婷婷五月| 亚洲成人av在线播放| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 久久亭亭电影| ww超碰在线| 国产乱子轮XXX农村| 九月丁香婷婷综合| 99热.com| 五月天伊人网| 五月婷婷久久综合| 色婷婷丁香五月天| 免费做A爰片77777| 九月丁香婷婷基地| 影音先锋AV资源男人站| 97婷婷五月丁香| 性欧美大战久久久久久久83| 国产AV影片| 91精品综合久久久久久五月丁香| 丝袜大香蕉| 色色综合网站| 91精品久久久久久综合五月天| 大香蕉九操| 色婷婷19| 国产亚洲99久久精品| 激情综合网五月婷婷| 久操97| 久久视频这里99| 亚洲五月天婷婷在线| 天天日天天做天天操| 管管補管管紱| 99在线观看视频| 六月丁香影院| 中文字幕精品在线观看| 色婷婷久久综合中文久久一本| 久久激情五月婷婷| 五月香婷婷| 五月婷婷激情综合| 99热这里全是精品| 日本三久久| 丁香婷婷五月综合| 26uuu亚洲| 操人无码| 色色色九九九五月婷婷| 日韩综合久| 一区视频网站| 狠色狠色狠色狠色狠色网| a v色婷婷| 久久99久久99精品免观看软件| 激情都市五月天| A久网| 色日本五月天| 五月丁香六月| 六月激情网| 久Se视频在线观看| 97婷婷丁香五月天激情图片| 九九这里都是精品| 久久婷婷视频| www.色色com| 91AV婷婷| 国产精品激情五月天色婷婷| 九九九色综合| 色哟呦av| 五月丁香色婷婷| www.久久爱| 大地9中文在线观看免费高清| 五月天丁香婷婷网| 97热视频| 人人噜天天上| 激情综合久久| 大香蕉九九热| 日本九九热| 99在线观看精品视频| 综合久| 五月天婷婷综合网| 亚洲色人妻| 秋霞黄色一级久久| 另类 在线| 激情五月综合婷婷| 综合色色综合| 精品怡红九九九| 无码人妻一区| 成人片黄网站色大片免费毛片 | 亚洲综合干| 99热这里只有精品18| 狠狠爱五月婷婷| 成人电影一区| AV在线观看网站| 天天操,天天插| 97色色网| 五月色亭丁香| 婷婷在线操| 五月丁香六月婷婷激情视频在线观看免费 | 丁香五月天亚洲视频| 色婷婷网| 天天综合91入口| 五月天成人伊人| 99亚洲精品| 少妇人妻人伦A片| 免费啪啪亚州视频| 五月婷婷六月丁香在线| 婷婷亚洲在线| 天天摸天天高潮天天爽| 婷婷91| 久久精品天| 99色看这里只有精品| 色婷婷小说网| 婷婷丁香五月基地| www.色擼擼.com| 91精品综合久久久久久五月丁香| 开心激情婷婷| CAOBIBI| 热99精品视频| 97碰 在线视频观看| 狠狠干在线| 国内外色色色色色成人视频| www狠狠| 99视频在线观看网址| 丁香五月激动深爱欧美| 婷婷丁香高潮了| 五月婷婷五月天| 日韩一级| 逼里香不卡| 在线只有精品| 深情六月婷婷综合久久| 丁香婷婷射| 成人视屏在线观看| 二色AV| 五月婷婷六月情| 超碰国产在线播放| 人人操人av| 亚洲综合成人网| 久久东京热婷婷五月| 国产精品色婷婷AV综合色色| anquye五月| 99热这里有精品| 天天性视频| 26uuu精品一区二区| 99综合入口| 色婷婷色五月综合| 99久久人人| 少妇人妻凹凸视频| 久久九九99.www| 性生活久久朋友人妻| 亚洲乱码日产精品BD| 激情综合青草| 一本色综合色| 丁香五月激情五月开心五月| 九九精品99久久久| 国外亚洲成AV人片在线观看| 五月丁色AV| 大香蕉久久草| 99久久婷婷国产综合精品青桔| 五月丁香综合啪啪| 色必久悠悠影院| 99热这里| 婷婷成人五月天成人文学小说| 伊人九热| 丁香六月狠狠干| 九月激情综合| 五月婷婷五月天| 他改变了拜占庭| 婷婷五月天激情文学| 夜夜夜天天操| 青青草青青草五月天| 婷婷丁香激情五月天色色| 久久综合婷婷激情| 综合色99| 丁香网五月天激情| 亚洲国产va| 亚洲亚洲人成综合网络| 5月婷婷激情在线| 婷婷的色色五月天| 五月丁香影院| 亚洲99热| 99热乎| 欧美丰满熟妇BBB久久久| WwW天天干| 色色色色网| 五月婷婷熟女| 亚洲黄色网址| 狠狠色狠狠| 99色综合网| 噼里啪啦完整版中文在线观看| 天天情色五月天| 色五月色五天色情网| 九九热精品| 五月激情网站| 六月婷婷五月丁香首页| 超碰在线94| 99热在线精品播放| 青草热视频这里只有精品| 五月丁香另类网| 五月丁香激| 婷婷激情五月吧| 国产精品电| 婷婷激情综合| 97涩涩丁香五月天| 婷婷丁香激情综合色情| 噢美99| 色99自拍| 色丁香影院| 六月婷婷激情| 久久人人妻| 五月婷婷激情在线| 狠狠草在线观看| 天天看片日日夜夜| 午夜成人综合| 无码字幕中文| 日本片日本片祼观看网站在线看中文版网页在线看| 丁香八月综合激情| 99视频在线| 五月天婷婷导航| 99久操| 亚洲中文字幕在线观看| 久久电影4399| 丁香五月a| 久久五月婷婷电影| 色色婷婷丁香五月天| 国产精品久久久久久亚洲毛片| 可以看的AV| 激情另类综合| 亚洲五月天色色| 公的粗大挺进了我的密道| 日日夜夜天天| 久久婷婷五月免费视频| 五月丁香六月婷婷手机无线| 99er国产| 九九色影视| 日本色超碰| 久99热| 99九九综合久久九九| 国产乱妇乱子伦| 免费看欧美成人A片无码| 91婷婷搞| 色香久久| 婷婷六月色开 | 五月丁香婷婷国产精品综合| 大香蕉啪啪啪| 天天做天天爱天天玩夜夜爽 | 99热亚洲| 色九九综合色| 久久免费试看120秒| 六月婷婷中文字幕| 深爱激情丁香| 欧美影院婷婷| 1024国产| 久婷婷| 99综合网| 久久五月天网| 色哟哟www| 婷婷丁香人妻天天| 婷婷综合爱| 色五月激情五月丁香五月婷婷啪啪综合| 激情久久久久久| 欧美日韩精品一区二区三区钱| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 激情综合一| 九九色天堂| 日噜噜色| 99日在线观看视频| 婷婷伊人激情婷婷| 亚洲综合在线视频| www.久久99热地址发布| 久久9精品| WWW.夜夜操.com| 2014天天爽| 色色丁香五月婷婷| 久久综合中文字幕| 亚洲A片成人无码久久精品青桔| 丁香五月-激情综合| 性爱七区| 激情综合五月.....| 久久婷婷五月综合伊人| 久久免费精彩视频| 青青草婷婷久久| 99在线播放视频| 五月婷婷综合色啪| 亚洲色夜| 婷婷五月天免费99| 九九碰九九爱97超| 婷婷五月影院| 五月桃花网综合| 91九九九九九九| 日本nghangse中文字幕| 久青操| 91久久久久久久| www.夜夜| 婷婷丁香综合在线| 99毛片| 亚洲精品视频在线播放| 婷婷丁香五月精品| 思思国产99| 久草大| 婷婷丁香六月| 超碰人人操在线| 俺去也在线视频| 色啪影院| 热热99爱爱| 一區四區歐美日韓| 狠狠爱综合网| 夜夜嗨一区二区三区直播内容| 爱iii做iiii日| 日本毛片内射| av在线超清中文| www.色五月天.com| 成人国产综合| 激情网 久久| 五月婷婷综合性爱噜噜| 最新热中文字幕| 深爱五月亚洲| 97人人干人人操| 少妇性按摩无码中文A片| 色香蕉婷婷| 激情五月天色| 97欧美在线| 激情综合网婷婷五夜| 五月丁香婷婷爱激情综合网| 五月婷久久| 丁香激情五月少妇| 色五月丁香五月| 99精品视频播放| 日韩有码一区| peg 2区三区四区的| 情婷婷五月天| 婷婷97| 国产成人av在线播放| 激情五月天综合网| 色久影院| 亚洲bt丁香五月天婷婷激情小说| 五月婷六月| 色色色激情网| 99亚洲精品视频在线观看| 国精产品久久| 中文字幕在线免费观看视频| 91精品久久久久久久久| 激情五月婷婷综合色播小说| 丁香五月欧美激情| 成人无码精品1区2区3区免费看 | 色综合九九色综合88| 黄色99网| www.五月天| 日本色天堂| 色五月婷婷综合在线| 色五月天丁香婷婷色| 激情综合网五月激情网| 五月婷婷人人人操| 99精品免费| 国内婷婷丁香社区在线播放| 色婷婷五月天av在线| 亚洲五月天婷婷综合| 丁香8月手机综合| 久久机只有这里精品| 综合久久激情久久| 99精品在线观看视频| 超碰国产在线观看| www.夜夜操.con| 国产成人精品一区二三区熟女在线 | 播播网色播播| 大大香蕉综合在线| site:feetmall.com| 激情五月天影院| 美腿丝袜AV天堂网| 色婷婷视频综合| 无码人妻精品一区二区蜜桃色欲| 婷婷五月丁香基地在线视频官网| 激情综合网五月| 1024在线视频| 中文乱子伦视频| 五月色在线| 99自拍视频在线观看| 激情网战码亚洲A| 国产真实乱了老女人视频 | 999热这里只有精品| 婷婷久久久久| 久久全意婷婷| 亚洲九区| 五月丁香激情婷婷| 婷婷月五天在线在线看| 丁香五月天婷婷大香蕉| 97在线精品| 亚洲色爱综合| 5月丁香婷婷| 丁香狠狠操| 久热这里只有精品在线观看 | 五月天另类激情在线| 激情综合女人网五月播播| 久久婷婷五月天丁香| 久久99精品久久久久久噜噜| 热99久久这里只有精品| 伊人网碰碰| 国产亚洲精品久久久久久久久动漫 | 国产熟女一区二区三区五月婷| 五月婷六月综合在线观看| 丁香五月玖玖| 97人人超| 中文字幕AV在线播放| 极品 少妇 内射| 丁香五月综合激情性爱| 久久ri精品| 天天噜噜| 9精品在线| 天天射天天射一道本日本社区| 99精品久久久久久久| 日本精品人妻无码77777| 婷婷丁香色情| 激情五月天婷婷在线网址发给我| 久久人人人人妻| www激情| 国产操逼网站| 亚洲成人在线电影网站| 99国产精品久久久久久久久久久| 激情五月丁香五月| 色婷婷免费观看| 亚洲综合丁香五月天| 天天玩夜夜操天天爽| 9久精品视频| 亚洲国产精品五月天| 久草热8精品视频在线观看| 九九热区一区二区三区| 色玖玖爱| 婷婷五月天少妇| 久热re视频在线观看网站| 欧美黄色AA片哗啦啦啦| 99日本精品视频热| 色色婷婷综合| 五月天婷综合| 97色色色视屏| www色综合亚洲92| 伊人久久大香线蕉av最新| 天天做天天爱高潮片| 国产欧美熟妇另类久久久| 综合五月激情网| 精品久久久人妻| 天天爽天天摸人妻综合网| www.五月激情红色| 亚洲六月婷婷| 99热这里只要精品免费| 亚韩精品视频1区| 丁香五月天电影| 日本丁香五月| 99热这里只有精| 丁香久久| 在线成人va| 日日噜噜夜夜狠狠久久丁香五月| www.婷婷com| 人人艹艹艹| 超碰只有精品在线| 五六月婷婷久久| 国产av第一专区| 91制片厂久久久国产电影| 1024欧美看片| 天天综合久久| 天天干天天干天天干| 婷婷五月六月丁香| 国产又爽又猛又粗的视频A片 | 亚洲色热| 色综合久久天天综合网 | 激情五月婷黄版| ji'qing'luan'ren'lun| 五月天久久婷婷| 久久婷婷艹| 久久丁香五月天| 91精品综合久久久久久五月丁香| 久久五月天合网| 97人妻碰碰碰碰碰久久久久久| 久久99网站| 亚洲免费观看高清完整版AV线| 色五月天天| 久热婷婷在线视频| www.久久久久久久久久.com| 伊人婷婷大香蕉| 五月丁香在线视频观看| 免费视频这里只有精品| 久热一本| 99视频综合| 天堂色色色| 性色欲情 网站| 久久香蕉丁香| 婷婷中合| 色五月激情五月| 日韩九区| 99在线免费视频| 激情五月婷婷色| 久久奄也去色色网站| 亚洲色久| 99自拍网| 色色色婷婷五月天| 超碰不卡在线| 99九九免费精品| 天堂美国久久| 九九99精品视品| 丁香九月激情| 国产亚洲99久久精品| 久久网日本| 日日干天天射| 99精品热视频| 五月婷婷色影院| 色伊人婷婷| 免費亭亭成人| 色色亚洲五月天| 操操操AV| 日韩视频99| 农村熟妇高潮精品A片| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 婷婷久久五月天亚洲欧美国产日韩在线观看 | 少妇激情基地| 伊人五月综合网| 亚洲精品久久久久久久久久飞鱼| 久热黄色| 99热国品| 欧美三级巜人妻互换| 丁香五月激情五月| 少妇人妻丰满做爰XXX| 国产真人做爰视频免费| 国产精品第一国产精品| 中文字幕视频色婷婷| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 国产乱人偷精品人妻A片| 99网| www.91五月| 亚洲无码影音| 大香蕉人人人| 色噜噜狠狠一区二区三区| 日本操B片| 日本激情综合| 日韩xx在线| 亚洲熟女色| 色综合激情| 欧美婷婷丁香社区在线播放| 五月丁香啪啪啪啪| 五月丁香婷婷色啪| 亚洲激情丁香五月基地| 婷婷五月丁香五月| 久er7久热| 99这里| 婷婷伊人网| 久久婷婷色综合| 丁香视频| 成人版视频在线观看| 激情婷婷五月天丁香| 九九无码视屏| 亚洲天堂九九九| 五月天婷婷丁香社区| 五月丁香色停停啪啪啪| 婷婷丁香综合成人| 黄色AAAAAAA| 色久五月天| 五月天久久小说| 亚洲色综合性| 日韩精品无码AV| 日韩五月丁香| jiujiujiuwuyuetian| 99日本精品视频热| 久久99精品视频| 影音先锋女人av鲁色资源网小说免费 | 综合色影院| 97精品在线| 日本啪啪天堂| 99精品这里只有免费视频| 99热啪啪| 五月丁香婷婷伊人| 丁香久久九九99| 婷婷五月天福利| 婷婷射综合| 人人摸人人摸| 天天舔天天| 亚州男人天堂婷婷五月| 五月丁香婷婷综合| 天天射影| 婷婷久综合| 国产激情综合五月久久| 热九九精品| 亚洲高清在线| 99免费视频网| 亚洲综合成人网| 99精品在线观看| 五月天黄色激情小说| 狠爱婷色| 五月天婷婷久久| 色五月丁香在线| 五月婷免费视频| 亚洲操操| 五月激情久久综合网| 丁香五月手机在线| 超碰v| 天天做夜夜爽| 五月丁香激情五月天| 亚洲成人电影在线免费观看| 9久精品视频| 思思综合热| 超碰高清在线| 久久综合久色欧美综合狠狠 | 另类图片婷婷五月天| 日本99在线| 久热这里只有精品在线观看 | 日本三级99人妇网站| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 在线中文AV| 四色综合网| 丁香婷婷91在线观看视频| 超碰人人摸人人操| 玖玖在线资源视频| 欧美25p| 91在线操| 亚洲情欲| 丁香五月亚洲综合| 99精品在线下载| 91九色精品熟女内射| 六月色播| 亚洲综合激情五月久久| 91操屁股| 婷婷香蕉视频| 开心五月丁香综合久久| 91超级碰碰碰| 天天干 夜夜爽| 色婷綜合网| 亚洲AV成人片无码网站| 91综合在线观看首页| 久久久国产精品黄毛片| 色九九综合| 欧美日韩aaa| 婷婷伊人久久综合| 97久久香草精品视频| 97天堂| 婷婷五月综合网| 激情婷婷22月间| 精品久久久91久久影视网| 超碰人人在线| 91干视频| 五月婷久久| 99热最新精品| 亚洲AV成人片无码网站| 日本一级特黄大片AAAAA级| www。88热在线视频免费观看| 丁香婷婷五月天亚洲| 人妻爽爽爽久久久久久久久| 天天做夜夜爽| 亚洲色婷婷色| 婷婷色亚洲| 精品国产a| 色欲AVV| 全部老头和老太XXXXX| 婷婷五月天伊人| 色综合久久久久| 超碰免费99| 五月停停色色丁香| 黄色五月婷婷| 亚洲天堂99| 99ri精品| 久久五月丁香| 六月丁丁香| 天天爽天天操| 久久97久久99久久综合欧美| 丁香婷婷五月份| 人人插操| 六月色 亚洲| 五月婷婷之综合激情在线| 玖玖九九9999在线观看视频精品| 91主播在线| 色原狠狠综合| 久青操| 久久婷婷网站| 欧洲激情网站| 97色色色色色色色色色色色色色| 天天擼久久擼在线| 免费不卡狠操美女视频网| 青青草五月天| 色婷婷欧美| 人人爽天天爽| 成人做爰A片免费看视频| 亚洲网综合在线| 色婷婷亚洲综合天堂| 99视频在线观看视频| wWW九九在线播放| 久久久WWW| 五月天伊人av| 色五狠狠| 天天摸天天肏| 97精品人人A片免费看| 先锋影音男人的天堂AV| 91九色精品| 综合激情伊人影视在线| 激情五月六月丁香| 久婷五月| 99热网站| 久久99三级在线视频| 91日本在线观看| 色婷丨日丨天丨综合久久| 99热免| 色九区| 丁香五月婷婷社区| AV色婷婷| www 五月天 com| 亚洲va欧美va天堂v国产综合| 中文字幕在线播放视频| 一本色综合色| 9l视频自拍九色9l视频自拍九色9l社区| 六月色日韩| 激情婷婷啪啪| 九九碰九九爱97超碰| 九 九九九AV| 五月丁香狠狠爱| 天天摸人人摸| 久久婷婷五月天| 99婷婷色| 玖玖在线资源视频| 996热re视频精品视频| 久久caop| 九九热这里只有精品7| 五月开行婷婷色五月| 五月婷丁香| 国产黄色大片| 2020久久婷婷五月| 第四色激情网| 9久久网| 五月永久激情| 91九色网| 性色av大香综合| 久久婷婷在线| 色色五月天婷婷| 成人电影AV在线观看| 五月丁香婷婷三级| 99re6在线视频精品免费| 69久久99精品久久久久婷婷| 五月丁香无码| 开心五月色婷婷综合开心网| 久久9视频| 999热这里只有精品| 丁香久久在线| 五月婷婷开心爱| 久久久www| 六月丁香狠狠爱| 99热只有精| 欧美大片免费观看| 99热这里只有精品98| 国产激情久久| 婷婷五月激情欧美| 五月天色区| 色婷婷AV久久| 综合激情深爱| 人操综合| 热99精品视频| 激情五月综合网丁| 开心五月婷婷激情网| 色婷婷激情| 狠狠五月激情在线| 国内外色色色色色成人视频| 97色在线视频| 日韩成人电影AV| 久久久性爱视频| 蜜臀av粉嫩av懂色av| 性爱激情小说AV五月丁香花| 日韩九九| 另类丁香综合| 婷婷成人五月天成人文学| 色婷婷另类| 婷婷综合精品视频97| 久久涩视频| 人人视频色| 丁香婷婷婷| 日日夜夜婷婷| 大香蕉九九操| www.婷婷五月天| 五月丁香六月婷婷啪啪| 97碰| 欧美天天爽| 婷婷久久五月| 色视五月天婷婷| 色婷婷中文| 亚洲视频伍月婷婷| 亚洲自拍天堂| 亚洲欧美婷婷五月色综合| 日韩亚洲视频| 久久久人妻| 亚洲性色XXXXX| 91seAV| 色色无码| 五月天婷婷综合久久| 久久久人妻| 热这里| 久久综合五月| 五月婷婷天| 色婷婷最爱五月| 影音先锋AV资源男人站| 欧美激情五月天| 亚洲欧美成人在线| 免费视频WWW在线观看网站| 丁香婷婷色五月天| 色噜噜五月天| 久久久97| 另类小说激情五月天| 欧美人人操| 99精品偷自拍| 少妇达人正片在线播放_ikun_福利吧| 九九九热精品| 天天做天天爱天天爽在| 九热av| 九九色逼| 丁香五月婷婷骚视屏| 五月丁香婷婷激情影院欧美| 天天射影院| 天天日天天爱天天噪| 中文字幕AV在线播放| 国产精品涩涩涩视频网站| 欧美五月丁香| 色噜噜狠狠色综合无码久久欧美| 久久久国产精品黄毛片| 丁香五月天亚洲视频| 丁香五月在线伊人| 人妻五月天激情开心网| 欧美日韩91| xx人人xx| 五月婷婷亚洲综合网| 五月综合丁| 日本猛少妇色XXXXX猛叫| 人人干av| 激情丰满熟妇五月| 亚州操操| 九色综合五月天婷五月| 五月丁香啪啪综合| 国产26uuu| 亚洲久久视频| 日本三久久| 9色婷婷| 色欧洲| 亚洲精品永久久久久久| 五月色欧洲| 九色91国产| 涩丁香91| 国产欧美精品AAAAAA片| 婷婷五月情| 五月天色社区| 五月丁香六月色婷婷| 激情综合无码| 成年视频免费观看| 久久色大香蕉| 婷婷导航| 日日综合网| 97五月久久丁香婷婷| 亚洲婷婷成人五月天| 六月综和久久| www久久久| 五月丁香激| 九九综合五月欧美| www.99riav99| 亚洲乱码日产精品BD| 天天插综合| 97精品自拍| 天天爽天天| 色五月丁香伊人五月| 能看的av片| 丁香婷婷五月天校园春色| 亚洲AV综合网| 无码髙清| 精品爆操| 51XX嘿嘿午夜无码| 婷婷五月天大香蕉在线视频观看| 久久色六月| 成人精品一区日本无码网| 丁香五月人妻| 婷婷五月天堂| a网站免费观看| 久色网址| 美日韩成人| 久久丁香五月天| 色欲天天综合| 青青草tp| 99热日本| 婷婷丁香色五月| 激情综合啪啪| 激情五月天视频| 另类在线| 可以免费观看的AV| 婷婷久久大香蕉| 色婷五月天| 202丰满熟女妇大| 噼里啪啦在线观看免费完整版视频 | 激情五月婷婷视频| 9热超碰| 成人性生活免费观看。| 亚洲视频另类| 丁香婷婷性久久| 综合久久五月天| 99热最新| 丁香婷婷偷拍| 99亚洲色| 五月婷在线| 久热综合| 综合激情五月天| 国产AV影片| 婷婷酒色网| 久久丁香婷婷五月| 婷婷五月色情天| 亚洲精品乱码久久久久久按摩观| 丁香开心深爱| 另类综合婷婷五月天欧美视频| 激情五月五月婷婷| 九九激情综合| 色色热| 九九久久腿| 色婷婷69| 九九99视频精品| 综合五月激情网| 九九热re99re6在线精品| 97人人射| 五月丁香花成人社区| 99re免费视频| 色婷婷香蕉| 玖玖精品视频99| 可以免费看的AV网站| 五月婷婷啪| 91男同视频| 久久久五月天网站| 人人草公开操| 色播五月丁香| 五月天社区| 伊人久久大香线蕉精品| 亚洲色图81p| 国产成人VA| 色婷婷的五月天| 中文av网站| 色色综合五月| 狠狠色丁香五月婷巨| 国精产品一区二区三区| 久久亚洲婷婷| 99热香港| 99小视频| 五月婷婷色五月| 婷婷五月天综合网| 婷婷激情啪啪| 秋霞网在线观看理论91| 久色大| 三级黄色大片视频| 五月婷婷综合久久| 五月婷婷伊人在线| 天天婷婷综合亚洲亚洲| 国产黄色大片| 激情99。| 男女99免费视频| 97热超碰| 一區四區歐美日韓| 亚洲超碰在线| 欧美日韩国产一区二区| 亚洲丁香五月天在线视频| 激情综合网五月| 九九艹女| 五月丁香怕啪啪| 91视频精品99| 操b视频在线观看一区二区| 少妇日麻屄| 久久久久久久久99精品| 日比视频91| 综合久色五月| 99热网站| 色婷婷久久综| 综合五月丁香六月婷婷| A片试看120分钟做受视频红杏| 婷香五月| 久99久99精品免| 91高潮喷水久久久久久久久 | 停停五月色宗合| WWW.久久.COM| 激情丁香五月婷| 九九99精品视频在线观看| 99玖玖视频| 婷婷五月天第四色| 精品国产乱码久久久久夜深人妻| 色婷婷先锋| 六月丁香激情网| 97超碰,人人舔,人人操,人人摸 | 亚洲男人的天堂婷婷色五月| 91九九| 五月丁香激情四射| 色色色色色色色色色色色色色97| 97久久久久久久久久久| 婷婷色香六月综合激情| 亚洲五月丁香六月婷婷| 欧美性爱专区| 婷婷丁香五月综合激情小说| 人妻AV在线| 丁香五月AV在线| 久草热在线视频| 五月丁香网站| 91超碰在线播放| 天堂成人久久| 五月丁香六月婷婷色日| 日韩无码性爱| 五月天成人综合| 天堂网亚洲色图| 洗浴中心操B视频| 国模九区| 天天爽夜夜爽夜爽精品| 日韩五月婷婷久久| 天天综合影院| 欧洲综合一区| 久久这里只| 丁香97综合| 五月天婷婷色紫薇阁| 久久性视频| 久一这里有精品国产| 1000部毛片A片免费观看| 99免费热在线精品| 嫩BBB搡BBBB榛BBBB| 激情五月婷婷在线区| 免费无码毛片一区二区A片 | 99精品网| 婷婷大乡焦噜噜| 久久久99久久| 色婷五月婷婷| 操碰91| 九热视频这里只有精品| 色婷婷狠狠久久综合五月| 欧美久久婷婷| 97在线/日本| 国产成人AV在线| 婷婷中文字幕| 一本大道嫩草AV无码专区| 五月婷AV| 91久久精品视频| 九九热黄色| 亚洲欧洲色色| 久久婷婷五月综合色欧美| 亚洲色情网站| 色婷婷综合久久久久| 99色热| 人人做人人看人人摸| 狠狠干在线| www.zbzhongsen.com| 2020久久婷婷五月| 92久操视频| 激情六月丁香| 九九热只有这里是精品| 丁香婷婷五月天成人| 俺去也婷婷| 99视频超级精品| 五月天久久小说| 婷婷久久精品| 丁香五月婷婷丫| 亚洲免费电影2| 伊人五月成人| 婷婷色播婷婷| 狠狠噪| 五月婷婷久久综合| 婷婷五月天天| 国产精品电影网| 国产婷婷色综合AV蜜臀AV| 性生活久久朋友人妻| av久热| 久久久久久婷| 另类视频综合| 婷婷五月花西瓜| 午夜丁香| 丁香五月婷婷色综合| 精品成人久久久久久久_一二三四视| 色狠狠六月| 亚洲黄3级片网站欧美| 99国产精品久久久久久久久久久 | 午夜微拍福利| 五月天婷婷影院| A久久| 激情五月伊人婷婷| 亚洲AV第二区国产精品| 国产精品久久久久9999小说 | 九九九热精品| 五月婷婷激情在线| 丁香五月婷婷啪啪| 五月婷婷成人| 亚洲小说欧美激情| 中文字幕在线资源| 天天插天天射| 色五月开心五月激情五月| 国产成人综合在线| 青青操日本摸摸看看| 久久九九国产精品怡红院| 日本色综合| 伍月婷丁香花全集| 青青热视频| 色综合丁香婷婷| 色色色丁香| 蜜桃人妻无码AV天堂三区| 日本色天堂| 五月天狠狠网| 婷婷五月天a| 丁香婷婷久久| 九九99免费理论| 婷婷综合在线视频| 亚洲V国产V欧美V久久久久久| 成人精品在线| 五月停停色色丁香| 欧美VA在线| 日日做夜夜爱| 深爱开心激情网| 26UUU| 色婷婷五月在线| 日本黄色在线观看| 偷偷操九九| 91中文狠狠综合| 色噜噜狠狠色综无码久久合欧美| 婷婷五月综合激情| 国产午夜一区二区三区| 5月婷婷激情6月| 人妻videos人妻高清| 安息电影在线观看完整版| 九九精品自拍| 9精品在线| 六月丁香av| 亚洲日韩久久婷婷伊人| 无码人妻AV久久久一区二区三区| 9l视频自拍9l九色成人| 婷婷激情综合| 欧美久热| 丁香六月综合| 九九热免费视频| 色色色综合网| 精品久久久人妻| 91日本在线观看| www.婷婷六月天| 99热免费| 中文毛片无遮挡高潮免费| 久久在线视频免费观看| 久9视频| 99re这里只有| 日日日日日| 欧美色片中文字幕久久久久| 国产亚洲精品AAAA片APP| 国产精品日本一区二区在线播放| 极品人妻VIDEOSSS人妻| 深爱五月天| A短视频免费在线观看| 一区二区无码视频| 丁香色影院| 天堂综合久久| 久久9精品| 婷婷成人综合免费视频| www超碰| 婷婷五月丁香综合激情小说| 五月的丁香六月的婷婷| 深爱激情网五月天| 99精品福利视频| 午夜九九九九九九九九九九九九九| 久久性爱视频| 六月色婷婷| 婷婷影院A成人| 免费在线a| 精品激情| 国产淫熟妇| 日本va欧美va欧美va| 九九99香蕉在线视频播放| 六月丁香啪啪| 六月婷婷综合| 婷婷性爱五月天丁香网| 欧美精品啪啪| 停停色综合伊人| 五月中旬婷婷丁香六| 9九色首页| 大香蕉520| 91色色色视频| 噜噜色五月| 做爱夜夜干天天操| 99这里只有精品99| 大香蕉久久久久| 五月大香蕉| 色yeye色综合| 天天干天天做| 一区视频网站| 三区激情四射av| 亚洲狠狠干| 8区视频在线| 亚洲亚洲人成综合网络| 人妻激情网| 婷婷中文在线| 色区域网站视频| 婷婷大香蕉| 丁香五月激情五月| 六月色播| 九九热在这里只有精品| 97色热| 五月婷婷丁香日韩在线| 黑人无码一区| 五月噜噜| 五月丁香啪啪网| 91色色色视频| 五月丁香色色网| 99精品大片| 婷婷六月天| 女婷久久| 五月花亭亭| 色婷婷综合网| 欧美日韩成人在线网站| 五月丁花色综合网| 婷婷午夜| 激情精品久久| 综合丁香婷婷五月天| 99无码视频| 婷婷影视久久| 亚洲人妻av| 久久婷婷五月| 久久色大香蕉| www.粉嫩av.com| 亚洲最大激情无码| 六月婷婷综合网2| 黄色aaaaa| 99riAv1国产在线观看| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 久久99久久99久久99| 91狠狠综合久久| 色五月婷婷在线| 欧美情色一区| 国产日批视频| 日本色色网站| 9在线9在线婷婷在线国产| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 婷婷六月开心网| 激情五月天婷婷| 在线99精品| 夜夜干天天干| 久久婷婷五月综合色丁香花| 99爱这里只有精品| 色婷婷成人网| 99人人干人人| 狠狠色噜噜狠狠狠狠综合| 国产精品24r| 7月婷婷六月丁香| 激情亚洲婷婷| AV成人在线播放| 欧美va在线观看| 人人叉久| A久网| 97操碰98| 日本熟女一区二区| 操操操B| 婷婷六月丁香久| 激情五月天综合网| 亚洲激情无码久久| 欧美性做爰大片免费看办公室| 婷婷四月 成人 狠狠干| 99视频在线| 伊人久久艹| 五月激情影视| 激情 五月 婷婷 丁香| 大香蕉婷婷丁香天堂AV| 丁香九月婷| 夜夜躁爽日日| 日韩抽插操逼| 五月婷A V在线| 久久99色色|