新聞中心

        EEPW首頁 > 設計應用 > LTspice音頻W AV文件:使用立體聲和加密語音消息

        LTspice音頻W AV文件:使用立體聲和加密語音消息

        作者:Simon Bramble 時間:2020-03-03 來源:電子產品世界 收藏

        Simon?Bramble? (ADI公司?高級現場應用工程師)

        本文引用地址:http://www.104case.com/article/202003/410480.htm

        摘? 要:詳細介紹如何使用WAV文件生成不太為人所知的語法(以及更高的通道計數)。 關鍵詞:

        0  引言 

        能否通過WAV文件利用數據和 語音消息?答案是假如音樂是愛情的糧食,那么 就仿真吧。 本非常見問題解釋如何使用LTspice?音頻WAV文 件生成立體聲語法(以及更高的通道計數)。 

        LTspice可用于生成WAV文件作為電路仿真的輸 出,也可用于導入WAV文件來激勵電路仿真。大量文 檔記載單聲道WAV文件可用作LTspice中的輸入,而 LTspice可用于生成WAV輸出。本文詳細說明如何使用 LTspice音頻WAV文件生成不太為人所知的立體聲語法 (以及更高的通道計數)。 

        LTspice擁有許多超級功能,但它處理音頻文件的 能力是令人印象較深刻的功能之一。雖然在計算機屏 幕上看到逼真的電路令人著迷,但是創建一個可以在 LTspice之外播放的聲音文件則能夠讓工程師以另一種 感測方式來評估仿真。使用單聲道LTspice音頻WAV 文件的相關文檔非常完備。本文對立體聲(或更多通 道)展開討論,并說明如何從LTspice音頻WAV文件導 出立體聲數據,以及如何將立體聲數據導入LTspice音 頻WAV文件。它還闡述了WAV文件的一些使用技巧和訣竅,使讀者能夠進一步利用WAV文件。 

        1  生成立體聲WAV文件 

        首先,從單聲道信號生成立體聲波形文件。圖1 顯示的電路生成1 V、1 kHz正弦波,并將其分成2個 通道,從而在2個通道之間交替傳輸信號——在CH1和 CH2之間以2 s間隔切換1 kHz信號音(如圖1)。

        微信截圖_20200306102624.png

        命令.wave “C:export.wav” 16 44.1k V(CH1) V(CH2)以16位分辨率對每個通道進行數字化處理, 以44.1 kSPS速率進行采樣,并將生成的音頻數據存 儲在C:export.wav中。在上述命令中,在采樣速率之 后列出的每個信號在WAV文件中都生成自己的通道數 據。LTspice可在單個LTspice音頻WAV文件中存儲多達65 535個通道——只需根據需要將信號附加到上述命 令即可。 

        默認情況下,LTspice的.wave命令將列出的第1個 通道數據另存為左音頻通道,將列出的第2個通道數 據另存為右音頻通道。在這種情況下,當通過媒體 播放器播放export.wav時,無論電路節點命令規則如 何,CH1都將被讀取為左通道,CH2將被讀取為右通道。請注意,默認情況下,CH1和CH2在.wav文件中 分別存儲為通道0和通道1,這對于讀取下面討論的文件至關重要。 

        導出的這個立體聲音頻文件可用于激勵圖2所示 的另一個電路,該電路使用export.wav中的兩個通道,作為信號輸入。

        微信截圖_20200306102842.png

        電壓源V1和V2照常放置,然后按住CTRL鍵并右 鍵單擊每個電壓源,顯示元件屬性編輯器(如圖3所 示),來分配export.wav中的電壓信號。

        微信截圖_20200306102914.png

        圖3 export.wav中的立體聲信號用作圖2電路的輸入。這是V1的分配,值設置為從export.wav中拉出通道0 

        如前所述,首次生成LTspice音頻WAV文件時, 多達65 535個通道可數字化為1個WAV文件——只需 在.wave命令的末尾附加任意多個通道即可。記住, 默認情況下,LTspice將第1個通道命名為通道0,將下 一個通道命名為通道1,以此類推。在這種情況下, 由圖1仿真生成的export.wav將電壓V(CH1)存儲為通道 0,將V(CH2)存儲為通道1。要使用電壓源播放這些通 道,請在該電壓源的值行中指定.wav文件和通道。這 種情況下: 

        ● 要指示V1回放圖1的V(CH1):wavefile=“C: export.wav” chan=0 

        ● 要指示V2回放圖1的V(CH2):wavefile=“C: export.wav” chan=1

        2  音頻分離 

        理論上,通過媒體播放器播放export.wav應在完 全通過左揚聲器(或耳機)播放1 kHz信號音2 s和通 過右揚聲器播放2 s之間切換。盡管如此,仍然無法保 證立體聲完全分離,這取決于播放過程中使用的媒體 播放器的質量。 

        通過筆記本電腦播放export.wav顯示,在示波 器上測量時約30%的左通道出現在右通道上,如圖4 所示。

        微信截圖_20200306102938.png

        在(2000年時代)手機上播放相同的文件會得到 一個更加分離的結果,顯示沒有可感知的串擾,但是 在最大音量下會有輕微的失真,如圖5所示。

        微信截圖_20200306103012.png

        在后來2018年時代的手機上重復這個實驗,結果 顯示沒有可感知的串擾,但有1個完整的1 V峰值信號 和很小的失真,如圖6所示。請注意,所繪示波器曲 線圖的靈敏度為500 mV/div。

        微信截圖_20200306103029.png

        在所有3個平臺上使用相同的文件,結果顯示 LTspice可以生成能夠完全分離的WAV文件,但最終的 回放在很大程度上取決于播放器音頻級的質量。

        3  語音 

        圖7中的電路顯示了語音加密的基本方法,即使用隨機數序列加密音頻信號,然后解密。

        微信截圖_20200306103050.png

        文件voice.wav包含原始音頻。Excel電子表格用 于生成變化周期為100 μs的隨機數序列。結果復制到 名為random.txt的文本文件中。random.txt的摘錄如圖8 所示。

        微信截圖_20200306103110.png

        該文件用于使用LTspice中的分段線性(PWL)電壓 源生成隨機變化的電壓V(RAND)。 

        使用行為電壓源B1將V(RAND)添加到語音信 號中。然后將輸出乘以V(RAND),并將結果發送到 encrypt.wav文件。收聽encrypt.wav會發現:原始音頻 幾乎無法感知。 

        圖9顯示了LTspice圖窗口的原始語音、加密語音和解密語音信號。

        微信截圖_20200306103129.png

        然后使用第2個行為電壓源解密原始音頻信號, 并將結果發送到decrypt.wav文件。

        4  從差分電壓源生成WAV文件 

        .wave命令的語法不允許數字化差分電壓。但是, 使用行為電壓源(B1)可輕松解決此問題,如圖10 所示。 

        行為電壓源(B1)輸出電壓等于V(OUT1) – V(OUT2),這可以按常用方式在.wave命令中使用,如 圖所示。

        微信截圖_20200306103253.png

        事實上,行為電壓源函數中的變量可以包括電路 中的任何電壓或電流,并且可以使用LTspice的任何數 學函數控制這些變量。然后,可以通過正常方式將最 終結果導出到LTspice音頻WAV文件。 

        LTspice是一個功能強大的仿真器,但其仿真結 果不必包含在LTspice內。使用.wave命令,LTspice可 以導入、操作和導出音頻文件,以便在媒體播放器上 播放。

        本文來源于科技期刊《電子產品世界》2020年第03期第18頁,歡迎您寫論文時引用,并注明出處。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汽车| 历史| 内黄县| 克拉玛依市| 怀柔区| 通渭县| 林甸县| 绵阳市| 玛曲县| 内乡县| 石泉县| 青海省| 大同市| 芜湖市| 凤台县| 泰宁县| 合作市| 临沧市| 西畴县| 大厂| 德格县| 定襄县| 康马县| 咸丰县| 高淳县| 班玛县| 清新县| 吉安县| 福贡县| 常宁市| 五大连池市| 镶黄旗| 天峨县| 黎城县| 宜章县| 镇巴县| 张北县| 调兵山市| 东源县| 安宁市| 曲松县|