任意波形頻域變換器設計(上)——方案討論

任意波形頻域變換器設計(上)——方案討論


本設計是多年前作者本科時的課程設計,限於當年水平有限,也許有一些bug。分享出來供大家借鑑交流

實驗目的及意義

多媒體技術的發展,使計算機與音響設備有機地結合起來,通過計算機實現對聲音信息的處理與控制。現在CDROM、聲卡已成爲計算機的基本配置。人們在緊張的工作之餘,可以欣賞音樂,把工作和娛樂融爲一體。衆所周知,聲調因人而異,人們在唱歌時,總希望伴奏音樂的音調適合自己的嗓音。在一些卡拉OK機中就有相應的變調裝置,通過專門的硬件來完成這一功能。本設計通過分析聲音文件的結構,利用軟件的方法實現變頻與變調,彌補聲音卡在這方面的功能,以滿足人們的需要。在本設計中我們利用STM32對音頻數據進行數字化處理,在硬件電路的配合下,在軟件上實現信號的頻域變換。方案實現了100mv-5Vpp之間的任意波形變換,輸出信號頻率爲輸入值的0.1-5倍可調,在此基礎上變調部分採用類正弦波微元法實現語音信號的升降調,並使用依據拉格朗日中值定理的插值算法,擬合波形曲線,進行頻域擴壓,實現在不改變節奏的情況下,對聲音做變調處理,而不是簡單地頻域壓縮,提高頻率的情況下加快了歌曲的節奏,沒有使用價值。

實驗環境

  • 主芯片型號:STM32 103F
  • 軟件開發平臺:STM32F103野火開發板
  • 軟件開發工具:KEIL
  • 硬件電路仿真平臺:multisim12.0
  • 硬件開發平臺:altium designer14.0.9.0
  • 基準電壓芯片:REF5050 實現精準分壓基準
  • 放大、音頻濾波、加法器芯片:THS4032雙路 100MHz 低噪聲電壓反饋放大器

詳細設計

方案討論

功能一:
實時音頻信號變調:

在這裏插入圖片描述
圖1 實時變調系統實現系統框圖

  • 實時變調系統系統框圖如上圖所示硬件方面通過先隔離再放大,濾波後再擡升,最後衰減的方法實現信號的前級處理,使信號能夠通過單片機進行採集並輸出相應頻率波形,使輸入信號峯峯值等於輸出信號的峯峯值。此外還能補償信號中所欠缺的頻率分量,使音質得到改善,從而提高放音系統的放音效果,由於單片機能採集到的在放大輸出端口連接射隨電路以增加電路的帶載能力。
  • 時域變調算法需要對語音數據進行插值拼接。以一個保持語音信號聽覺特徵的最小單位——“音元”爲基礎劃分單位,對語音數據進行分段,並將分段後的信號保存在儲存媒介中,同時DAC從儲存媒介中進行重採樣,根據重採樣速度對數據分段進行增加與刪除,從而達到變調的目的。變調部分採用類正弦波微元法實現語音信號的升降調,並使用依據拉格朗日中值定理的插值算法,擬合波形曲線,進行頻域擴壓,實現在不改變節奏的情況下,實現聲音的變調處理。
  • 在變頻部分,MCU通過觸發ADC對輸入信號進行採樣,通過觸控鍵盤輸入當前信號頻率,計算出需要採點的個數。採集完畢後,通過DAC反覆輸出這段信號,通過改變DAC的輸出觸發時間間隔來改變頻率,實現變頻與波形的完美擬合。變頻的大小通過一個觸控滑塊來設置,從0.1-5倍共50個檔位。
  • 在變調部分,ADC以44.1K採樣率對輸入語音信號進行採樣,並實時將信號保存到SD卡中,同時DAC對SD卡中數據進行輸出,改變DAC輸出速度就改變了音調,通過滑塊設置好變調幅度,計算出處理參數,從而對數據做一個增加或者刪除,來保持播放時長。增加與刪除的幅度需要嚴格控制。
    功能二:
    非實時音頻信號變調(SD卡讀取文件):

在這裏插入圖片描述
圖二:非實時變調系統(SD卡讀取文件)實現系統框圖

  • 非實時變調系統實現框圖如上。實現SD卡讀取聲音的變調,通過對所放音頻帶內放大器的頻率響應曲線的形狀進行控制,從而達到控制放音音色的目的,以適應不同聽衆對音色的不同愛好。此外還能補償信號中所欠缺的頻率分量,使音質得到改善,從而提高放音系統的放音效果。
    時域變調算法需要對語音數據進行插值拼接。以一個保持語音信號聽覺特徵的最小單位——“音元”爲基礎劃分單位,對語音數據進行分段,並將分段後的信號保存在儲存媒介中,同時DAC從儲存媒介中進行重採樣,根據重採樣速度對數據分段進行增加與刪除,從而達到變調的目的。採用類正弦波微元法實現語音信號的升降調,並使用依據拉格朗日中值定理的插值算法,擬合波形曲線,進行頻域擴壓,實現在不改變節奏的情況下,實現聲音的變調處理。
  • 時域算法的優點是變調效果好,具有較高信噪比,容易進行實時語音處理。缺點是在大範圍的變調中效果較差。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章