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的業務過程模型管理方法研究
主站蜘蛛池模板: 91精品啪在线观看国产60岁| 狠狠做深爱婷婷综合一区| 国产swag在线观看| 91小视频在线播放| 久久黄色视频影| 亚洲天堂免费在线视频| 97se亚洲综合在线韩国专区福利| 亚洲国产精品VA在线看黑人| 成人午夜免费视频| 再看日本中文字幕在线观看| 一级福利视频| 国产电话自拍伊人| 女人一级毛片| 日韩在线影院| 亚洲av色吊丝无码| 美女高潮全身流白浆福利区| 国产成人一区免费观看| 国产乱子伦精品视频| 欧美三级日韩三级| 在线观看亚洲精品福利片| 国产精品真实对白精彩久久| 国产成人8x视频一区二区| 无码一区中文字幕| 日韩精品亚洲人旧成在线| 一级毛片基地| 无码AV高清毛片中国一级毛片| 超碰色了色| 中文无码毛片又爽又刺激| 日韩在线视频网站| 欧美性精品| 国产一区二区精品高清在线观看| 女同国产精品一区二区| 日韩最新中文字幕| 狠狠色婷婷丁香综合久久韩国| 欧美日韩第三页| 亚洲免费福利视频| 国产精品一线天| 尤物在线观看乱码| 日本人妻丰满熟妇区| 91福利在线看| 亚洲第一黄色网址| 日本高清在线看免费观看| 日韩精品专区免费无码aⅴ| 亚洲 欧美 日韩综合一区| 精品成人一区二区| 国外欧美一区另类中文字幕| 毛片最新网址| www.亚洲天堂| av一区二区三区高清久久| 高清无码一本到东京热| 亚洲人成网站观看在线观看| 国产三级a| 国产小视频免费观看| 国产精品30p| 亚洲女同欧美在线| 成人免费一区二区三区| 无码中文字幕精品推荐| 福利在线一区| 免费国产一级 片内射老| 久久一级电影| 国产国模一区二区三区四区| 免费Aⅴ片在线观看蜜芽Tⅴ| 欧美第一页在线| 91精品专区国产盗摄| 狠狠色丁婷婷综合久久| 无码网站免费观看| 久久精品嫩草研究院| 少妇精品在线| 22sihu国产精品视频影视资讯| 亚洲第一成年网| 久久国产高潮流白浆免费观看| 亚洲av成人无码网站在线观看| 国产视频大全| 99re在线免费视频| 91 九色视频丝袜| 国产h视频免费观看| 国产精品国产三级国产专业不| 欧美成人免费一区在线播放| 亚洲大尺码专区影院| 黄色在线不卡| 欧美精品黑人粗大| 91精品国产自产91精品资源|