默仔哗槐认44.1KHz,16bit,双声道
还可以采样后自己在MATLAB程序里面再次采样
例如现在的声音片段:myvoice.wav
clear
[y,f,b]=wavread('myvoice.wav')
l=length(y)%采样点数
t=l/f%采样时间
%现在y:l*2双声道芦樱,f=44.1e3,b=16
%需要20e3Hz的采道样频率,得到新数据y2
f2=20e3
l2=t*f2
B=l/l2
for
i=1:l2
y2(i,:)=y(round(i*B),:)%重念友新采样
end
subplot(211)
plot(y)
subplot(212)
plot(y2)
wavwrite(y2,20e3,'new.wav')
1、理想采样信号序列(1)首先产生信号x(n),0<=n<=50
n=0:50%定义序列的长度是50
A=444.128%设置信号有关的参数
a=50*sqrt(2.0)*pi
T=0.001%采样率
w0=50*sqrt(2.0)*pi%ω符号在MatLab 中不能输入,用w 代替
x=A*exp(-a*n*T).*sin(w0*n*T)%pi 是MATLAB 定义的π,信号乘可采用“.*”
close all %清除已经绘制的x(n)图形
subplot(3,1,1)stem(x)%绘制x(n)的图形
title(‘理想采样信号序列’)%设置结果图形的标题
(2)绘制信号x(n)的幅度谱和相位谱
k=-25:25
W=(pi/12.5)*k
X=x*(exp(-j*pi/12.5)).^(n’*k)
magX=abs(X)%绘制x(n)的幅度谱
subplot(3,1,2)stem(magX)title(‘理想采样信号序列的幅度谱’)
angX=angle(X)%绘制x(n)的相位谱
subplot(3,1,3)stem(angX) title (‘理想采样信号序列的相位谱’)
(3)改变参数为: 1, 0.4, 2.0734, 1 0 A = α = Ω = T =
n=0:50%定义序列的长度是50
A=1a=0.4w0=2.0734T=1%设置信号有关顷搜的参数和采样率T
x=A*exp(-a*n*T).*sin(w0*n*T)%pi 是MATLAB 定义的π,信号乘可采用“.*”
close all %清除已经绘制的x(n)图形
subplot(3,1,1)stem(x)%绘制x(n)的图形
title(‘理想采样信号序列’)
k=-25:25
W=(pi/12.5)*k
X=x*(exp(-j*pi/12.5)).^(n’*k)
magX=abs(X)%绘制x(n)的幅度谱
subplot(3,1,2)stem(magX)title(‘理想采样信号序列的幅度谱’)
angX=angle(X)%绘制x(n)的相位谱
subplot(3,1,3)stem(angX) title (‘理想采样信号序列的相位谱’)
2、单位脉冲序列
在 MatLab 中,这一函数可以用zeros 函数实现:
n=1:50%定义序列的长度是50
x=zeros(1,50)%注意:MATLAB 中数组下标从1 开始
x(1)=1close all
subplot(3,1,1)stem(x)title(‘单位冲击信号序列’)
k=-25:25
X=x*(exp(-j*pi/12.5)).^(n’*k)
magX=abs(X)%绘制x(n)的幅度谱
subplot(3,1,2)stem(magX)title(‘单位冲击信号的幅度谱’)
angX=angle(X)%绘制x(n)的相位谱
subplot(3,1,3)stem(angX) title (‘单位冲击信号的相位谱’)
3、矩形序列
n=1:50x=sign(sign(10-n)+1)
close allsubplot(3,1,1)stem(x)title(‘单位冲击信号序列’)
k=-25:25X=x*(exp(-j*pi/25)).^(n’*k)
magX=abs(X)%绘制x(n)的幅度谱
subplot(3,1,2)stem(magX)title(‘单位冲击信号的幅度谱’)
angX=angle(X)%绘薯乎隐制x(n)的相位谱
subplot(3,1,3)stem(angX) title (‘单位冲击信号的相位谱’)
4、特定冲击串
x(n) =δ (n) + 2.5δ (n ?1) + 2.5δ (n ? 2) +δ (n ? 3)
n=1:50%定义序列的长度是50
x=zeros(1,50)%注意:MATLAB 中数组下标从1 开始
x(1)=1x(2)=2.5x(3)=2.5x(4)=1
close allsubplot(3,1,1)stem(x)title(‘单位冲击信号序列数厅’)
R = audiorecorder( 44100, 16 ,2 ) ;%创建一个保存音频信息的对象,它包含带旁如采样率,时间和录制的音频信息等等。44100表示采样为44100Hz(可改为8000, 11025, 22050等,此数值越大,录入的声音质量越好,相应需要的存储空间越大),16为用16bits存储,2为两通道即立体声(也可以改为1即单声道)。
record(R)
%开始录制,此时对着麦克风说话即可。
pause(R)
%暂蠢启停录制。
play(R)
%播放录制的声音。
resume(R)
%继续录制.
stop(R)
%停止录制
myspeech = getaudiodata(R)
%得到以n*2列数字矩阵存储的刚录制的音频信号。
%对这个矩阵你就可以用各种滤波器进行处理,或者把它和别的音频混音等等。你也可以画出它的波形(如果时间较长画波形可能会花点时间)启辩。
plot(myspeech)
%画出波形
%如果你想保存可以使用
wavwrite(myspeech,44100,16,'myspeech');
%myspeech表示要存入的波形矩阵,44100表采样率,16 为以16bits存储,'myspeech'为存储的文件名。
%matlab有极其丰富的音频处理滤波功,此处介绍最基本的录入、播放和保存 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)