色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 提高開發(fā)效率和質(zhì)量?用SPICE仿真音效

          提高開發(fā)效率和質(zhì)量?用SPICE仿真音效

          作者:EEPW編譯 時間:2014-10-27 來源:電子產(chǎn)品世界 收藏

            我在網(wǎng)上查找原理圖時想到,如果能在出圖前先用通用模擬電路仿真器()進行模擬檢驗,可能會提高開發(fā)效率和質(zhì)量。但由于任何電子模擬器都無法讀取并輸出音頻文件,所以我用模塊編寫程序,實現(xiàn)讀取波形文件并且輸出一段時間--電壓點的序列。的文件源裝置能夠讀取這一大串點序列,并輸出和音頻信號相匹配的電壓波形,之后作為效果電路的輸入。

          本文引用地址:http://cafeforensic.com/article/264466.htm

            為了能聽到輸出音頻,還需另外一個程序?qū)⑤敵龈欈D(zhuǎn)換成波形文件,這里我還是借助于這個模塊來實現(xiàn)。

            

          過載效果器250

            過載效果器250是最簡單的之一,以吉他效果而廣為人知。原理圖如圖所示。工作原理很簡單,首先需要一個交流耦合電容和偏置電路,因為供電采用單向電壓。

            運算放大器被用作非反相放大器放大微弱的輸入信號。R5電位計控制增益。輸出位置有另外一個交流耦合電容器和兩個削波信號二極管。信號幅值越大,二極管的削波和畸變就越明顯。

            測試音頻信號是一段純凈的吉他聲響,來源于用戶Khoon命名的freesound.org組織,沒有專利許可費用,從根本上說這個屬于公用的。

            首先是經(jīng)過500千歐R5電阻輸出較為緩和的畸變??紤]到運算放大器的放大效應(yīng),輸入幅值的選擇尤為重要。這段錄音中輸入幅值為10 毫伏。從波形上我們發(fā)現(xiàn),削波作用相當明顯,因此在播放前需要檢查輸出音量。

            如下圖所示,逐漸減小R5的阻值會提高增益和畸變:

            音頻編輯器顯示的失真的頻譜效應(yīng):

          原始純凈吉他聲信號頻譜


          刺耳畸變信號頻譜


            以上分別是原始純凈吉他聲信號和刺耳畸變信號的頻譜,區(qū)別不是很明顯。一些低頻信號被交流耦合電容器過濾,由于畸變新增了高頻信號。能量增加超出了整個帶寬,但這只是到wav格式聲音文件轉(zhuǎn)換過程中的過渡表象。為了避免削波,這里選擇最大信號增益來獲取最大樣本值,從而改變信號音量。

            實際電路與之相比略有不同,不過這種模擬本身仍然很能說明問題。

            在所需時間上,仿真與實際存在差別。在44100赫茲的采樣頻率下,大約需要5秒來仿真1秒的音頻文件。如需要長時間的仿真并記錄數(shù)據(jù),可以使用聲明記錄下輸出波形。

            模糊效應(yīng)

          模糊電路


            第二部分為模糊電路,除了運算放大器部分被分立晶體管所取代外,其余與之前的失真電路非常相似。

            輸入電壓幅值對這部分電路的輸出影響也很明顯。

            下面是1毫伏輸入幅值下的仿真結(jié)果:

            10毫伏輸入幅值仿真結(jié)果為:

            由于相似的二極管削波結(jié)構(gòu),其仿真結(jié)果與畸變電路相差不大。

            二極管削波器

            二極管削波器的波形比預想的要平滑得多。當然這也取決于信號電壓和二極管參數(shù)。

          用一對1N4148進行削波之后的1V 400Hz信號仿真


          二極管削波之后的正弦波頻譜


            但即便如此,這個相對平滑的削波信號也包含許多高頻諧波。

            源碼

            源碼參見這里:

            README

            SPICE audio tools

            This repository has two programs for importing wav file to SPICE and

            exporting the output as a wav file.

            1. wavtospice.py

            - This tool converts a wav file with a list of values, which can be read

            using ngspices file source. If wav file has multiple channels only the values

            of the first channel are returned.

            - Usage: python wavtospice.py

            - must have been compiled with xspice support. File source can be used

            like follows:

            a1 %v([in]) filesrc

            .model filesrc filesource (file="values" amploffset=[0] amplscale=[1]

            + timeoffset=0 timescale=1

            + timerelative=false amplstep=false)

            See ngspice manual for possible options.

            2. spicetowav.py

            - This tool converts ngspice output to wav file. Compatibility with other

            simulators is untested.

            - Simulation must be setup to print the output values.

            Run the ngspice in batch mode using the command line flag -b and direct

            output to a file.

            - Usage: python spicetowav.py [clipping voltage].

            Clipping voltage is optional and if it's unspecified wav is written

            with maximum amplitude such that clipping doesn't occur.

            # Example

            Following commands can be used to get output from lowpass filter example file

            when run on Linux:

            $ python wavtospice.py file.wav inputvalues

            $ ngspice -b examples/lowpass.cir > spice_output

            $ python spicetowav.py spice_output output.wav


          模擬信號相關(guān)文章:什么是模擬信號




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