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

正文內容

基于聲卡的虛擬示波器設計論文(編輯修改稿)

2025-07-20 02:52 本頁面
 

【文章內容簡介】 ,而這個放大倍數(shù)又是不確定的,它受聲卡類型、系統(tǒng)、驅動等的影響。在主函數(shù)中,調用了聲卡配置函數(shù),用于獲取聲卡的配置信息,包括采樣點數(shù)、采樣位數(shù)、回調函數(shù)等。在回調函數(shù)MyFunction()中,首先獲取通道數(shù),然后清除可能存在的曲線(如果事先進行了觸發(fā)),接下來利用switch(Resolution)進行分辨率的判斷,因為大多數(shù)聲卡的配置都是16位的,本文利用的聲卡也是如此。所以在16位的情況下,判斷聲卡的設置是不是立體聲,如果是,則進行雙聲道采集,將獲取的data—也就是離散后的點的值存到相應的數(shù)組中,再進行接下來的一系列操作。信號采集是整個系統(tǒng)設計的第一步,是實現(xiàn)虛擬示波器的基礎,只有將信號采集進來之后,才能夠進行接下來一系列的工作,比如顯示、傅立葉變換、存儲等等。 波形顯示模塊虛擬示波器界面是人機交換的唯一途徑,合理的、舒適的界面會讓用戶感覺到舒適和愉悅,非常有利于工作和學習,提高效率,所以一個良好的可視化界面對于設計者來說至關重要,這直接影響著產品的好壞,直接影響它的推廣度,而LabWindows/CVI恰恰擁有圖形化的界面,可以很方便的在面板上添加所需要的控件,而不需要為了編制圖形控件浪費大量的時間,這為設計者提供了一個很好的展示平臺。在面板上添加一個用于圖形顯示的控件,這樣就創(chuàng)建了顯示屏,雙擊它進行屬性修改:將Callback function設置為show(這是回調函數(shù)的名稱),Bottom XAxis內的最小值和最大值分別設置為0和1023(這是由于屏幕顯示的是1024個點,每次數(shù)據更新都是1024個點同時更新),Left YAxis內的最小值和最大值分別設置為1和+1(聲卡的輸入范圍是固定的,如果超過1V,可能會燒壞聲卡)。為了實現(xiàn)光標定位,還需要添加Cursors,在這個選項中,將光標的數(shù)量設置為2,并且將光標的顏色分別設置為紫色和淺綠色,并將交叉線形設置為長交叉(這樣使用起來更方便),其他的可以按照自己的喜好進行設置。在面板上添加一個用于表示控制開關的控件,單擊右鍵,將標簽改為實時顯示,并將Callback function 設置為realtime_show,默認狀態(tài)設置為on。再設置三個用于控制開始、停止和關閉的三個控件,分別將標簽設置為開始采集、停止采集、關閉,顏色大小可以按照自己習慣的方式。另外,設置兩個圓形開關控件,設置為通道1和通道2,默認狀態(tài)設置為on。然后對控件點擊右鍵,選擇Generate Control Callback,生成函數(shù)框架,然后添加函數(shù)功能。在“開始采集”控件中,一旦觸發(fā),先將觸發(fā)模式關掉,開始采集里面調用MicStart()函數(shù),My Function()開始工作,信號采集進來,利用if()語句進行判斷實時顯示按鈕是否被選中,并且保證觸發(fā)沒有工作,通過判斷通道1或2才能將其中的波形顯示到Graph上,如果兩個通道都沒有被選中,則利用Message Popup()提出警告,“請選擇通道1或通道2”;同樣,停止采集時,調用MicPause()函數(shù),My Function()停止工作。在realtime_show中,一旦程序執(zhí)行時,開始采集后點擊控件(同時實時顯示),則會顯示從聲卡讀取到的信號波形,可以在Graph上實時地觀測到。 選擇通道 實時顯示波形 頻譜分析模塊FFT(fast Fourier transform),即快速傅立葉變換,是一種DFT的高效算法,是一種線性的積分變換,屬于諧波分析,也可用于計算離散傅里葉變換的逆變換。其算法的原理是通過許多小的更加容易進行的變換去實現(xiàn)大規(guī)模的變換,降低了運算要求,提高了運算速度。快速傅里葉變換有廣泛的應用,如數(shù)字信號處理、計算大整數(shù)乘法、求解偏微分方程等等。本文中并不需要了解復雜的算法,只需要利用軟件本身設計好的函數(shù)就可以,因為軟件設計者已經將復雜難懂的算法利用程序代碼實現(xiàn)了,這里再次體現(xiàn)了LabWindows/CVI的優(yōu)越性。在面板上添加一個選擇控件,標簽設置為FFT計算,默認值設置為off,Callback function設置為fft,然后生成函數(shù)框架,在框架中添加一些語句。當控件被點擊后,先將面板的實時顯示控件、波形相加控件設置為不選中,F(xiàn)FT計算控件設置為選中,并將定義的全局變量real_time_show_mode(實時顯示)設置為0,wave_sum_mode(波形相加)設置為0,fft_calculate_mode(傅立葉計算)設置為1。不僅如此,此時還要修改顯示縱坐標,這是由于快速傅立葉變換后,幅值不是采樣點的大小值,只是代表著能量大小的包絡,這里只能說明對于相應信號進行變化后的大致情況,或者說是快速傅立葉變化后的形狀等等。為了能夠描述出變化后的形狀,使用SetAxisScalingMode()函數(shù)設置變化后的縱坐標,這里的設定可以說是完全是為MyFunction()函數(shù)服務的,信號采集進來之后,進行傅立葉變換:首先將采樣點值設置為FFT的實部,通過循環(huán)使1024個點的虛部全部設定為0,然后利用FFT函數(shù)(FFT (wave, img, NumDataPerChannel)),實現(xiàn)了傅立葉變換,再通過極坐標轉換函數(shù)ToPolar1D ()計算出FFT后的幅值大小,再利用畫圖函數(shù)PlotY()將FFT后的波形顯示在Graph上。 聲音信號的快速傅立葉變換 波形調節(jié)模塊在使用傳統(tǒng)示波器時,很少是只查看原始波形的,大多需要對采集進來的波形進行適當?shù)恼{節(jié),比如移動、放大等,這樣做的目的是能夠對信號信息更加的了解,便于進行分析和使用。因此,設計虛擬示波器時,必須要考慮到這些波形調節(jié)的問題,使得它更逼近于傳統(tǒng)示波器,甚至在部分功能上超越傳統(tǒng)示波器,是用戶擁有更佳的操作感受和更多的實用功能。本次基于聲卡的虛擬示波器設計中,波形調節(jié)模塊包括水平移動,垂直移動,水平放大縮小,垂直放大縮小,光標定位和觸發(fā)控制,其中水平移動和垂直移動作為一個模塊,水平放縮和垂直放縮作為一個模塊。這些都是用戶在使用傳統(tǒng)示波器常用的功能,對于使用者來講是必不可少的。當然也是本文內容的重要環(huán)節(jié),下面按照設計的順序逐一敘述。1)水平移動和垂直移動水平移動和垂直移動的原理是一樣的,都是通過修改坐標來實現(xiàn)的,只是設定的移動值大小不同而已。單擊右鍵,設置兩個旋鈕,分別將標簽設定為水平移動和垂直移動,相當于傳統(tǒng)示波器的水平和垂直旋鈕,并將Callback Function分別設置為horizontal_move和vertical_move。編輯Dial時,點擊Label/Value Pairs…:水平移動控件添加11個項目,標簽設置為010,對應值是250~250,遞增值是50,并把默認標簽設置為5(0);垂直控件同樣添加11個項目,標簽設置也是010,~,默認標簽也設置為5(0)。,是根據程序的要求設置的。 移動波形流程圖在編制程序時,要設定一個臨時值tmp,用于獲取當前控件的Value大小,使用GetCtrlVal()語句;然后將這個值與cur_horizon_move_index(確切地說是上一次旋鈕停在的位置值大小,初始值是5)進行比較:如果tmpcur_horizon_move_index,則說明旋鈕向右旋轉調節(jié)了,表示將圖像向右移動(或者向上移動)為了實現(xiàn)這個功能,將坐標的值最大值和最小值都減小,利用cur_x_min=STEP_X來實現(xiàn),通過SetAxisRange()語句實現(xiàn);同樣,如果tmpcur_horizon_move_index,則說明旋鈕向左旋轉調節(jié)了,表示將圖像向左移動(或者向下移動),實現(xiàn)的方法類似。值得注意的是,判斷時cur_x_min和cur_x_max這兩個坐標當前最小值和最大值也一定要隨時修改,判斷完后一定要修改cur_horizon_move_index的值,將它設置為tmp。只有這樣才能保證移動的正確性,這樣就可以實現(xiàn)水平和垂直移動,,。 原始波形 水平移動后的波形 垂直移動后的波形2)水平縮放和垂直縮放在實際應用中,將圖形放大和縮小狠關鍵的。很多情況下,用戶會將波形放大或者縮?。涸陲@示屏上波形比較密的情況下,需要看清波形是否存在失真,這時候需要將波形放大;或者顯示屏上顯示的波形不夠一個周期,需要看清到底是什么樣子的波形,這時需要將現(xiàn)有的波形進行縮小。通過以上類似的處理,能夠獲取更多的數(shù)據信息和規(guī)律,能夠從整體和局部兩個方面來分析現(xiàn)有的信號,這對于信號處理有著非常重要的意義,從而更快更好地完成工作。 坐標放大,圖像縮小原理 坐標縮小,圖像放大原理為了與移動旋鈕有所區(qū)別,重新選擇兩個跟移動不同的旋鈕,分別將標簽設定為水平縮放和垂直縮放,相當于傳統(tǒng)示波器的水平和垂直縮放旋鈕,將Callback Function分別設置為horizontal_zoom和vertical_zoom。類似地,也要在這兩個控件上添加標簽:編輯Knob時,點擊Label/Value Pairs…:水平移動控件添加11個項目,標簽設置為010,對應值是1/32~32,遞增倍數(shù)是2,并把默認標簽設置為1(0)(表示不放大的信號狀態(tài)),對于垂直控件同樣如此。雖然實現(xiàn)縮放時利用的也是修改坐標的方法,但是實現(xiàn)的方法卻要麻煩點:設定當tmpcur_horizon_scale_index時實現(xiàn)縮小,這時需要一個計算公式(tmp1和tmp2初始值分別是當前坐標的最大值和最小值,默認值是0和1023,也就是原始坐標),cur_x_min=tmp1(tmp2tmp1)/ cur_x_max=tmp2+(tmp2tmp1)/,分別得到新的坐標最小值和最大值,利用上述計算,可以實現(xiàn)如下的坐標放大,圖像縮小。通過將坐標放大實現(xiàn)圖像縮??;放大時的原理是一樣的,只是計算公式不同,設定當tmpcur_horizon_scale_index時實現(xiàn)放大,這時設定的最大和最小值分別為cur_x_min=tmp1+(tmp2tmp1)/=tmp2(tmp2tmp1)/,通過將坐標縮小實現(xiàn)圖像放大。修改值后,還是利用SetAxisRange()函數(shù)來修改坐標,同樣要修改cur_horizon_move_index的值,將它設置為tmp。水平縮放和垂直縮放的原理和計算公式是完全一樣的,只是具體執(zhí)行的控件不同,以區(qū)分他們的不同功能,,。 初始波形 水平放大 垂直放大3)光標定位光標功能對于使用者來講是非常重要的。因為人眼的誤差很大,可以說是極大地浪費了示波器的資源,而擁有光標功能就使得情況得到改善,因為它把面板上的某點信息數(shù)字
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1