matlab 产生回声,回声信号的产生与消除

第十组讨论报告 回声信号

设计人员【张峻凯、董晓民、严子轩@电子科技大学自动化工程学院】

问题描述:

语音信号频率分量分离的设计与仿真

回声信号可建模为 y[n]=x[n]+αx[n-N],其中 x[n]是未被污损的语音信号, N为回声延迟值, α<1为回声衰减系数。

(1)采用matlab中的audiorecorder命令录制一段3秒的语音信号,并将录制的语音信号转换为音频数据,显示其时域和频域特征;

(2)根据回声的模型,选择合适的延迟值和衰减系数,合成回声信号,显示其时域和频域特征,并进行播放

(3)利用相关性,判断回声的参数值

designed by Liu Ke @school of automation of UESTC

解决方案:

(1)

首先使用 matlab中的audiorecorder命令录制3秒的语音信号,

ysound = audiorecorder;

%recorder = audiorecorder 创建 8000 Hz、8 位、1 通道的 audiorecorder 对象。

disp('开始录制');

recordblocking(ysound,3); %录音3秒钟

disp('结束录制');

将录制的语音信号转化为音频数据,并显示频域时域特征

ysound_1 = getaudiodata(ysound); %获取录音数据

plot(ysound_1); %做录音数据的时域图形

title('原始语音信号时域');

xlabel('采样点 n');

ylabel('幅度 n');

y1 = fft(ysound_1); %做ysound_1的FFT

%y1 = fftshift(y1); 频率分量将会移到坐标中心

subplot(2,2,2);

plot(abs(y1)); %使用abs函数画出原始语音信号的频谱图

title('原始语音信号的频谱幅度');

xlabel('采样点 n');

ylabel('幅度 n');

subplot(2,2,3);

plot(angle(y1)); %使用angle函数画出原始语音信号的频谱相位

title('原始语音信号的频谱相位');

xlabel('采样点 n');

ylabel('幅度 n');

grid on;

5b6bd6059e11?utm_campaign=maleskine

输入信号的时频图像

(2)

由题意可知回声模型如下所示

y[n]=x[n]+αx[n-N]

因为后面会用到噪声信号,因此我们首先将源信号增益并时移得到噪声hsound之后将两个函数叠加得到y[n]。

选取α为0.5,N为2000,由于采样率为8000Hz,2000对应着延迟0.2

  • 9
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值