[發明專利]基于逆波蘭算法的數字示波器數學運算處理方法有效
| 申請號: | 202010610481.3 | 申請日: | 2020-06-30 |
| 公開(公告)號: | CN111767004B | 公開(公告)日: | 2022-02-11 |
| 發明(設計)人: | 黃武煌;張沁川;帥維維;趙勇;葉芃;田書林;王厚軍 | 申請(專利權)人: | 電子科技大學 |
| 主分類號: | G06F3/05 | 分類號: | G06F3/05;G06F17/15 |
| 代理公司: | 北京正華智誠專利代理事務所(普通合伙) 11870 | 代理人: | 李林合;何凡 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 波蘭 算法 數字 示波器 數學 運算 處理 方法 | ||
本發明公開了一種基于逆波蘭算法的數字示波器數學運算處理方法,該方法包括輸入字符參數,生成運算表達式;對算術運算表達式進行中綴表達式向逆波蘭式轉換解析,并檢測解析過程中表達式的合法性;逐元素對逆波蘭形式表達式進行計算;將計算結果存儲至對應的數學通道的數據緩沖區內;將運算結果顯示于示波器屏幕上。本發明不僅能提供基本的運算方法,還可以使用戶根據自身測試需求構造復雜運算表達式,并完成分析計算,滿足更多的測量需求。
技術領域
本發明屬于電子測量儀器技術領域,具體涉及一種基于逆波蘭算法的數字示波器數學運算處理方法。
背景技術
近年來,隨著在信號與系統方向的深入研究,以及高速高精度數據采集與處理技術的逐漸成熟,越來越多的功能在電子測試技術及相關儀器中得以實現。在這樣的發展背景下,作為一款基礎的電子測量儀器,越來越多的領域及行業借助數字示波器完成相關測試工作,隨著應用領域的擴展,也出現了各式各樣的測試環境,使得測試執行更加困難。同時,不同領域的測試需求也不盡相同,這就要求示波器具備更加全面的波形分析功能,例如可變點數FFT、區域可選直方圖分析和追蹤圖分析等,以滿足用戶對各類波形的測試需求。
發明內容
針對現有技術中的上述不足,本發明提供了一種基于逆波蘭算法的數字示波器數學運算處理方法,對被測信號完成一系列自定義運算處理,實現對采集數據完成更復雜的處理,大大提高了示波器的數據處理能力。。
為了達到上述發明目的,本發明采用的技術方案為:
一種基于逆波蘭算法的數字示波器數學運算處理方法,包括以下步驟:
S1、輸入字符參數,生成運算表達式;
S2、對算術運算表達式進行中綴表達式向逆波蘭式轉換解析,并檢測解析過程中表達式的合法性;
S3、逐元素對逆波蘭形式表達式進行計算;
S4、將計算結果存儲至對應的數學通道的數據緩沖區內;
S5、將運算結果顯示于示波器屏幕上。
進一步地,所述步驟S1還包括:
將生成的運算表達式轉換為半角輸入以及小寫格式。
進一步地,所述步驟S1之后還包括以下分步驟:
A1、根據測量項字符串以及操作符字符串將運算表達式進行拆分處理;
A2、通過遍歷的方式,以“+-*/(),=!|~”為分割符標志,將運算表達式元素進行提取,并使用隊列方式進行存儲。
進一步地,所述步驟A2中,定義Token數據結構作為數據結構體,所述Token數據結構包括類型、單位、標識符、元素位于表達式的位置,其中類型包括操作數、運算符、函數、分隔符,設置運算表達式字符串為ListToken。
進一步地,所述步驟S2中,對算術運算表達式進行中綴表達式向逆波蘭式轉換解析具體包括以下分步驟:
B1、創建一存放操作符的數據棧,并按照優先級存放操作符;
B2、依次遍歷中綴表達式數據結構,通過檢查每個Token元素的類型標識來判斷當前元素的類型,直至遍歷完整個中綴表達式中的所有元素:
若該元素是操作數,則將該元素輸出到逆波蘭式隊列;否則進行下一判斷;
若該元素是函數,使用臨時變量保存該元素;否則進行下一判斷;
若該元素是運算符,當操作符棧為空或棧頂操作符具有更高的優先級或棧頂為左括號時,將該元素壓入棧;否則從棧中彈出一個元素輸出至逆波蘭式,并重復操作符棧判定步驟,直至將該元素壓入棧;否則進行下一判斷;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于電子科技大學,未經電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010610481.3/2.html,轉載請聲明來源鉆瓜專利網。





