1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Matlab混响器——无限个回声混响器

Matlab混响器——无限个回声混响器

时间:2024-06-25 17:55:25

相关推荐

Matlab混响器——无限个回声混响器

文章目录

一、设计步骤二、完整代码最后

一、设计步骤

无限个回声滤波器的系统函数:

H(z)=1+a×z(-R), |a|<1

设计步骤:

(1)选择录制一段语音信号作为分析对象。

(2)对选择的语音进行频谱分析。

(3)在时域用数字信号处理方法对信号加入无限回声混响,再分析其频谱。

(4)并与原始信号进行对比。

二、完整代码

plot函数代码如下:

clearclc[x,fs]=audioread('2.wav');x=x(:,1);t=(0:length(x)-1)/fs;%变换得到播放时间h=waitbar(0,'正在播放原始语音,请勿关闭!'); sound(x,fs);pause(max(t))waitbar(1,h,'播放结束');delete(h); xf=abs(fftshift(fft(x)));figure(1)subplot(211)plot(t,x)title('原始语音信号')subplot(212)plot(xf);title('原始语音信号频谱')z1=[zeros(10000,1);x]; %对信号进行延时10000个采样点Z1=abs(fftshift(fft(z1)));x1=[x;zeros(10000,1)]; %使语音信号与延时后信号同等长度y1=x1+z1; %信号的混响a=0.05; %a取小于等于1Bz=[0,0,0,0,0,0,0,0,0,0,1]; %分子的系数Az=[1,0,0,0,0,0,0,0,0,0,-a]; %分母的系数yy1=filter(Bz,Az,y1); %滤波器进行滤波YY1=abs(fftshift(fft(yy1))); %经无限回声滤波器后的信号做FFT变换t1=(0:length(yy1)-1)/fs;%变换得到播放时间h=waitbar(0,'正在播放混响语音,请勿关闭!'); sound(yy1,fs);pause(max(t1))waitbar(1,h,'播放结束');delete( h);figure(2); subplot(2,1,1);plot(yy1); title('无限个回声滤波器时域图'); %无限回声滤波器时域波形subplot(2,1,2);plot(YY1); title('无限个回声滤波器频谱图 '); %无限回声滤波器频谱图

最后

不定期发布一些matlab设计内容,敬请期待。包括但不限于如下内容:信号处理、通信仿真、gui设计、matlab appdesigner,simulink仿真。有任何有关MATLAB的问题可加个人QQ:280708

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。