怎样用matlab画出语音信号的时域波形和频谱图和画出加噪声-3db的白噪声后的波形、频谱,滤波

作者&投稿:鱼祁 (若有异议请与网页底部的电邮联系)
如何用MATLAB产生高斯白噪声,并且画出图形?~

matlab 程序的文件代码是以.m文件的形式呈现的。将matlab代码编写进.m文件内然后运行即可。

例子:
建立一个 helloworld.m

文件内包括内容如下:

fprintf('Hello World!');

使用快捷键F5直接运行,然后可以在控制台下看到打印的:
Hello World!

给原始的语音信号加上一个高频余弦噪声,频率为3.8kHz。画出加噪后的语音信号时域和频谱图,与原始信号对比,可以很明显的看出区别。要加入白噪声只需把余弦噪声换成白噪声,用randn函数产生高斯分布序列。我的源程序如下:
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('幅度');
运行结果如下:

预计用到的函数有:
wavread();读入wav格式的语音信号
fft()快速傅里叶变换
plot()绘制二维图形
randn() 高斯白噪声
示例:
x=wavread('file.wav');%读取波形文件获得数据
x=x(1:1024);%取前1024点作为处理使用数据
fx=fft(x);
figure(1);
subplot(211);
plot(x);
subplot(212)
plot(abs(fx));
snr=.3;
x1=x+snr*randn(1,1024);%添加高斯白噪声
fx1=fft(x1);
figure(2);
subplot(211);
plot(x1)
subplot(212);
plot(abs(fx1))


如何用Matlab画函数的图像
2、然后在Matlab软件中的命令行窗口中输入以下代码:x=-0.5:0.001:1;x0=0;y=stepfun(x,x0);plot(x,y)axis([-0.40.9-0.11.1])3、这里解释下这两个函数:plot(x,y)%绘制XY轴图 axis([-0.40.9-0.11.1])%前两个参数为X轴的显示范围,后两个参数为Y轴的显示范围。4、输入...

matlab怎么画线?
1、matlab中画线使用plot(a,b,c,d,e)函数,其中参数a是x坐标的范围,可以的数字也可以是一个函数表达式。参数b表示y坐标的范围,可以是数字也可以是函数表达式。参数c表示线的颜色,参数d表示线的类型,参数e表示线的粗细。参数a和b是必须有的,c,d,e参数可以不写,不写就使用默认值。画线x=...

如何用matlab软件画球面方程
1、双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。2、通过语句[u,v,w]=sphere(56); 获得绘制球体的三维坐标。3、使用语句:subplot(2,2,1);plot3(u,v,w);title('plot3()');将图片分成四份,在第一行第一列使用plot3()绘制球体,并使用函数title()添加标题。4、使用语句...

怎么用matlab绘制一个简单的图模型
matlab 的绘图命令 (你还可以在网页多找一下,matlab论坛等都可以学习的)1.plot(y)功能: 画一条或多条折线图。其中y是数值向量或数值矩阵。说明:当y是数值向量时,plot(y)在坐标系中顺序的用直线段连接顶点(i,y(i))画出一条折线图;当y是数值矩阵时,Matlab为矩阵的每一列画出一条折线,...

