1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab语音停止程序 MATLAB语音信号处理程序

matlab语音停止程序 MATLAB语音信号处理程序

时间:2018-11-02 10:35:15

相关推荐

matlab语音停止程序 MATLAB语音信号处理程序

我们的第一个小项目,要求:

1.给出实验程序和仿真结果,并完成设计报告。

2.用计算机录制一段语音信号作为原始信号,采样频率fs=22.05kHz,数据位数N=16Bit,存入MATLAB工作空间,显示原始信号波形和频谱,并播放声音

3.给原始信号叠加噪声,频率为6kHz,显示波形和频谱,并播放声音

4.设计IIR滤波器消除噪声,显示波形和频谱,并播放声音

5.窗函数法设计FIR滤波器消除噪声,显示波形和频谱,并播放声音

6.课程第8周交设计报告

clc;

clear;

fs=22050,bits=1024;

[y,fs,bits]=wavread('E:\dwje.wav'); %y:语音数据;fs:采样频率;bits:采样点数

% sound(y,fs,bits); %话音回放

figure(1); %建立

subplot(2,1,1); %对图形窗口进行分割

plot(y);

xlabel('time n');ylabel('amplitude');title('原始信号波形');

y1=fft(y,1024); %fft就是把时域上的曲线变成频域上的曲线,所以fft变换后横坐标是频率

fx=fs*(0:511)/1024; %将横轴变为频率轴//此处出错

fy=abs(y1(1:512)); %将纵轴变为频率幅度轴

subplot(2,1,2);

plot(fx,fy);

xlabel('频率Hz');ylabel('幅度');title('原始信号频谱');

t=(0:length(y)-1)/fs;

d=[0.05*cos(2*pi*6000*t)]';

Y=y+d;

% sound(Y,fs,bits);

figure(2);

subplot(2,1,1);

plot(Y);

xlabel('time n');ylabel('amplitude');title('叠噪信号时域波形');

y2=fft(Y,1024); %将横轴变为频率轴

fy=abs(y2(1:512)); %将纵轴变为频率幅度轴

subplot(2,1,2);

plot(fx,fy);

xlabel('频率Hz');ylabel('幅度');title('叠噪信号频谱');

Ts=1/fs;

Wp=2*pi*5000/fs;Ws=2*pi*5500/fs;Rp=0.1;Rs=40; %通带最大衰减(db),阻带最大衰减(db)

Wp1=2/Ts*tan(Wp/2);Ws1=2/Ts*tan(Ws/2); %将模拟指标转换成数字指标

[N,Wn]=buttord(Wp1,Ws1,Rp,Rs,'s'); %选择滤波器的最小阶数(估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc)

[Z,P,K]=buttap(N); %创建Butterworth低通滤波器原型

[Bap,Aap]=zp2tf(Z,P,K); %将零极点增益转换为普遍分子,分母

[b,a]=lp2lp(Bap,Aap,Wn); %将普遍的分子和分母转换为以Wn为截止频率

[bz,az]=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的

[H,W]=freqz(bz,az); %求频率响应

figure(3);

plot(W*fs/(2*pi),abs(H)); %绘制Butterworth低通滤波器频率响应曲线

grid;

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