音频信号处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DIN DOUT
J6 J7 J8
3.AIC23的工作方式
I2C 设置AIC23
SCL SDA TMS320VC5509 CLKR0 CLKX0 FSX0 FSR0 DX0 DR0 DIN DOUT SCLK SDIN MODE CS TLV320AIC23 BCLK LRCOUT J5 GND
c=1; g=0.5; M=1000; b=[c]; a=[1,zeros(1,M-1),-g]; [x,fs]=wavread('S5A.wav'); y=filter(b,a,x); wavplay(y,fs)
DSP系统的实现
C 语言编程 迭代算法 数据缓冲区
DSP系统的实现
实时数据
AIC23_Mixer() 声音信号处理子程序
while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY)); // 等待McBSP0准备好
数据=Read(pMCBSP0->ddr1);// 读取左声道的数据 数据=Read(pMCBSP0->ddr2);//读取右声道的数据
DSP系统的实现
.gel文件
menuitem "Echo Parameters" slider Length(1,5,1,1,amplitudeparameter) /*incr by 1,up to 20*/ {length = amplitudeparameter; /*vary buffer size*/} dialog SetEcho(nParam1"1 Feedforward;2 Backforward;3 no):") {flag=nParam1;}
g=1 缓冲数据的编程方法
buf[0] buf[1]
一:固定缓冲 数据总是从上面第一个压入, 最下面取出。数据顺序下移, 需要逐一进行赋值。
xh=input; for(i=bufferlength-1;i>0;i--) { buffer[i]=buffer[i-1]; }
buffer[0]=xh;
延时数据
在两条谱线上分别点击鼠标一次。
镜像 频率
2. 滤波器设计
x(n) 系统输入
filter
y(n) 系统输出
离散线性时不变系统可以用差分 方程表示:
a y (n k ) b x (n k )
k 0 k k 0 k
N
M
ak, bk 是常系数。
设计滤波器就是
设计出合适的b,a向量。
buf[N-1]
output=xh+buffer[bufferlength-1];
DSP系统的实现
缓冲数据的编程方法
实时数据 实时数据Fra bibliotekbuf[0] buf[1]
二:循环缓冲 数据从上向下循序压入, 压入最下面数据后,再重 复前面的过程,周而复始。 数据先取后压
数据取出的过程和压入过 程相同。
实时数据
plot(f,abs(H))
grid on
clear
[in,fs]=wavread('fff_10_32.wav');
X=fft(in)/fs;
df=fs/length(X);
cf=(0:length(X)-1)*df; plot(cf',abs(X))
[N,Wn,beta,typ] = kaiserord( [2200 2700], [1 0], [0.01 0.1], fs );
Write(pMCBSP0->dxr1,数据);// 送左声道数据到McBSP0 Write(pMCBSP0->dxr2,数据);//送右声道数据到McBSP0
数据:int类型 16位数字信号
数字滤波器设计
信号频谱分析
FIR滤波器设计(凯泽窗)---matlab
FIR滤波器设计(凯泽窗)---DSP实现
I2S通信协议物理连接
TLV320AIC23寄存器
实际地址左移一位
J7
输出可接耳机或音箱 禁止
使能
J5 输入麦克风或电脑声 音输出
4.程序解读 主程序audio.c
void main() { SDRAM_init(); EnableAPLL(); PLL_Init(40); AIC23_Init(); for(;;) { AIC23_Mixer(); } }
b = fir1(n, Wn, typ, kaiser(n+1,beta), 'noscale');
fs=8000; [n,Wn,beta,typ] = kaiserord([1500 2000], [1 0], [0.01 0.1], fs ); b = fir1(n, Wn, typ, kaiser(n+1,beta), 'noscale'); [H,f]=freqz(b,1,512,fs);
一般性回声/混响系统
作业
1. 分析信号频谱proj.wav,并设计低通滤波器,对 信号过滤,记录听到的英文。(Matlab)
2. C编程“一般性回声/混响系统” BL=0.8 FF =0.9 FB=0.8 M=4
输入信号 为单位阶跃信号,计算前30个信号的输出 程序、频谱分析图、计算结果打印,贴在作业 本上。
Feedforward comb filter
系统差分方程
Backforward comb filter (Schroeder 1962)
系统差分方程
通常 c 取 1
数字系统可由差分方程的b,a参数决定
a y (n k ) b x (n k )
k 0 k k 0 k
N
M
b = fir1(N, Wn, typ, kaiser(N+1,beta), 'noscale'); out=filter(b,1,in); wavplay(out,fs)
N=36
数字回声分析
数字回声原理
Feedforward comb filter
Backforward comb filter
FIR 数字低通滤波器—窗函数设计法 凯泽窗
y(n) bk x(n k )
k 0 M
a向量为1,设计出合适的b向量
FIR 数字低通滤波器—窗函数设计法 凯泽窗
[n,Wn,beta,typ] = kaiserord( [f1 f2], [1 0], [0.01 0.1], fs );
6. 数字回声实现 通用微机系统
DSP芯片
FPGA
通用微机系统的实现
a y (n k ) b x (n k )
k 0 k k 0 k
N
M
matlab
b=[1,zeros(1,M-1),g]; a=[1]; b=[c]; a=[1,zeros(1,M-1),-g];
J6 J7 J8
McBSP0传输语音数据
3.AIC23的工作方式 AIC23初始化:
DSP芯片通过I2C总线配置AIC23 AIC23为slave mode
语音数据传输
AIC23接口DSP芯片McBSP0 AIC23为master mode McBSP0为slave mode I2S通信协议
音频信号处理
宁波工程学院电信学院 谭飚
1.TLV320AIC23芯片简介 语音编解码芯片 内部ADC和DAC转换模块 数据16位,20位,24位和32位 采样频率 8khz—96khz。 ADC 48khz时SNR 90-dB DAC 48khz是SNR100dB
TLV320AIC23封装
2.TLV320AIC23与DSP连接
立体声输出
TLV320AIC23
耳机输出
语 音 codec 时钟输入
立体声输入
麦克风输入
TMS320VC5509与TLV320AIC23的连接示意图
SCL SDA TMS320VC5509 CLKR0 CLKX0 FSX0 FSR0 DX0 DR0
SCLK SDIN MODE CS TLV320AIC23 BCLK LRCOUT J5 GND
matlab
通用微机系统的实现
声音信号输入 x(n) MATLAB Implementation
H(z)
y(n) x(n) h(n)
y(n)
Matlab 内置函数filter求系统的输出 y = filer(b,a,x) x:输入信号 y:输出信号
通用微机系统的实现
MATLAB Implementation
1. 信号频谱分析 [y,fs]=wavread('sin.wav'); Y=fft(y)/fs; df=fs/length(Y); cf=(0:length(Y)-1)*df; plot(cf',abs(Y)) [x0,y0]=ginput(2); y:信号 fs:采样频率
[x0,y0]=ginput(2);
buf[N-1]
缓冲数据只需赋值一次,耗时少
DSP系统的实现
i=0; while(1)
i=0; while(1)
{
xh=input; output=xh+0.5*buffer[i]; buffer[i]=xh; i++;i%=bufferlength; }
{
xh=input; output=xh+0.5*buffer[i];b uffer[i]=output; i++;i%=bufferlength; }
相关文档
最新文档