MATLAB代做  | MATLAB代写  | MATLAB有偿编程
首 页
当前位置:MATLAB代做|MATLAB代写|MATLAB有偿编程matlab源码信号处理
基于matlab的语音信号处理        [↓跳到下载地址]
官方主页:源码共享网站:www.buycode.cn

联系方式:客服QQ:1747812398 买代码源码软件站,欢迎咨询

运行环境:Win9X/2000/XP/2003/

源码语言:简体中文

源码类型:源码程序 - 信号处理

推荐星级:

更新时间:2012-11-21 22:49:28

源码简介

程序1:用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱

fs=8000; %语音信号采样频率为8000

x1=wavread('pb8k.wav');

t=(0:length(x1)-1)/8000;

y1=fft(x1,2048); %对信号做2048点FFT变换

f=fs*(0:1023)/2048;

figure(1)

plot(t,x1) %做原始语音信号的时域图形

grid on;axis tight;

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

xlabel('time(s)');

ylabel('幅度');

figure(2)

plot(f,abs(y1(1:1024))) %做原始语音信号的FFT频谱图

grid on;axis tight;

title('原始语音信号FFT频谱')

xlabel('Hz');

ylabel('幅度');

**************************************************************************************************************************

程序2:给原始的语音信号加上一个高频余弦噪声,频率为3.8kHz。画出加噪后的语音信号时域和频谱

图,与原始信号对比,可以很明显的看出区别。

clear all;

clc;

fs=8000;

x1=wavread('pb8k.wav');

t=(0:length(x1)-1)/8000;

f=fs*(0:1023)/2048;

Au=0.05;

d=[Au*cos(2*pi*3800*t)]'; %噪声为3.8kHz的余弦信号

x2=x1+d;

y1=fft(x1,2048);

y2=fft(x2,2048);

figure(1)

plot(t,x2)

grid on;axis tight;

title('加噪后的信号');

xlabel('time(s)');

ylabel('幅度');

figure(2)

subplot(2,1,1);

plot(f,abs(y1(1:1024)));grid on;axis tight;

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

xlabel('Hz');ylabel('幅度');

subplot(2,1,2);

plot(f,abs(y2(1:1024)));grid on;axis tight;

title('加噪语音信号频谱');

xlabel('Hz');ylabel('幅度');

**********************************************************************************************************************

程序3:双线性变换法设计Butterworth滤波器

clear all;

clc;

fs=8000;

x1=wavread('pb8k.wav');

t=(0:length(x1)-1)/8000;

f=fs*(0:1023)/2048;

A1=0.05;A2=0.10;

d=[A1*cos(2*pi*3800*t)+A2*sin(2*pi*3600*t)]';

x2=x1+d;

wp=0.8*pi;

ws=0.85*pi;

Rp=1;

Rs=15;

Fs=8000;

Ts=1/Fs;

wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标

ws1=2/Ts*tan(ws/2);

