999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的實時語音處理系統設計

2014-04-29 11:35:27肖娟張志強
電子世界 2014年15期
關鍵詞:存儲

肖娟 張志強

【摘要】設計一個基于STM32的實時語音處理系統。硬件模塊通過放大、除雜完成將語音信號轉換成處理器能夠進行高效處理的有效數字信號,軟件部分主要涉及到TIM配合ADC采樣數據并通過DMA傳輸,SRAM存儲語音信號通過FSMC與STM32連通,按鍵控制輸出選擇模式,DAC經過DMA將信號傳輸。

【關鍵詞】實時語音;STM32;數字信號;存儲

引言

聲音信號在人類的社會生活中普遍存在,隨著科學技術的不斷發展,語音處理系統在人們的生活中應用越來越廣泛,處理方法也越來越多樣化。

設計一個基于STM32F103ZET6的實時語音處理系統。硬件模塊通過放大、除雜完成將語音信號轉換成處理器能夠進行高效處理的有效數字信號,軟件部分主要涉及到TIM配合ADC采樣數據并通過DMA傳輸,SRAM存儲語音信號通過FSMC與STM32連通,按鍵控制輸出選擇模式,DAC經過DMA將信號傳輸。

1.系統方案設計

本系統分為三大模塊:信號采集、信號處理、信號輸出。信號采集模塊包括聲電轉換、信號濾波與放大模塊;信號處理模塊包括模數轉換、信號存儲、按鍵控制模塊;信號輸出模塊包括數模轉換、功率放大模塊。系統設計框圖如圖1所示。

圖1 系統總體設計框圖

2.硬件設計

本語音處理系統的硬件模塊包括:語音輸入模塊、音頻放大模塊、濾波模塊和功率放大模塊。

2.1 語音輸入模塊

駐極體的輸出線有兩根:一般用藍色塑線表示源級S,用紅色塑料線和連接金屬外殼的屏蔽線表示漏極D。語音輸入電路圖如圖2所示。

圖2 語音輸入電路圖 ? ? ? ? ? ? 圖3 音頻放大電路圖

2.2 音頻放大模塊

本設計的音頻放大模塊選用LM386。 音頻放大的電路原理圖如圖3所示,本設計中由于駐極體出來的電壓是毫伏級別,單片機處理的最高電壓是3.3V,可通過電位器來調節從駐極體輸入過來的電壓值,放大倍數大致設為約為38倍,計算方法如:

2.3 除雜濾波模塊

本設計采集的聲音頻率范圍是200Hz到3000Hz,采用低通濾波和高通濾波電路來濾除雜波信號,為了更好的濾掉3KHz以外的高頻保留3KHz以內的低頻信號,采用二階有源低通濾波電路。為使信號在低頻段以更快速率下降,采用一階有源高通濾波電路,濾波電路如圖4所示。

圖4 濾波模塊電路圖 ? ? ? ? ?圖5 抬壓電路圖

2.4 抬壓電路

聲音信號經過放大濾波后變為純凈的信號送至控制芯片進行A/D轉換,但是開發板只能接受正的電壓信號,負電壓信號會對開發板造成不可逆的影響,同時為了使聲音實現不失真的儲存,需將聲音信號中的幅信號抬高至零參考電壓以上才送入處理器處理,電路原理圖如圖5所示。

3.軟件設計

軟件設計部分包括以下幾個模塊:信號的采集與轉換、語音信號的存儲、按鍵對存儲語音的控制。其中信號的采集是指控制器將經過放大濾波后的模擬信號轉換成數字信號;語音信號的存儲是指將通過端口采集到的語音數字信號存儲到SRAM中,需要播放的時候輸出播放;涉及到CPU的內部資源的存儲、ADC、TIMER、DMA、FSMC等模塊。

3.1 初始化設置

STM32上電復位結束后,首先要進行系統的初始化。

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1|

RCC_AHBPeriph_DMA2|RCC_AHBPeriph_FSMC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF|

RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|

|RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOC,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6|RCC_APB1Periph_DAC|RCC_APB1Periph_TIM3|RCC_APB2Periph_AFIO,ENABLE);

}

