freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于聲卡的虛擬示波器設(shè)計(jì)【畢業(yè)論(編輯修改稿)

2025-07-13 07:33 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 Stereo) 等等 。 點(diǎn)擊RunDebug 就可以執(zhí)行程序,如果程序正確無(wú)誤,就會(huì)成功的執(zhí)行 ,如圖 。 圖 生成代碼 圖 執(zhí)行程序 本章小結(jié) 本章首先 簡(jiǎn)單 介紹了 設(shè)計(jì)軟件的環(huán)境 LabWindows/CVI。先簡(jiǎn)單描述下它的功能,這也就是為什么選擇 這款軟件的主要原因之一; 接下來(lái)簡(jiǎn)單描述 進(jìn)行虛擬儀器設(shè)計(jì)的一般步驟:設(shè)計(jì)面板,生成并添加代碼 ,執(zhí)行程序。 中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 8 頁(yè) 共 38 頁(yè) 3 虛擬示波器的模塊化設(shè)計(jì) 示波器是生產(chǎn)實(shí)踐和科學(xué)實(shí)驗(yàn)等常用的儀器之一,具有不可替代的作用。但是傳統(tǒng)示波器外形笨重,對(duì)使用者要求較高,而且生產(chǎn)傳統(tǒng)的 臺(tái)式示波器工藝復(fù)雜、 技術(shù)要求 比較高、生產(chǎn) 成本大,不可能全面推廣到各個(gè)科研和學(xué)習(xí)場(chǎng)所中,這就使得虛擬示波器應(yīng)運(yùn)而生 ,虛擬示波器相對(duì)傳統(tǒng)示波器有很多的優(yōu)點(diǎn),如表 。 本文所設(shè)計(jì)的是基于聲卡的虛擬示波器, 是在 LabWindows/CVI 2021 平臺(tái)下實(shí)現(xiàn)的, 聲卡是一個(gè)非常優(yōu)秀的音頻信號(hào)采集系統(tǒng),技術(shù)已經(jīng)非常的成熟,其數(shù)字信號(hào)處理器包括模數(shù)變換器 ADC(Analogue Digital Converter)和數(shù)模變換器 DAC(Digital Analogue Converter),本文只用到 ADC,用于采集音頻信號(hào) 。 在前人的基礎(chǔ)上,利用前輩們?cè)O(shè)計(jì)好的聲卡驅(qū)動(dòng),實(shí)現(xiàn)信號(hào)的采集和一系列的功能。 由于作者的能力有限,只能實(shí)現(xiàn)傳統(tǒng)示波器的基本功能 ,但對(duì)于基本信號(hào)的測(cè)量和觀測(cè),已經(jīng)能夠滿足普通教學(xué)的需要,能為許多需要它的地方節(jié)省開支和資源 。為了方便設(shè)計(jì)和 其他需要的朋友 閱讀,我采取了模塊化設(shè)計(jì)的方法,其中包括信號(hào)采集模塊、波形顯示模塊、頻譜分析模塊、波形調(diào)節(jié)模塊、信號(hào)存儲(chǔ)模塊以及其他功能模塊等。 表 傳統(tǒng)儀器和虛擬儀器對(duì)比 數(shù) 據(jù) 可 編 輯 、 存 儲(chǔ) 、 打 印虛 擬 儀 器 傳 統(tǒng) 儀 器核 心 是 軟 件 核 心 是 硬 件開 發(fā) 和 維 護(hù) 費(fèi) 用 低 開 發(fā) 和 維 護(hù) 費(fèi) 用 高技 術(shù) 更 新 周 期 短 技 術(shù) 更 新 周 期 長(zhǎng)可 重 用 性 、 可 配 置 性 強(qiáng) 功 能 單 一 、 可 配 置 性 差數(shù) 據(jù) 無(wú) 法 直 接 處 理易 于 其 它 設(shè) 備 通 訊 不 易 實(shí) 現(xiàn) 通 訊功 能 由 用 戶 自 己 定 義 功 能 由 廠 家 預(yù) 先 定 義 信號(hào)采集模塊 本文 的題目 是基于聲卡的虛擬示波器, 顧名思義,是在聲卡的基礎(chǔ)上設(shè)計(jì)的虛擬示波器,而不是常用的 數(shù)據(jù)采集卡 ( DAQ) , 自然 不能直接運(yùn)用 LabWindows/CVI 的函數(shù)庫(kù)來(lái)實(shí)現(xiàn)。 信號(hào)的是從聲卡 輸入端 接 入的, 而官方 又沒有提供相應(yīng)的驅(qū)動(dòng), 所以借用了參考書中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 9 頁(yè) 共 38 頁(yè) 驅(qū)動(dòng)聲卡的方法 [28]。 聲卡的輸入端口 有兩個(gè):分別是 Line in 端口 和 Mic in 端口 。 Line in端口 也就是 線形輸入接口,將品質(zhì)較好的聲音、音樂信號(hào)輸入 ; Mic in 端口用于連接麥克風(fēng)(話筒),也就是錄制聲音。 但是我們這里只能用 Line in,這是由于 Mic in 具有放大作用,在聲卡的前置放大器中將信號(hào)放大了,而這個(gè)放大倍數(shù)又 是不 確定的,它受聲卡類型、系統(tǒng)、驅(qū)動(dòng)等的影響。 在主函數(shù)中,調(diào)用了聲卡配置函數(shù),用于獲取聲卡的配置信息,包括采樣點(diǎn)數(shù) 、采樣位數(shù)、回調(diào)函數(shù)等。 在回調(diào) 函數(shù) MyFunction()中, 首先獲取通道數(shù),然后清除可能存在的曲線 (如果事先進(jìn)行了觸發(fā)) ,接下來(lái)利用 switch(Resolution)進(jìn)行分辨率的判斷,因?yàn)榇蠖鄶?shù)聲卡的配置都是 16 位的,本文利用的聲卡也是如此。所以在 16 位 的情況下,判斷聲卡的設(shè)置是不是立體聲,如果是,則進(jìn)行雙聲道采集,將獲取的 data— 也就是離散后的點(diǎn)的值存到相應(yīng)的數(shù)組中,再進(jìn)行接下來(lái)的一系列操作。 信號(hào)采集是整個(gè)系統(tǒng)設(shè)計(jì)的第一步,是實(shí)現(xiàn)虛擬示波器的基礎(chǔ),只有 將信號(hào)采集進(jìn)來(lái)之后,才能夠進(jìn)行接下來(lái)一系列的工作,比如顯示、傅立葉變換、存儲(chǔ)等等。 波形顯示模塊 虛擬示波器界面 是人機(jī)交換的唯一途徑,合理的、舒適的界面會(huì)讓用戶感覺 到舒適和愉悅,非常有利于工作和學(xué)習(xí),提高效率,所以一個(gè)良好的可視化界面對(duì)于 設(shè)計(jì)者來(lái)說(shuō)至關(guān)重要,這直接影響著產(chǎn)品的好壞,直接影響它的推廣度,而 LabWindows/CVI 恰恰擁有圖形化的界面, 可以很方便的在面板上添加所需要的控件,而不需要為了編制圖形控件浪費(fèi)大量的時(shí)間, 這為設(shè)計(jì)者提供了一個(gè)很好的展示平臺(tái)。 在面板上 添加一個(gè)用于圖形顯示的控件 , 這樣就創(chuàng)建了顯示屏 ,雙擊它進(jìn)行屬性修改 :將 Callback function 設(shè)置為 show(這是回調(diào)函數(shù)的名稱) , Bottom XAxis 內(nèi)的最小值和最大值分別設(shè)置為 0 和 1023( 這是由于屏幕顯示的是 1024 個(gè)點(diǎn),每次數(shù)據(jù)更新都是 1024 個(gè)點(diǎn)同時(shí)更新), Left YAxis 內(nèi)的最小值和最大值分別設(shè)置為 1 和 +1(聲卡的輸入范圍是固定的,如果超過(guò) 1V,可能會(huì)燒壞聲卡)。 為了實(shí)現(xiàn)光標(biāo)定位,還需要添加 Cursors,在這個(gè)選項(xiàng)中,將光標(biāo)的數(shù)量設(shè)置為 2,并且將光標(biāo)的顏色分別設(shè)置為紫色和淺綠色,并將交叉線形設(shè)置為長(zhǎng)交叉(這樣使用起來(lái)更方便) ,其他的可以按照自己的喜好進(jìn)行設(shè)置。 在面板上添加一個(gè)用于表示控制開關(guān)的控件, 單擊右鍵, 將標(biāo)簽改為實(shí)時(shí)顯示,并將 Callback function 設(shè)置為 realtime_show,默認(rèn)狀態(tài)設(shè)置為 on。 再設(shè)置三個(gè) 用于控制開始、停止和關(guān)閉的三個(gè)控件 ,分別將標(biāo)簽設(shè)置為開始采集、停止采集、關(guān)閉, 顏色大小可以按照自己習(xí)中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 10 頁(yè) 共 38 頁(yè) 慣的方式。 另外,設(shè)置兩個(gè) 圓形開關(guān)控件 ,設(shè)置 為通道 1 和通道 2,默認(rèn)狀態(tài)設(shè)置為 on。然后對(duì)控件點(diǎn)擊右鍵,選擇 Generate Control Callback,生成函數(shù)框架,然后添加函數(shù)功能。 在 “開始采集” 控件中, 一旦觸發(fā),先將觸發(fā)模式關(guān)掉, 開始采集里面調(diào)用 MicStart()函數(shù), My Function()開始 工作, 信號(hào)采集進(jìn)來(lái) ,利用 if()語(yǔ)句進(jìn)行判斷實(shí)時(shí)顯示按鈕是否被選中,并且保證觸發(fā)沒有工作, 通過(guò)判斷通道 1 或 2 才能將其中的波形顯示到 Graph 上 ,如果兩個(gè)通道都沒有被選中,則利用 Message Popup()提出警告,“請(qǐng)選擇通道 1 或通道 2”如圖 ; 同樣,停止采集時(shí),調(diào)用 MicPause()函數(shù) , My Function()停止 工作 。 在 realtime_show中,一旦程序執(zhí)行時(shí),開始采集后點(diǎn)擊控件( 同時(shí) 實(shí)時(shí)顯示),則會(huì)顯示從聲卡讀取到的信號(hào)波形 ,可以在 Graph 上實(shí)時(shí)地觀測(cè)到 ,如圖 。 圖 選擇通道 圖 實(shí)時(shí)顯示波形 頻譜分析模塊 FFT(fast Fourier transform),即快速傅立葉變換, 是一種 DFT 的高效算法 , 是一種線性的積分變換,屬于諧波分析, 也可用于計(jì)算離散傅里葉變換的逆變換。 其算法的原理是通過(guò)許多小的更加容易進(jìn)行的變換去實(shí)現(xiàn)大規(guī)模的變換,降低了運(yùn)算要求,提高了運(yùn)算速度。 快速傅里葉變換有廣泛的應(yīng)用,如 數(shù)字信號(hào)處理 、計(jì)算 大整數(shù)乘法 、求解 偏微分方程等等。 本文中并不需要了解復(fù)雜的算法,只需要利用軟件本身設(shè)計(jì)好的函數(shù)就可以, 因?yàn)檐浖O(shè)計(jì)者已經(jīng)將復(fù)雜難懂的算法利用程序代碼實(shí)現(xiàn)了, 這里再次 體現(xiàn)了 LabWindows/CVI的優(yōu)越性。 在面板上添加一個(gè)選擇控件 ,標(biāo)簽設(shè)置為 FFT計(jì)算, 默認(rèn)值設(shè)置為 off, Callback function中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 11 頁(yè) 共 38 頁(yè) 設(shè)置為 fft,然后生成函數(shù)框架,在框架中添加一些語(yǔ)句。當(dāng)控件被點(diǎn)擊后, 先將面板的實(shí)時(shí)顯示控件、波形相加控件設(shè)置為不選中, FFT 計(jì)算控件設(shè)置為選中,并將定義的全局變量 real_time_show_mode(實(shí)時(shí)顯示) 設(shè)置為 0, wave_sum_mode(波形相加) 設(shè)置為 0,fft_calculate_mode(傅立葉計(jì)算) 設(shè)置為 1。 不僅如此,此時(shí)還要修改顯示縱坐標(biāo),這是由于快速傅立葉變換后,幅值不是采樣點(diǎn)的大小值,只是代表著能量大小的包絡(luò), 這里只能說(shuō)明對(duì)于相應(yīng)信號(hào)進(jìn)行變化后的大致情況 ,或者說(shuō)是快速傅立葉變化后的形狀等等 。 為了能夠描述出變化后 的形狀 , 使用 SetAxisScalingMode()函數(shù)設(shè)置變化后的縱坐標(biāo) , 這里的設(shè)定 可以說(shuō)是完全 是為 MyFunction()函數(shù)服務(wù)的, 信號(hào)采集進(jìn)來(lái)之后,進(jìn)行 傅立葉變換:首先將采樣點(diǎn)值設(shè)置為 FFT 的實(shí)部,通過(guò)循環(huán)使 1024 個(gè)點(diǎn)的虛部全部設(shè)定為 0,然后利用FFT 函數(shù) (FFT (wave, img, NumDataPerChannel)),實(shí)現(xiàn)了傅立葉變換,再通過(guò)極坐標(biāo)轉(zhuǎn)換函數(shù) ToPolar1D ()計(jì)算出 FFT 后的幅值大小,再利用畫圖函數(shù) PlotY()將 FFT 后的波形顯示在 Graph 上 ,如圖 所示 。 圖 聲音信號(hào)的快速傅立葉變換 波形調(diào)節(jié)模塊 在使用傳統(tǒng)示波器時(shí),很少是只查看原始波形的,大多需要對(duì)采集進(jìn)來(lái)的波形進(jìn)行適當(dāng)?shù)恼{(diào)節(jié), 比如移動(dòng)、放大等,這樣做的目的是能夠?qū)π盘?hào)信息更加的了解,便于進(jìn)行分中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 12 頁(yè) 共 38 頁(yè) 析和使用。因此,設(shè)計(jì)虛擬示波器時(shí),必須要考慮到這些波形調(diào)節(jié)的問(wèn)題,使得它更逼近于傳統(tǒng)示波器,甚至在部分功能上超越傳統(tǒng)示波器,是用戶擁有更佳的操作感受和更多的實(shí)用功能。 本次基于聲卡的虛擬示波器設(shè)計(jì)中, 波形調(diào)節(jié)模塊包括水平 移動(dòng),垂直移動(dòng),水平放大縮小,垂直放大縮小,光標(biāo)定位和觸發(fā)控制,其中水平移動(dòng)和垂直移動(dòng)作為一個(gè)模塊,水平放縮和垂直放縮作為一個(gè)模塊。 這些都是用戶在使用傳統(tǒng)示波器常用的功能, 對(duì)于使用者來(lái)講是必不可少的。 當(dāng)然也 是本文內(nèi)容的重要環(huán)節(jié) ,下面按照設(shè)計(jì)的順序逐一敘述。 1)水平移動(dòng)和垂直移動(dòng) 水平移動(dòng)和垂直移動(dòng)的原理是一樣的,都是通過(guò)修 改坐標(biāo)來(lái)實(shí)現(xiàn)的,只是設(shè)定的移動(dòng)值大小不同而已。單擊右鍵,設(shè)置兩個(gè)旋鈕 ,分別將標(biāo)簽設(shè)定為水平移動(dòng)和垂直移動(dòng),相當(dāng)于傳統(tǒng)示波器的水平和垂直旋鈕,并將 Callback Function 分別設(shè)置為 horizontal_move 和vertical_move。編輯 Dial 時(shí),點(diǎn)擊 Label/Value Pairs… :水平移動(dòng)控件添加 11 個(gè)項(xiàng)目,標(biāo)簽設(shè)置為 010,對(duì)應(yīng)值是 250~250,遞增值是 50,并把默認(rèn)標(biāo)簽設(shè)置為 5(0);垂直控件同樣添加 11 個(gè)項(xiàng)目,標(biāo)簽設(shè)置也是 010,只是對(duì)應(yīng)值是 ~,遞增值是 ,默認(rèn)標(biāo)簽也設(shè)置為 5(0)。這里的 50 和 就是在程序執(zhí)行時(shí)旋轉(zhuǎn)一格旋鈕時(shí)移動(dòng)的大小,是根據(jù)程序的要求設(shè)置的。 獲 取 當(dāng) 前 旋 鈕 位 置當(dāng) 前 位 置 在標(biāo) 準(zhǔn) 位 置 右 側(cè)波 形 右 移波 形 左 移將 當(dāng) 前 位 置作 為 標(biāo) 準(zhǔn) 位 置真假 圖 移動(dòng)波形流程圖 在編制程序時(shí),要設(shè)定一個(gè)臨時(shí)值 tmp,用于獲取當(dāng)前控件的 Value 大小,使用GetCtrlVal()語(yǔ)句;然后將這個(gè)值與 cur_horizon_move_index(確切地說(shuō)是上一次旋鈕停在的位置值大小,初始值是 5)進(jìn)行比較:如果 tmpcur_horizon_move_index,則說(shuō)明旋鈕向右旋轉(zhuǎn)調(diào)節(jié)了,表示將圖像向右移動(dòng)(或者向上移動(dòng))為了實(shí)現(xiàn)這個(gè)功能,將坐標(biāo)的值最中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 13 頁(yè) 共 38 頁(yè) 大值和最小值都減小,利用 cur_x_min=STEP_X 來(lái)實(shí)現(xiàn),通過(guò) SetAxisRange()語(yǔ)句實(shí)現(xiàn);同樣,如果 tmpcur_horizon_move_index,則說(shuō)明旋鈕向左旋轉(zhuǎn)調(diào)節(jié)了,表示將圖像向左移動(dòng)(或者向下移動(dòng)),實(shí)現(xiàn)的方法類似。值得注意的是,判斷時(shí) cur_x_min 和 cur_x_max這兩個(gè) 坐標(biāo) 當(dāng)前 最小 值和 最大 值也 一定 要隨 時(shí)修 改, 判斷 完后 一定 要修改cur_horizon_move_index 的值,將它設(shè)置為 tmp, 如圖 。 只有這樣才能保證移動(dòng)的正確性,這樣就可以實(shí)現(xiàn)水平和垂直移動(dòng),如圖 ,。 圖 原始波形 圖 水平移動(dòng)后的波形 中北大學(xué) 2021 屆畢業(yè)設(shè)計(jì)說(shuō)明書 第 14 頁(yè) 共 38 頁(yè) 圖 垂直移動(dòng)后的波形 2)水平縮放和垂直縮放 在實(shí)際應(yīng)用中, 將圖形放大和縮小 狠關(guān)鍵 的。很多情況下,用戶會(huì)將波形 放大或者縮?。涸陲@示屏上波形比較密的情況下,需要看清波形是否存在失真,這時(shí)候需要將波形放大;或者顯示屏上顯示的波形不夠一個(gè)周期,需要看清到底是什么樣子的波形,這時(shí)需要將現(xiàn)有的波形進(jìn)行縮小。通過(guò)以上類似的處理, 能夠獲取更多的數(shù)據(jù)信息 和 規(guī)律, 能夠從整體和局部?jī)蓚€(gè)方面來(lái)分析現(xiàn)有的信號(hào), 這對(duì)于信號(hào)處理有著非常重要的意義,從而 更快更好地完成工作。 0 a a / 2 3 a / 2a / 2a
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1