免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
久久久97| 亚洲免费av在线| 五月丁色AV| 91九九| 婷婷五月天精品| 狠狠干综合网| 婷婷午夜丁香| 激情婷婷五月| 五月婷婷六月奇米网丁香| 婷婷丁香五月天综合激情| 婷婷在线五月天观看| 久久婷狠狠色| 久热只有这里有精品| 亚洲婷婷五月天| 色婷婷婷av| 亚洲激情网| 六月婷婷六月天天在线免费| 一本婷婷丁香久久| 国产亚洲在线观看| 欧美成人猛片AAAAAAA| 色五月开心开心五月激情五月| 成人精品视频99在线观看免费| 99热骚货| 五月天婷婷社区久久综合| 欧美色性色好| 超黄亚洲瑟瑟网站| 婷婷色网址| 亚洲无码色色| 久久五月天激情婷婷| 99视频内射三四| 色色色欧美色色| 综合久久五月| 五月婷婷激情久久| 激情综合五月色丁香婷婷| 婷婷五月欧美| 欧美成人va| 久久伊人日日夜夜| 91色吧网| 国产人妻777人伦精品HD| 欧美va亚洲va在线播放| 大香蕉婷婷五月天| 色激情网| 丁香婷婷五月| 色99网站| 5月婷婷综合| 99热网站| 婷婷四月 成人 狠狠干| 五月天丁香综合在线| 日本不卡中文字幕| 亚洲五月天婷婷综合| 加勒比日本一区二区三区| 99热这里有精力| 精品99网站| 丁香9月婷婷| 丁香六月婷婷综合| 五月婷婷婷婷网| 五月婷网| 性爱五月婷婷| 欧美黑人巨大性生话| 亚洲激情97五月天| 欧美性丁香色色五月天综合爱爱| 狠狠色五月| 五月天啪啪| 五月天婷婷色播在线网| 激情丁香社区| 免费超碰在线| 久久精品国产精品| 婷婷六月综合基地| 五月停停丁香| 影音先锋xfplay资源男人网| 亚洲色婷婷五月天| 色久五月天| 狠狠色丁香| 狠狠操狠狠色| 精品久久久人妻| 思思热久久婷婷五月天| 99无码免费视频| 伊人久久中文网| 九九色精品| 99精品视频在线观看| 在线视频色五月| 久久人操-久草婷婷-成人AV| 婷婷五月,综合伊人| 欧洲色色| 五月丁香黄色视频| 亚洲综合色丁香五月天| 亚洲色婷婷色| 久久只有精| 欧美碰碰碰| 狠狠精品干练久久久无码中文字幕| 色香久久| 亚洲操操操| 五月色欧洲| 五月丁香 啪啪| 日本波多野结衣视频| 99无码黄色视频| 人人干人人操人人摸| 深爱激情AV| 99在线观看视频| 91干网站| 欧韩性爱| 婷婷色婷婷| 夜夜夜夜夜操| 在线中文AV| 亚洲秘 无码一区二区三区妃光/1| 六月丁香五月激情婷婷| 亚洲综合婷婷五月| 天天干夜夜b| 看婷婷五月天网| 五月婷婷婷综合网| 99人人干人人| 伊人玖玖精品| 色久女| 丁香五月天激情四射网络不好| 欧美成人AAA片一区国产精品 | 67194国产| 亚洲成人无码网站| 97碰碰视频在线观看免费| 国产在线另类五月婷婷| 色婷婷啪啪| 天天色99| 亚洲女婷婷五月基地综合久久久| 丁香色婷婷五月天| 婷婷9月天| 97碰超级人人看| 79色色免费| 天天看A片| 激情小说视频图片| 丁香婷婷激情六月五月开心| 丁香婷婷色九月| 天天干夜夜想| 91九色熟女| 五月天激情小说| 91婷婷五月天嫩女| 国产97色在线 | 日韩| 天天操天天操天天操天天操天天操| 婷婷区日本| A一级操| 亚洲亚洲人成综合网络| 六月丁香停| 99精品久久久久久久婷婷久久| 五月丁香综合在线| 99亚州综合精品成人网| 99日韩| 中文字幕在线播放视频| 五月香六月婷| 熟女人妻一区二区三区免费看| 懂色av蜜臀av粉嫩av永陈冠希| 深爱激情AV| 国产精品成人在线| 日本啪啪天堂| 天天色色天天| 99久热这里有精品| 人妻丰满精品一区二区A片| 色五月婷婷综合在线| 五月婷婷六月丁香激情深爱| 婷婷色亚洲| 丁香六月婷婷开心| 五月激情网站| 97超碰在线免费观看| 丁香五月影视| 国产精品久久久久久妇女6080| 超级碰碰97在线| 99se丁香| 性生活视频98791| 激情五婷网| 五月丁香色婷婷伊人| 久久99激情| 五月天综合视频| 任你搞免费视频观看| 99re欧美精品| 91碰| 五月丁香色婷婷综合| 五月色影院| 欧美色99| 秋霞AV吧| 亚洲av免费在线| 91九色国产| 另类图片五月天婷婷| 久久99美女精彩视频| 五月丁香激情综合网| 国产在线黄色| 免费看欧美成人A片无码| 国内9l视频自拍老熟女九色| 天天性视频| 欧美婷| 五月婷婷视频| 久热只有这里有精品| 五月婷激情影院| 欧美五月婷婷| 99热这里只有精品中文字幕| 亚洲天堂有码| 翔田千里aV中文字幕| 96五月丁香熟女| 色婷婷免费观看| 亚洲综合五月天| 97超级碰碰碰久久久| 综合久久综合久久| 婷婷五月另类网站| 色婷婷丁香A片区毛片区女人区| 黄网在线免费| 秋霞电影一级黄| 成人丁香五月天| 天天色视频| 97人人操人人拍| 久爱综合| 俺去也综合| 99久久99久久综合| 激情五月天综合网| 人妻激情综合| 99综合视频| 99热日本| 伊人久久大香网| 99综合一区| 91超级碰碰碰| 中文字幕天天干| 26uuu淫色| 人人草人人爱| 中文字幕91,综合| 怡红院院久久| 97人人操人人干| 黄色91在线观看| 99热精品少| 26UUU亚洲欧美| 国产午夜精品AV一区二区麻豆| 欧美天天草人人草| www.天天干| 99原创自拍视频在线观看| 超碰在线观看9| 国产日韩欧美性生活| 五月丁香六月婷婷无码| CHINESE熟女老女人HD视频| 亚洲免费视频网站| 天天爱夜夜爽| 波多婷婷久久| 婷婷丁香五月六月激情| 这里有精品| 99爽视频| 激情婷婷久久| 99超级碰碰| 婷婷六月花| 日本久久人| 久久这有这里精品| 亚洲噜色| 激情开心五月天| 香蕉久久国产AV一区二区| 人妻丰满精品一区二区A片| 國語久久婷| 99热国产免费| 久久大香免费| 激情五月天在线免费美女视频| 熟女强人妻一区二区三区四区无| 婷婷久久六月天| 91久久久久久久久18| 九九热中文| 五月婷婷在线视频观看| 色综合香蕉| 色视五月天婷婷| 夜夜爽天天爽| 色A网| 99热欧| 丁香五月婷婷天堂大香蕉| 超碰在线免费观看日韩| 色色色在线播放| 99热这里有精品| 久久久com| 亚洲无码成人| 久热无码| 可以免费观看的AV| 色五月五月丁香| 五月婷婷丁香六月| 99re思思精品在线观看| 日本婷婷色| 婷婷综合网站| 久久精品天| 五月天开心激情综合网| 日本九九视频| 激情五月婷婷| 九九在线免费观看| 天天综合网色欲香| 91一起操| 99热综合在线观看| 99国产精品久久久久久久久久久| 日操五月婷| 色综合五月天| 日韩成人AV在线| 久久天天| 狠狠狠狠狠狠| 国产99久9在线+|+传媒| 91色噜噜狠狠狠狠色综合| 色九亚洲| 色播五月丁香婷婷| 色五月丁香婷婷| 五月婷婷激情中文字幕| 99操逼| 日本不卡一区二区三区| 色综合色色色色色色综合| 欧美日本高清视频99| 五月丁香啪综合| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 91丨九色丨熟女| 婷婷性爱| 五月丁香六月欧美综合网站| 九九99精品视频在线观看| 91色性感五月婷婷丁香| 欧美群妇大交乱婬网| 五月丁香在线精品| 色色婷婷五月| 久热伊人在91| 丁香五月天在线直播观看| 九九婷婷五月天| 美女五月天| 激情影院69| 99在线视频观看| 视频这里只有精品| 色色欧美色色色| 五月亭亭开心网| 九九热这里只有精品556| 日韩在线看AV| 久久伊人五月天| 色色婷婷综合网| 色偷偷色婷婷| 蜜臀综合久草| 爆乳熟女一区二区三区爆乳| 99热亚洲| 色综合久久888| 激情综合女人网五月播播| 性爱激情久久| 亚洲免费看片| 天天肏在线观看| 五月婷综合性中心| 大香蕉综合网| 色色综合网www| www.com亚洲网站在线免费| 五月婷婷激情69| 最新色色五月天| 综合婷婷六月| 中文字幕不卡+婷婷五月| 国产性av| 操99| 91色在线/日韩| 人人干人人操外国| 99re6在线视频精品免费| 色色99| 五月婷婷激情色情网| 久久hd| yazhoujiqingav| 亚洲中文字幕AV| 这里精品| 久久成人天| 五月婷婷另类| 9月色婷婷| 久久久这里有精品| wwwav大香蕉| 99热成人精品| 国自产拍偷拍精品啪啪一区二区| 性 色 婷婷| 1024国产| 99热资源在线| 色五月婷婷影院| 97深爱伊人综合| 九九热欧美| 一区二区传媒视频| 婷婷丁香精品视频在线观看| 日韩av手机在线观看| 欧美这里只有精品| 99在线观看| 思思热在线视频精品| 能直接看的AV网站| w婷婷五月婷婷w| 丁香五月婷婷无码AV| 中文字幕,综合,91| 五月婷婷|欧美| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 五月丁香婷婷色| 免费在线a| 激情五月视频| 我去色色网五雨天| 激情小说在线视频| 婷婷色网站| 免费日本aⅴ中文字幕| 亚洲欧洲中文日韩久久AV乱码| 日狠狠| 婷婷五月天激情小说| 肏日网在线看| 丁香五月天激情综合| 成人版视频在线观看| 婷婷伊人五月天| 天堂爱爱| 岛国午夜视频| 天天综合网、天天综合色 | 精品香蕉99久久久久网站| 99久久er| 特级片神马电影| 日本成人噜噜噜噜噜| 99亚洲综合| 九九综合视频在线观看| 激情精品久久| 婷婷五月天丁香久久| SESE无码AV| 天天日夜夜欢| 色色亚洲99com| 国内熟女黄色系列| 久久久婷婷色五月资源网| 97ai婷婷| 日本97在线视频| 成人av在线网址| 超碰色综合| 精典久久| 婷婷丁香69精华| 婷婷五月天AV网| 99综合视频在线| 婷婷五月天视| 综合五月激情| 夜夜骑天天操| www.激情| 国产婷婷色综合AV蜜臀AV| 国产看真人毛片爱做A片| 99精品视频免费观看近期发布| 激情图片亚洲| 婷婷丁香91| 久久婷婷内射| 思思热在线视频观看精品| 狠狠婷婷爱| 99性感视频| 激情www| 五月丁香婷婷婷激情爱爱| 97干在线观看视频| 激情五月婷婷| 天天久久九九| 欧美婷婷丁香五月社区| 久久这里只有精品07 | 国产精品99久久久久久猫咪| 六月丁香成人| 97丁香五月| 五月丁香av中文| 亚洲小视频免费观看| 日韩按摩二区| 婷婷五月天熟妇| 亚洲国产网站| 国产免费av网站| 日本少妇裸体做爰高潮片| 成人短视频在线| 五月婷婷久久综合| 色七色九九| 五月综合缴情网| 99riAv1国产在线观看| www色五月| 激情性爱五月天网页| 丁香五月大香蕉AV| 五月丁香六月婷婷综合伊人| 91久久久久久久久久久| 91seav| 欧美操逼天堂| 天天干,天天操,天天射| 婷婷国产欧美97| 免费在线观看av网站| 五月婷婷啪啪啪啪| 九九色黄色| 波多野结衣不卡AV| 七七色综合| 九色亚洲| 六月婷婷久久| 丁香六月色婷婷| 中字幕视频在线永久在线观看免费| 狠狠色丁香婷婷五月| 开心婷婷五月激情网小说| 色99热| 久久香蕉网| 99热超碰人| 激情九月综合| 五月天狠狠网| 亚洲成人AV高清字幕| 大香蕉久热| 婷婷色色播五月天| 婷婷五月天丁香花| 亚洲另类毛片| 婷婷基地五月色| 亚洲激情婷婷| 国产精女同一区二区三区久 | 五月婷婷综合激情网| 久久婷婷丁香六月天| 亚洲色综合| 综合久久五月| 亚洲成人在线观看网址| 涩综合在线| 日亚二欧美| 色啦啦视频| 97色色色色| 4399在线日本A片| 伊人网啪啪| 婷婷激情四射| 婷婷综合五月天| 日撸夜撸日操| 乱岳熟女50岁| 中文字幕丰满乱孑伦无码专区| 婷婷社区五月天| 五月婷婷久草| 一本道综合网| 99热成人| 九九视频网| 久久激情五月天| 肏日网在线看| 天天干天天叉| 久草丁香婷婷1024| 色欲香综合网| 无码少妇高潮喷水A片免费 | www五月| 九九狠狠干| 色婷五月天激情| 色爆五月| 久久五月丁香六月婷| 另类激情中文| 丁香六月啪啪| 99久久6| 九九re精品视频在线观看| 色情婷婷五月天| 日操夜操天天操不卡| 99热这里只有精品13| 久久小视频| AV在线中文| 色五月成人| 婷五月天| 五月丁香六月在线| 色五月天丁香婷婷色| 国产婷婷五月色情综合| 精品国产a| 五月天影院| 婷婷福利影院| 久久小片| 国产永久一黄| 色五月成人| 99久久.www| 五月激情婷婷国产精品久久久久久| 久久精热| 五月婷婷深深爱| 色99自拍| 欧美丁香五月夫妻天| 91男女视频在线观看| 99在线观看| 五月天婷婷色| 日本在线视频看se99| 色五月婷婷婷婷| 五月激情影院| 玖玖色综合| 久久色五月天| 综合玖玖偷拍| 激情五月婷婷五月丁香五月开心五月| 91嫩草国产线观看亚洲一区二区| 亚洲五月丁香综合网| 色天堂在线| 操逼综合网| 婷婷激情五月综合在线视频| 国产小精品| 99久久久国产大片区| 五月丁香色| 六月丁香六月婷婷欧美| 九九性爱网| 综合色婷婷| 欧洲亚洲最新精品| 色综合视频在线| 九九这里只有精品在线视频| 婷婷干| 五月丁香六月婷婷久久久综合| WWW色色色COM| 97成人超碰免| 99日这里只有精品| 婷婷五月天首页激情| 情趣视频66| yiqicaoav| 国产婷婷五月色情综合| 超碰国产AV| 丁香五月婷婷视频| 97色欧美| 色婷婷婷婷| 婷婷五月天激情四射五月天激情| 五月天激情四射| 99r久久这里只有精品| 97人人草| 五月丁香另类网| 丁香婷婷五月综合欧美另类| 丁香婷婷五月天在线视频| 碰人人操| 涩涩涩五月天| 开心婷婷五月花| 99免费超碰在线| 牛牛碰免费| 日韩一级网站| 色99在线视频| 亚洲色色精品| 婷婷久久免费| 五月激情影院| 天天热夜夜操| 综合色网站| 99色在线| 激情婷婷丁香色五月| 色婷婷成人久久| 国产精品视频免费看| 99,色| 无码免费人妻A片AAA毛片西瓜| 伊人午夜综合色啪| 色人久夂| 日韩无码专区| 天天日天天插| 色五月aV| 激情五月婷黄版| 99亚洲天堂| 久久这里只有精品16| www,超碰| 欧美性生交XXXXX无码小说| 99热99热99热99热| 久久久婷婷| 色欲AVV| 婷婷99中文字幕| 天天上天天爽| 香蕉操亚洲| 性按摩玩人妻HD中文字幕| 玖玖热视频| 99精品热视频只有精品10| 午夜伊人大香蕉| 欧美五月婷婷| 色婷婷五月天天天干天天操天天爽| 超碰爱爱爱| 青青青在线视频国产| 日日.c| 亚洲五月天综合色| WWW,五月| 十二区无码| 人妻久久久久久久| 99视频| 成人AV在线网站| 超碰93在线观看| 影音先锋自拍网| 91九色国产| 亚艹艹| 色99视| 日本一级特黄大片AAAAA级| 久久久99精品免费观看| 亚洲免费看片| 开心五月婷婷| 欧美成人网99网| 精品无码人妻一区| 婷婷五月天最新综合你懂的| 色九月欧美| 色婷婷小视频| 狠狠婷婷色| www.99热| 天天综合在线网| 激情丁香九九五月综合网| 欧美va欧美va差| 狠狠人妻久久久久久综合丁香| 九九激情综合| 婷婷激情视频| 色色cOm| 激情综合婷婷五月| 九九热99re8热免费观看| 久久女人天堂| 婷婷久久丁香五月| 91精品婷婷国产综合| 精品九九网| 奇米四色五月天| 综合五月激情| 色婷婷A| 97伦乱| 性爱激情五月| 丁香五月婷婷香| 91日在线视频| 91热久88| 操逼五月天| 亚洲天堂碰碰婷婷| 婷婷色一二三区波多野结衣| 亚洲乱啪| 色噜噜五月天| 日韩性视频| 超碰人人操在线| 秋霞A V毛片| 欧美精产国品一二三区| 九九激情网| 综合五月丁香久久| 五月丁香在线婷婷蜜桃| 色五月婷婷久久大| 色亚洲欧洲| 日本熟女二区| 五月天成人综合| 日本综合久久| 天天影院色| 日本天天色| 成人做爰A片免费看视频| 日韩无码专区| 第四色色六月色综合| 操日本色| 丁香五月综合激情啪啪| 九九视频在线观看视频在线播放69| 婷婷在线视频| 99碰碰碰| 殴美日比视频| 婷婷五月丁香综合激情小说| 夜夜综合色| 综合性爱网| 婷婷五月婷婷| 人人操9| 日本免费91| 婷婷五月在线免费| 天天综合天天玩夜夜玩天天玩夜夜玩 | 五月婷婷久久综合| 国熟女视频| 亚洲激情免费视频观看| 久久婷婷综合网| 热久久这里只有精品| 日本三级第一页| www,超碰| 天天做天天爱天天爽在| 狠狠草狠狠草| 五月天婷婷久久视频| 97一区二区| 色婷婷在线播放| 婷婷激情四射| 婷婷五月激情在线| 久大香蕉| 国产偷人爽久久久久久老妇APP| 中文字幕不卡网站| 日韩在线视频中文字幕| 色婷婷精品小视频| 欧美色色色色色| 人人操人人爱丁香五月| 五月丁香| 久久五月天激情婷婷| 日本妈妈乱| 99视频久久| 欧美成人精品三区综合A片| 成年视频免费观看| 丁香五月婷婷亚洲综合精品在线| 激情视频综合| 亚洲精品无码A片一区二区| 99色色网| av人人干| 欧美五月停| www.日本久久videos| 这里只有精品视频99| 九月丁香| 7超碰自拍| 亚洲日韩欧美综合VA| 综合久久99| 99九九在线精品热动漫| 天天干天天射色综合| 伊人久久婷婷| 色婷婷久久综合| 91精品久久久久、久五月天| 丁香五月-激情综合| 99热免费| 天天草天天爽| 久久一级片| 天天操夜夜夜拍拍拍| 色婷婷a v| 九九九激情网| 9九热视频| 九九热在线精品| 亚洲AV综合在线观看| 伊人国产婷婷五月天| 99re6久热只有精品6在线直播| 五月天婷婷激情在线色图| 久久成人天| 伊人在线视频| 久久婷婷五月草视频在线播放| 五月丁香婷婷色| 九九狠狠干| 色香久久| 97超碰在线免费观看| 色五月天成人| 国产色99| 久热免费| 永久免费一区二区三区| 五日激情综合| 狠狠色丁香婷婷五月| 色婷婷丁香| 久久99草五月婷婷| 婷婷丁香五月综合网上| 国产特黄色精品一区二区三区精品无广告| 少妇久久诱惑视频| 亚洲精品久久久无码| 天天草天天爱| 99久久国产宗和精品1上映| 激情99。| 欧美韩国日本| 激情五月天丁香| 色9999综合久久| 五月婷综合性中心| 国产67194| 啊V视频在线观看| 玖热精品综合视频| 色99日韩| 综合色网站| 五月丁香婷婷成人网| 久久看婷婷| 丁香五月97视频| 女人被男人吃奶到高潮| 欧美久久婷婷| 成人在线日韩| 色色亚卅| 亚洲无码你懂的| 9l视频自拍9l九色9l成人| 久激情网| 777影视理论片大全在线观看| 久噜久噜| 亚洲婷婷激情综合激情999精品| 婷婷99狠狠躁天天| 青青草Avb在线| 深爱激情五月婷婷| 色婷婷色和| 丁香五月激情啪啪| 丁香六月婷婷久久亚洲天堂| 深爱激情网综合| 熟妇国产| 丁香六月无码播放| 丁香花狠狠婷婷亚洲中文字幕| 婷婷五月天六月| 五月综合激情网| 欧美草久久五月天91| 超碰妻人人| 99热无码| 色婷婷综合在线| 五月天天视频| www.婷婷,com| 青草视频在线播放| 五月天婷婷无码视频| 天天色图| 五月丁香久久综合91| 色婷婷久久| 97av在线视频| 婷婷97碰碰| 超碰大香蕉网| www.色五月| 亚洲AV激情五月综合网| 久热一区| 99热在线免费| 热99在线精品| 91日本在线观看| 成久综合视频| 亚洲精品久久久无码| 综合久久久婷| 日本色色网站| 色色五月天激情| 婷婷五月丁香五月| 婷婷丁香基地在线| www.99热精品99.com| 五月天伊人久久久久| 996er热| 激情婷婷丁香| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 991国产精选视频在线播放下载| 婷婷深爱五月亚洲综合| 五月丁香啪啪综合| 久久玖玖99| 成人午夜天| 可以直接看的av网站| 欧美人人草草| 激情99热| 亚洲色色图片| 一区=区操屄高清大全av| 久久激情天堂| 丁香五月天信号| 日韩成人网址| 九九爱激情| 五月天激情小说网| 五月婷久久| 99色色网| www色婷婷久久综合久色| 99热在线播放| 亚洲AV另类| 色婷婷五月色| 丁香五色月婷婷网| 日韩精品无码AV| 丁香五月天啪啪| 欧美97p| 色老久久| 精品亚洲国产成人A片在线鸭王| 美英法精品无码免费视频| 欧美人人女女精品综合五月天| 久久综合五月| 这里只有精品免费视频在线观看| 思思99久久| 国精产品一区一区三区免费视频| 九九99久久| 激情五月伊人婷婷| 免费操超碰| 天天爱天天爽| 色色射| 婷婷激情丁香五月天综合| 中文AⅤ大全| 色婷婷av在线观看| 欧美色色色色色色色| 久热91| 丁香五月婷婷总啪啪| 亚洲中文字幕AV| 色久综合天天做视频| 人人操日| 97色碰碰公开视频| 丁香五月天激情综合| 99亚洲日韩| 26uuu欧美日韩| 久热久re| 五月婷婷六月色| 夜色综合网| 五月天伊人日日噜影片AV| 亚洲性视频| 一级片操逼视频| 久久丁香五月婷婷| 99在线精品在线视频| 亚洲VA欧美VA| 九九视屏| 国产精品电| 色色色综合色| 天天天天干| 色久免费| 九九九精品视频免费观看| 色婷婷丁香社综合| 天天揷综合网| 五月丁香五月婷婷| 夜色综合网| 99热这里只有精品一区| 日日日,com| 啪啪 综合网| 亚洲色图五月丁香五月婷婷| 五月丁香婷婷综合| 九九精品自拍| 99免费在线| 久久99这里只有精品视频| www.丁香五月| 欧美这里只有精品| 老司机伊人| 秋霞少妇AV网站| 狠狠久久婷婷| 五月综合激情久久| 色综合99无码 | 丁香五月天导航| 91久久九久久九久久九久久九久久| 综合久久婷婷99| 亚洲日韩一页精品发布| 啪啪综合网| 婷婷五月天激情文学小说| 丁香五月冃欧美| 五月婷婷丁香大陆免费| 精品一二三区久久AAA片| 亚州精品成人片| 天天做天天爱天天爽夜夜揉| wwwC0maV五月花| 九九re精品视频在线观看| 丁香五月电影| 玖玖精品婷婷| 婷婷开心青青草| 色天堂在线| 噼里啪啦完整版中文在线观看| 婷婷丁香综合| 狠狠va| 丝袜激情网| 婷婷五月天97干| 久久作爱| 99在线精品视频免费观看20| 色婷婷www| 五月天激情美女久久| 五月亭亭六月天| 在线视频你懂得| 超碰成人在线观看| 五月天久久综合| 波多野结衣AV无码Porn| 久久久精品人妻| 丁香五月六月综合欧美| 五月成人天| 久热A| 色色色色色网站| 色五月婷婷激情| 开心激情网在线| 久久人妻视频| 婷婷爱五月| 欧美在线操| 夜夜夜夜夜骑撸| 亚洲电影在线观看| 超碰狠狠操| 丁香五月婷婷视频| 99热最新国内| 五月婷婷六月丁香激情综合网| 婷婷五月色播| 97色色婷婷| 夜夜夜夜夜操| 色区久久| 四川BBB搡BBB搡多人乱亂| 国产伦亲子伦亲子视频观看| 色一色综合| 久久久日韩特色特黄AAAA| 一起操 91N.com| 九九精品亚洲| 亚洲第一黄网| 丁香五月综合激情久久潮喷| 婷婷五月天xxx| 婷婷丁香五月天小说| 亚洲综合婷婷六月丁香五月| www99热| 大天天伊人| 五月丁香福利| 综合婷婷| 五月天婷婷综合色| 激情av网| 久操综合| 五月丁香五月丁香| 色色色色色色色色色999| 色婷婷社区| 91热视频色网站| 色五月婷婷综合| 国产AV一区二区三区最新精品| 老师高潮流白浆喷水的A片| 人妻六月天| 玖玖在线视| 激情文学天天| 婷婷五月精品中文字幕| 久青草影院| 婷婷色婷婷| 欧美日本韩国亚洲| 五月天色色色色色| 天天肏视频| 五月丁香WWW| 五月婷婷丁香瑟瑟视频| 99九九精品视频| 丁香六月天| 激情婷婷。| 涩五月色婷婷| 丁香五月婷婷老师网站| 开心五月婷婷婷美女| a色婷婷| 六月婷婷综合| www.91久久| 色网站99| 大香蕉 婷婷| www.久久av.com| 91精品又长又大又粗又爽又猛| 综合久久综合| 这里都是精品99| 666555。COm毛片| 天天做天天爱天天综合| 九九综合网色全集 | 九九九九九九九热| 91碰操| 中文字幕,综合,91| 五月丁香六月色婷婷综合五月天| 人妻丰满精品一区二区A片| 丁香五月23111| 99啊精典免费视频| 99免费| 丁香五月婷婷天激情| 丁香九色不卡aaa| 亚洲综合无码| 久久亚洲色导航| 潮汕成人AV片在线| 任你爽免费视频| 六月丁香激情最新更新| 丁香五月婷婷少妇| 久草五月天| 伊人网色婷婷五月天| 日韩欧美一道四区中文字幕| 国产精品色色| 丁香五月天在线| 亚洲天堂99| 色色色com| 人妻精品在线| 久久婷婷五月激情网站| 婷婷天堂视频| 六月激情婷婷| 超碰色碰碰| 欧美色狠婷久| 九九热精品视频在线观看| 少妇AB又爽又紧无码网站 | 这里只有精品久久| 中日韩美欧成人一区二区精品在线| 成人网站免费在线播放| 五月花丁香婷婷| 成人AV在线电影| 操日视频| 99热99干| 亚洲V国产V欧美V久久久久久| 成人超碰网| 99久久极情精品一区| 小视频aaa久久久| 久碰综合| 狠狠狠狠狠狠草| 五月天免费色| 九九香蕉网| 久久天堂加勒比| 色五月成人在线| 久热九九| 色情五月丁香| 婷婷六月色| 天天色凹凸| 五月的婷婷六月丁香| 五月丁香啪啪综合| 大香蕉婷婷丁香| 夜夜躁爽日| 激情综合网激情五月俺也去| 色五月丁香五月五月婷婷| 黄网免费看| 久久国产高清| 99国产性感视频| 最近免费中文字幕大全高清大全1 色狠狠色噜噜AV天堂五区 | 91操屁股| 婷婷丁香五月综合激情视频| 爽tv | 九九热这里都是精品6| 97人妻碰碰中文无码久热丝袜| 99久久久久久久| 婷婷五月花丁香| 99色综合久久| 五月开心婷婷| 夜精品无码A片一区二区蜜桃| 婷婷久久久| 任你爽免费视频| 日本视频99| 天天色99| 五月婷婷九九热| 色玖玖综合网| 五月婷婷激情中文字幕| 日本丰满久久| 日本操逼九九九九58日本操逼| 日本一级黄色片。| 午夜性爱影视一区77| www.五月天| 丁香五月综合色婷婷| 色色色色热| 91蜜桃婷婷狠狠久久综合9色| 亚洲区视频| 久操综合| 天天肏夜夜肏| 色婷婷www| 狠狠久久婷五月| 91碰视频| 五月婷丁香| 丁香丁婷五月激情| 九九热在线视频| 日韩人妻无码一区二区| 久久九九网| 婷婷激情五月天在线视频| 狠狠干激情五月| 婷婷五月天最新综合你懂的 | 六月丁香综合网| 五月丁欧美| 色色色综合视频| www.狠狠操.con| 久久性爱网站| www.亭亭五月天| 天天精品视频免费观看| 五月综合色| 99热免费| 九月av在线| 综激情网| 色婷婷久久| 丁香婷婷久久| 狠狠色 综合色区| 99在线精品免费视频| 色婷婷香蕉在线| 色婷婷五月影视| 91操片| 爱之国产色情综合| 婷婷五月久久| 综合色色色| 色色丁香五月天| 香蕉久久国产AV一区二区| 国产91资源在线| 婷婷色六月| 婷婷丁香在线| 五月激情视频网| 婷婷五月综合激情免费| 久久99久久99精品免观看粉嫩| 六月婷婷五月丁香| 五月婷婷丁香日韩在线| 久久 中文 日本| 九九Av| 丁香五月激情婷婷| 91九色欧美| 91丨九色丨熟女高潮| 性爱激情久久| 人妻激情综合| 777精品成人a v久久| 久久婷婷视频| 五月丁香六月激情| 久久91久久精品久久| 婷婷丁香五月91| 久久激情综合| 思思热99热| 超碰人人操人人干| 99久久网站| 26uuu国产精品| 91AV视频| 激情小说五月天| 99综合99| 超级碰碰碰碰视频| 高清无码入口| 五月婷婷五月天亚洲无码| 91啪啪网| 婷婷色综合| 六月婷婷中文字幕| 99热99成人| 日韩人妻在线播放| 超碰91在线| 婷婷播播五月天| 91丨九色丨白浆| 极品少妇高潮啪啪AV无码| 99色免费观看全部| 五月6香色婷婷视频| 天堂呦 呦百度搜索-百度搜索| 久久综合中文字幕| 国产综合激情五月久久| Caop在线| 人妻丰满精品一区二区A片| 色色日本| 激情五月伊人婷婷| 99碰在线视频| 人妻久久久| 色色日本欧美| 五月天婷婷激情干干| 日韩AV在线免费观看| 精品人妻伦九区久久AAA片| 婷婷五月情| 亚洲成色综合网站免费观看| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 9+1视频网址| 一本综合丁香日日狠狠色| www.综合久久| 国产日韩精品SUV| 亚洲天堂啪啪| 婷婷丁香五月天亚洲| 精品人人操| 天天干天天干天天干天天干天天| 婷婷五月天综合网| 色五月婷婷1| 婷婷五月天在线观看免费| 日本黄色三级片内射| AV成人在线播放| www.夜夜騎夜夜狠| 亚洲综人色综网| 久久9RE热视频精品98| 久热在线中文字幕色999舞| 亚洲无线视频| 婷婷色狠狠| 五月六月激情婷婷| www.99久久久| 久久爱综合| 精品无码久久久久久久久| 久久9久| 六月 丁香 视频| 婷婷色系婷色| 色播综合| 在线伦子99热| 色色综合网www| 激情五月天视频| 中文字幕av在线播放| 91久久婷婷人人澡草| 5月丁香婷婷| 操99| 99自拍视频网站| 色九综合| 婷婷五月天最新网址| 天天xxxxxx天天日| 国av网| 欧美日本va| 五月花激情网| 婷婷五月天网址| 婷婷五月天激情小说| 99色在线视频| 色色啊|