[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数

[Z,P,K]=buttap(N); %创建butterworth模拟滤波器

[Bap,Aap]=zp2tf(Z,P,K);

[b,a]=lp2lp(Bap,Aap,Wn);

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

[H,W]=freqz(bz,az); %绘制频率响应曲线

figure(1)

plot(W*Fs/(2*pi),abs(H))

grid on;axis tight;

xlabel('频率(Hz)')

ylabel('频率响应')

title('Butterworth')

f1=filter(bz,az,x2);

figure(2)

subplot(2,1,1)

plot(t,x2) %画出滤波前的时域图

grid on;axis tight;

title('滤波前的时域波形');

subplot(2,1,2)

plot(t,f1); %画出滤波后的时域图

grid on;axis tight;

title('滤波后的时域波形');

y3=fft(f1,2048);

figure(3)

y2=fft(x2,2048);

subplot(2,1,1);

plot(f,abs(y2(1:1024))); %画出滤波前的频谱图

grid on;axis tight;

title('滤波前的频谱')

xlabel('Hz');

ylabel('幅度');

subplot(2,1,2)

plot(f,abs(y3(1:1024))); %画出滤波后的频谱图

grid on;axis tight;

title('滤波后的频谱')

xlabel('Hz');

ylabel('幅度');

% sound(x2,8000);

% sound(f1,8000);

********************************************************************************************************************

程序4:窗函数法设计滤波器:

clear all;

clc;

fs=8000;

x1=wavread('pb8k.wav');

t=(0:length(x1)-1)/8000;

f=fs*(0:2047)/4096;

A1=0.05;A2=0.10;

d=[A1*cos(2*pi*3600*t)+A2*sin(2*pi*3800*t)]';

x2=x1+d;

wp=0.8*pi;

ws=0.85*pi;

wdelta=ws-wp;

N=ceil(6.6*pi/wdelta); %取整

wn=(0.8+0.85)*pi/2;

[bz,az]=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率

figure(1)

freqz(bz,az);

grid on;axis tight;

f2=filter(bz,az,x2);

figure(2)

subplot(2,1,1)

plot(t,x2);

grid on;axis tight;

title('滤波前的时域波形');

subplot(2,1,2)

plot(t,f2);

grid on;axis tight;

title('滤波后的时域波形');

y3=fft(f2,4096);

f=fs*(0:2047)/4096;

figure(3)

y2=fft(x2,4096);

subplot(2,1,1);

plot(f,abs(y2(1:2048)));

grid on;axis tight;

title('滤波前的频谱')

xlabel('Hz');

ylabel('幅度');

subplot(2,1,2)

plot(f,abs(y3(1:2048)));

grid on;axis tight;

title('滤波后的频谱')

xlabel('Hz');

ylabel('幅度');

% sound(f2,8000);

***********************************************************************************************************************

程序5

clear all;close all;

t=0:0.01:3;

s=sin(2*pi*5*t)+sin(2*pi*15*t);

w=abs(fft(s));

w2=abs(fft(s,602));

figure;

subplot(211);plot(w);grid on; axis tight;

subplot(212);plot(w2);grid on; axis tight;

*****************************************************************************************************************************

程序6

clear all;close all;

X=[ones(1,51) zeros(1,60) ones(1,50)]; % Frequency response of an ideal low-pass filter

x=ifft(X); % IDFT of X with the same number of points

Y=fft(x,483); % IDFT of X after it is padded with zeros

stem([1:161]/161-0.5,abs(fftshift(X))); % figure 1

axis([-0.5,0.5,0,1.5]);

figure;

stem(real(x)); % figure 2

figure;

stem([1:483]/483-0.5,abs(fftshift(Y))); % figure 3

axis([-0.5,0.5,0,1.5]);

figure;

stem([1:161]/161-0.5,abs(fftshift(Y(1:3:481)))); % figure 4

axis([-0.5,0.5,0,1.5]);

**********************************************************************************************************************

程序7

clear all;

clc

wp=0.8*pi;

ws=0.85*pi;

wdelta=ws-wp;

N=ceil(6.6*pi/wdelta);

wn=(0.8+0.85)*pi/2;

[bz,az]=fir1(N,wn/pi,hamming(N+1));

w=abs(fft(bz));w2=abs(fft(bz,399));

figure;

subplot(211);plot(w);grid on; axis tight;

subplot(212);plot(w2);grid on; axis tight;

-------------------------------------------------

h(1:201)=1;h(22:181)=0;

x1=ones(1,17); x2=ones(1,11);

w1=fft(x1,32); w2=fft(x2,32);

w3=w1.*w2; x3=ifft(w3); plot(x3);


提 示:本站所有源码只提供浏览,需要定制的朋友可以联系在线客服!
注意:价格根据项目的难易程度来定价格业务咨询

基于matlab的语音信号处理 --下载地址

注意:为避免不必要的误会,本站项目里的源码只公开部分需要的联系在线客服

本站长期招聘程序代写高手,欢迎加入华南地区matlab团队

想创业却没有经验的人

无论你是否有过网上开店的经验,都可以随时联系在线客服,建立自己独立的网站
想开网店却不知道如何入手

淘宝创业成本低而且风险小,如果想开淘宝店的朋友可以联系在线客服。
想兼职创业,却不擅长交际与服务的人

在家创业月入5000元。网站程序+百套群发工具+网赚资料+域名+空间+本站终身代理资格,这样你网赚的条件全具备了。每天3小时管理、推广、收钱。
缺乏能快速赢利型产品的人

导入多种最新流行营销软件+网赚教程,让入驻者轻松加盟、复制有效成交技巧、快速赚钱。

源码评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

浏览说明

* 本站所有源码全部公开,随时随地浏览!
* MATLAB软件如用于商业用途,请购买正版!
* 如果您发现下载链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含破解及注册码均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们!
Copyright © 2008-2014 www.buycode.cn. All Rights Reserved.
页面执行时间:187.50000 毫秒