3.2 A/D軟件設計

為了頻段獲得優良的音頻輸出,A/D的采樣頻率設置為40KHz,使用定時器進行配合輸出,當計數時間到了產生中斷,從而讓ADC采集一次數據。主要程序如下:

void ADC_Config(void)

{

RCC_ADCCLKConfig(RCC_PCLK2_Div6);

ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;

ADC_InitStructure.ADC_ScanConvMode=ENABLE;

//打開掃描模式

.......

ADC_Cmd(ADC1, ENABLE);//開啟ADC1

ADC_ResetCalibration(ADC1);

while(ADC_GetResetCalibrationStatus(ADC1)); //等待重新校準完成

ADC_StartCalibration(ADC1);//開始校準

while(ADC_GetCalibrationStatus(ADC1));//等待校準完成

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

}

3.3 定時器軟件設計

定時器控制準確的時間來產生中斷控制DMA將ADC采集到的數據進行相應的處理。本設計選用的是通用定時器TIM3,它是16位的計數器可向上、向下、向上/向下自動裝載。具有16位可編程預分頻器,分頻系數為1~65536之間任意數值。當計數器向上或向下溢出時就會產生DMA請求。

void TIM3_Configuration(void)

{

TIM_TimeBaseStructure.TIM_Period = 900;//自動重裝載的值

TIM_TimeBaseStructure.TIM_Prescaler=0; ? ? ? ?//預分頻系數

TIM_TimeBaseStructure.TIM_ClockDivision= 0x0;//不設置時鐘分割

TIM_TimeBaseStructure.TIM_CounterMode= TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

TIM_Cmd(TIM3,ENABLE);//定時使能

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); ?//定時中斷使能

}

3.4 DAC軟件設計

DAC轉換可以由某外部事件觸發,本設計選擇TIM6的TRGO事件。每次DAC接口偵測到來自選中的定時器TRGO輸出,則最近存放在數據寄存器DAC_DHRx中的數據就會被傳送到數據輸出寄存器DAC_DORx中。

void DAC_Config(void)

{

TIM_PrescalerConfig(TIM6, 0x0, TIM_PSCReloadMode_Update);//預分頻值為1

TIM_SetAutoreload(TIM6,900);//自動重裝載值900

TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update);

//使用更新時間觸發

DAC_InitStructure.DAC_Trigger= DAC_Trigger_T6_TRGO;

//DAC觸發方式為T6觸發

DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None;

DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;//不使用輸出緩存

DAC_Init(DAC_Channel_1, &DAC_InitStructure);//初始化DAC

}

3.5 FSMC模塊設計

FSMC(Flexible Static Memory Controller,可變靜態存儲控制器)是STM32系列采用的一種新型的存儲器擴展技術。在外部存儲器擴展方面具有獨特的優勢,根據系統的應用需要,通過設置相應的時序,數據位數等,可以很方便地與存儲器傳輸。具體程序代碼略。

3.6 按鍵控制設計

本設計中使用SW1、SW2、SW3三個按鍵進行控制。按下SW1時開始將語音信號存儲至SRAM中;按下SW2時播放存儲在SRAM中的語音信號;按下SW3時進行實時語音播放。程序有幾個分支需要進行判斷。第一種情況是從存儲器讀出標志位未置1,此時只進行實時語音播放。第二種情況按下存儲按鍵時,語音依然播放,并且通過函數FSMC_SRAM_WriteBuffer(Escalator8bit,write_read_addr++,1);進行存儲。第三種情況按下播放按鍵時通過函數FSMC_SRAM_ReadBuffer(Escalator8bit, write_read_addr++,1);將存儲在SRAM中的數據讀出。第四種情況存儲超過范圍時將不再進行存儲。第五種情況播放超出范圍時繼續重首地址播放。

具體程序代碼略。

4.結語

設計一個基于STM32F103ZET6的實時語音處理系統,該系統不僅能夠達到對語音信號的采集與不失真的輸出,同時還可以對語音信號進行一定量的存儲。結果表明,達到了預期的設計要求,并用于實際項目中。

參考文獻

[1]易克初等.語音信號處理[M].北京:國防工業出版社,2000.

