matlab语音信号的采集与处理
发布网友
发布时间:2022-05-10 08:41
我来回答
共2个回答
热心网友
时间:2023-11-24 18:17
这是我刚做的双线性变换法低通滤波器,运行是正确的!ly是语音信号的名字,别的自己改改就行!
原语音信号程序
figure(1);
[y,fs,nbits]=wavread ('ly');
sound(y,fs,nbits); %回放语音信号
n = length (y) ; %求出语音信号的长度
Y=fft(y,n); %傅里叶变换
subplot(2,1,1);plot(y);title('原始信号波形');
subplot(2,1,2);plot(abs(Y));title('原始信号频谱')
加噪语音信号程序
figure(2);
[y,fs,nbits]=wavread ('ly');
n = length (y) ; %求出语音信号的长度
t=[0:1/8000:2 zeros(1,23520-1)]';
noise=0.04*sin(10000*pi*t);%sin函数产生噪声
s=y+noise; %语音信号加入噪声
sound(s);
subplot(2,1,1);plot(s);title('加噪语音信号的时域波形');
S=fft(s); %傅里叶变换
subplot(2,1,2);plot(abs(S));title('加噪语音信号的频域波形')
滤波后的信号程序
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通滤波器的阶数和截止频率
[b11,a11]=butter(n11,wn11,'s'); %求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换
[y,fs,nbits]=wavread ('ly');
n = length (y) ; %求出语音信号的长度
t=[0:1/8000:2 zeros(1,23520-1)]';
noise=0.04*sin(10000*pi*t);%sin函数产生噪声
s=y+noise; %语音信号加入噪声
z11=filter(num11,den11,s);
sound(z11);
m11=fft(z11); %求滤波后的信号
figure(3);
subplot(2,1,1);plot(z11);title('滤波后的信号波形');
subplot(2,1,2);plot(abs(m11),'r');title('滤波后信号的频谱');
你的串号我已经记下,采纳后我会帮你制作
热心网友
时间:2023-11-24 18:17
我试过 很好 没有错误
你可以试试
1、在运行前 先清理一下内存 clear ;clc
2、[x,fs,Nbits] =wavread('G:\Matlab\matlab课程设计资料\Matlab滤波器程序\Windows XP 登录音') ;中的路径改为直接G盘目录下 wav文件名字只用字母(不要包含中文)
这样或许就可以了
如果还不行那就是matlab的问题了 因为我的确实可以出图像 我的matlab版本2010b
希望可以帮到你
如何将采集信号输入matlab
record(R);开始录制,此时对着麦克风说话即可。pause(R);暂停录制。play(R)播放录制的声音。resume(R);继续录制.stop(R);停止录制 myspeech = getaudiodata(R);得到以n*2列数字矩阵存储的刚录制的音频信号。对这个矩阵你就可以用各种滤波器进行处理,或者把它和别的音频混音等等。你也可以画出它的...
matlab语音信号采集与处理
plot(t,x2)title('加噪后的信号');xlabel('time n');ylabel('fuzhi n');figure(2)subplot(2,1,1);plot(f,abs(y2(1:512))); %plot(f,abs(y1(1:512))); y1在前面从未出现过,需要定义,这里为了测试把它改成了y2 title('原始语音信号频谱');xlabel('Hz');ylabel('fuzhi...
用matlab实现数据采集
matlab中对语音采集的函数是 [f,fs,bits]=wavread('voicefilename.wav'); % f为采集数据后的文件名,fs为采样频率,bits 采样数据的位数通常是8位。语音信号的后缀名要是wav 的,当然你要是下载个 voicebox工具箱下来可以处理其他格式的语音信号。plot(f);%输出采样后的波形;matlab的应用关...
matlab的音乐信号的分析与处理设计的实验咋做?
2 掌握在Windows环境下音乐信号采集的方法。 3 掌握数字信号处理的基本概念、基本理论和基本方法。 4 掌握MATLAB设计FIR和IIR数字滤波器的方法。 5 掌握使用MATLAB处理数字信号、进行频谱分析、涉及数字滤波器的编程方法。 二、内容 实验1音乐信号的音谱和频谱观察 使用windows下的录音机录制一段音乐信号或采用其它软件...
基于matlab语音信号的采集与处理
加一个按钮用作滤波就好了。你们老师这种方法就是一种平滑滤波的手段 直接放在回调函数下就行,注意将有关变量声明为全局变量
课程设计的题目:基于MATLAB的语音信号分析及滤波
这是我刚做的双线性变换法低通滤波器,运行是正确的!ly是语音信号的名字,别的自己改改就行!原语音信号程序 figure(1);[y,fs,nbits]=wavread ('ly');sound(y,fs,nbits); %回放语音信号 n = length (y) ; %求出语音信号的长度 Y=fft(y,n); %傅里叶变换 subplot(2,1,1);plo...
MATLAB中,wavplay与sound两个命令有什么区别呢?
分析和处理音频信号 首先要对声音信号进行采集 MATLAB 的数据采集工具箱提供了一整套命令和函数,通过调用这些函数和命令,可直接控制声卡进行数据采Windows 自带的录音机程序也可驱动声卡来采集语音信号 并能保存为 WAV 格式文件供 MATLAB 相关函数直接读取 写入或播放 本文以 WAV 格式音频信号作为分析处理的...
请问声发射仪PAC采集到的信号怎么用matlab处理
你先把波形图导出,就直接用export就可以。要注意它的格式。保存后打开数据文件,然后把波形保存时候的参数删除,只留数据,然后小波分析的时候倒入数据就可以了。
如何用matlab对采集的wav信号做FFT运算
对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求取Fourier变换的振幅 f=n*fs/N;subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅 xlabel('...
应用Matlab对含噪声的语音信号进行频谱分析及滤波
3、实时频谱分析仪器采用数字信号处理办法,将模拟信号变换成数字信号,边 测量边进行频谱分析,速度非常快,立即就完成OCT 1/1 倍或1/3 倍频程以至更细的1/n倍频程谱分析,甚至可以进行FFT 分析,并可以扩展为其它许多测量与分析功能。正因为它有这么多的优点,因此得到了广泛应用。嘉兴市蝶图腾电子...