使用matlab编程,怎样画出心形线和马鞍面?
程序代码和图形如下:\\x0d\\x0a%1心形线\\x0d\\x0aclc;clear;close all;\\x0d\\x0ai=-pi:0.1:pi;\\x0d\\x0ax=2.*(sin(i)-sin(2*i).\/2);\\x0d\\x0ay=2.*(cos(i)-cos(i).^2);\\x0d\\x0afigure(1);\\x0d\\x0aplot(x,y);grid on;box on;\\x0d\\x0aaxis([-3 3 ...

如何用matlab画出函数曲线
1、用matlabc打开命令行窗口,直接输入相关的内容。2、下一步如果没问题,就根据实际情况来设置图示的代码。3、这个时候通过确定操作以后,需要填写注释的信息。4、这样一来会得到对应的效果图,即可画出函数曲线了。

matlab画图如何输入上下标
首先打开matlab,可以通过快捷方式打开。然后接着画一个图像,这里以sinx为例子进行画图。然后找到insert选项。然后插入一个文本框,对于插入也可以插入其他的,例如箭头等等。然后移动鼠标,在图片上画一个方框。这样就可以输入文字了。然后输入文字:F_1或者F_{1,2}注意如果是多个下标就用大括号括起来。

用matlab如何画函数的图像?
步骤如下 1、打开MATLAB软件,如图所示。2、建立一个脚本文件,具体方法如图所示。3、定义变量。4、建立循环,求解分段函数。5、采用以下指令画图。6、画出的图片如图所示。

怎么利用matlab作图?
给你举个例子吧,在很多情况下需要在同一个图象中绘制多条曲线。在MATLAB 中要这样做也是相当容 易。我们用在同一个图象中显示两个函数来开始这一节。让我们把0≤t≤5 范围内下面的两 个函数绘制在同一个图象中。f(t) = e-t g(t) = e-2t 我们把g 函数用虚线绘出以便这两条曲线。跟随...

如何用matlab画网格图?
绘制网格图:mesh(X,Y,Z);1、三维曲面或网线图的数据准备:要绘制函数z=f(x,y)所代表的三维空间曲面,需要做以下准备:(1) 确定自变量x,y的取值范围和间隔,x=x1:dx:x2,y=y1:dy:y2;(2)构成xoy面上的自变量格点矩阵,[X,Y]=meshgrid(x,y);(3)获得自变量在格点上的函数值,即Z=f...

滦南县19419392457: 如何用matlab实现语音信号处理与分析?程序不要太繁 -
高咏淑润: 先说第一段 k 是从WAV文件读取出来的一段语音信号,其实就是一个h点的行向量,h是k的长度.设置了一个门限值th=0.035.对向量k,从头开始每个点依次与门限值比较,第一个幅度大于0.035的点记为语音起点i,从尾开始每个点依次与门限值比较,第一个幅度大于0.035的点记为语音终点j.将k的语音部分新命名为new,把原始语音和找到的纯语音分别在两个坐标中画出.总的来说,这段程序用很简便的方法将一段包含静音的语音信号中的纯语音提取出来,但这种方法有很大的局限性,只能作为理论学习,基本上没有实际应用价值

滦南县19419392457: matlab怎么用fft画语音信号频谱图 -
高咏淑润: matlab如何采集语音 [x,Fs,bits] = wavread('filename.wav') ; Fs 存的是采样率,单位Hz,bits 是数据的位数. matlab如何画FFT频谱 clf; fs=100;N=128; %采样频率和数据点数 n=0:N-1;t=n/fs; %时间序列 x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信...

滦南县19419392457: 跪求用matlab分别录制一段男声、女声信号,进行音频信号的读取与播放,画出其波形 -
高咏淑润: fileName='E:\Matlab语音分析\降噪后.wav';%注:将需要读取的文件名赋值给fileName[y fs nbits]=wavread(fileName);%读取该文件 加入matlab中进行分析 sound(y,fs);%播放该文件 plot(y);%画出波形图如果要用matlab录制音频的话 用以下函数wavrecord进行录制 然后用 wavwrite保存到电脑中 wavwrite(y,Fs,'E:\Matlab语音分析\Record1.wav'); %FS自己定义 比如8000QQ:344731766

滦南县19419392457: 如何用MATLAB画出声音信号的相频和幅频图像 -
高咏淑润: 调用bode函数就可以得到 例如: >> s=tf('s'); >> G=(s+8)/(s*(s^2+0.2*s+4)*(s+1)*(s+3)); >> bode(G) 就可以得到这两个图

滦南县19419392457: matlab语音信号的采集与处理 -
高咏淑润: 这是我刚做的双线性变换法低通滤波器,运行是正确的!ly是语音信号的名字,别的自己改改就行! 原语音信号程序 figure(1); [y,fs,nbits]=wavread ('ly'); sound(y,fs,nbits); %回放语音信号 n = length (y) ; %求出语音信号的长度 Y=fft(y,n); %傅里...

滦南县19419392457: 用Matlab实现语音信号的快放,慢放功能的函数怎么写,求大神帮忙? -
高咏淑润: 设y表示音频数据,采样率为fs sound(y,A*fs); A>1时为快放,反之为慢放

滦南县19419392457: 基于matlab的语音信号分析与处理 -
高咏淑润: 使用help wavread 就有MATLAB自带的一个例子的~ wavread 函数就能读入西要的 .wav 的语音信号的采样率 和比特率了

滦南县19419392457: 求matlab高手,处理声音信号. -
高咏淑润: 首先你可以编写一个M文件来将采集到的语音信号送到matlab,然后进行频谱分析时你可以用filter或者remez等进行滤波抽样,之后绘图plot,绘图时加freqz,最后将原始的与抽样后的都绘出来比较,即可看到区别.

滦南县19419392457: 如何在matlab中录入一段语音信号 -
高咏淑润: 是实时采集还是用现成的音频?好像实时采集的话有个analog input 或者simulink里有麦克风 要是有现成音频的话直接wavread就行了 我一般用wavread 格式是[x,fs]=wavread('wenjianming'); x是读入的音频数据 fs是音频采样频率 文件名就是文件名了要wav格式的 MP3需要额外程序 网上有下的

滦南县19419392457: 怎么把语音信号导入matlab中, -
高咏淑润: 按照你给命令式可以实现的.你的问题有可能是出在路径上,不知道你的matlab版本支不支持读取中文路径,把wav文件放在一个纯英文路径下试试吧,祝你好早日解决.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网