[2]蔡蓮紅等.現代語音技術基礎與應用[M].北京:清華大學出版社,2003.

[3]齊子元等.一種實時語音信號采集處理系統的設計與實現[J].計算機工程與應用,2005,9:105-107.

[4]吳明暉等.基于ARM的嵌入式系統開發與應用[M].北京:人民郵電出版社,2004.

[5]譚浩強等.C語言程序設計[M].北京:清華大學出版社,2000.

[6]Brian W.Kernighan.The C Programming Language[M].北京:機械工業出版社,2004.

[7]Andrew Koenig.Expert C Programming[M].北京:人民郵電出版社,2008.

作者簡介:

肖娟(1975—),女,湖南常寧人,碩士,講師,現供職于武漢輕工大學金銀湖校區電氣與電子工程學院,主要研究方向:信息傳輸與處理。

張志強(1992—),男,湖北黃石人,大學本科,現就讀于武漢輕工大學金銀湖校區電氣與電子工程學院,主要研究方向:電氣工程及其自動化。

猜你喜歡
存儲
檔案管理中電子文件的存儲探究
條形碼技術在涂裝生產中的應用
云計算與虛擬化
結構化電子病歷的設計及應用
淺敘國產存儲技術之發展
某醫院數據中心虛擬化的設計與實現
煙臺新型自動氣象站數據本地存儲的設計及實現
關于SQL語言及存儲過程
大型機電設備出口包裝防護
基于Hadoop的業務過程模型管理方法研究
主站蜘蛛池模板: 久久亚洲精少妇毛片午夜无码 | 久热这里只有精品6| 国产无码网站在线观看| 国产黑丝一区| 欧美日韩成人| 五月天久久婷婷| 欧美一级色视频| 亚洲国产系列| 久久成人免费| 国产97色在线| 日韩av手机在线| 99久久国产综合精品女同| 欧美精品影院| 亚洲无码精品在线播放| 伊人久久精品无码麻豆精品| 99在线观看国产| 色偷偷男人的天堂亚洲av| 一级毛片在线免费视频| 国产另类视频| 国产一级做美女做受视频| 91久久精品日日躁夜夜躁欧美| 欧美色视频在线| 亚洲一区国色天香| 国产精品久久国产精麻豆99网站| 亚洲精品视频免费看| 免费播放毛片| 亚洲国产综合精品中文第一| 成人在线天堂| 中国国产A一级毛片| 午夜无码一区二区三区| 亚洲无码精彩视频在线观看| 91丝袜乱伦| 狠狠色狠狠综合久久| 久久中文字幕不卡一二区| 在线观看亚洲精品福利片| 一区二区三区在线不卡免费| 国产精品亚洲va在线观看| 美女视频黄又黄又免费高清| 最新加勒比隔壁人妻| 免费不卡视频| 免费国产好深啊好涨好硬视频| 黄色不卡视频| 婷五月综合| 狠狠综合久久久久综| 青青青国产视频手机| 国产乱人乱偷精品视频a人人澡| 99热这里只有精品国产99| 伊人丁香五月天久久综合| 毛片久久网站小视频| 999国内精品久久免费视频| 毛片免费视频| 91偷拍一区| 久一在线视频| 国产精品视频导航| www.亚洲一区| 2021精品国产自在现线看| 国产手机在线小视频免费观看| 91麻豆国产视频| 国产亚洲视频免费播放| 免费jjzz在在线播放国产| 丁香五月婷婷激情基地| 久久不卡精品| 日韩在线欧美在线| 亚洲天堂首页| 日韩国产一区二区三区无码| 57pao国产成视频免费播放| 国产美女精品一区二区| 一级全黄毛片| 久久精品日日躁夜夜躁欧美| 91久久国产热精品免费| 香蕉eeww99国产在线观看| 人人妻人人澡人人爽欧美一区| 欧美成人a∨视频免费观看 | 在线欧美a| 四虎成人精品| 亚洲日韩久久综合中文字幕| 91亚洲精选| 又粗又硬又大又爽免费视频播放| 国产精品99r8在线观看| av大片在线无码免费| 亚洲九九视频| 精品欧美视频|