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的業務過程模型管理方法研究
主站蜘蛛池模板: 亚洲成人精品久久| 免费人成网站在线观看欧美| 欧美精品一区在线看| 青草视频在线观看国产| 怡红院美国分院一区二区| 色视频国产| 久久久久国产精品嫩草影院| 欧美69视频在线| 国产美女在线观看| 超碰91免费人妻| 国产精品任我爽爆在线播放6080| 精品久久高清| 欧美激情二区三区| av一区二区人妻无码| 国产女人在线| 99ri国产在线| 国产精品自在拍首页视频8| 国产成人精品高清不卡在线| 中文字幕永久视频| 国产精品毛片一区视频播| 亚洲成人动漫在线| 日韩A级毛片一区二区三区| 日本成人不卡视频| 影音先锋亚洲无码| 亚洲天堂色色人体| 日韩免费中文字幕| 亚洲精品国产精品乱码不卞| 亚洲欧美另类专区| 精品自窥自偷在线看| 在线亚洲小视频| 国产伦精品一区二区三区视频优播 | 在线观看91精品国产剧情免费| 国产人成乱码视频免费观看| 真实国产精品vr专区| 第一页亚洲| 免费国产无遮挡又黄又爽| 亚洲精品大秀视频| 免费在线a视频| 亚洲人成影院在线观看| 国产亚洲精品资源在线26u| 国产1区2区在线观看| 国产精品自在拍首页视频8| 福利片91| 国产一区二区丝袜高跟鞋| 国产欧美日韩精品第二区| 999在线免费视频| 久久特级毛片| 久热99这里只有精品视频6| 99这里只有精品6| 成人福利在线视频| 日韩欧美中文字幕在线精品| 一本大道东京热无码av| 伊人久久大香线蕉成人综合网| 亚洲人成成无码网WWW| 亚洲天堂网在线播放| 日本三级欧美三级| 久久免费成人| 无码AV动漫| 996免费视频国产在线播放| 成人欧美在线观看| 国产日韩欧美一区二区三区在线| 一区二区三区国产精品视频| 亚洲高清在线天堂精品| 免费无遮挡AV| 老司国产精品视频| 尤物精品视频一区二区三区| 国产婬乱a一级毛片多女| 免费在线色| 亚洲成aⅴ人在线观看| 高清免费毛片| 成人第一页| 激情成人综合网| 国产精品漂亮美女在线观看| 亚洲二区视频| 99精品欧美一区| 青草视频网站在线观看| 在线看片免费人成视久网下载| 粗大猛烈进出高潮视频无码| 久爱午夜精品免费视频| 99久久精品国产麻豆婷婷| 欧美成人区| 国产精品自在在线午夜|