数字信号处理课设报告基于matlab的数字音效处理器Word文档格式.docx
《数字信号处理课设报告基于matlab的数字音效处理器Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字信号处理课设报告基于matlab的数字音效处理器Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
在Matlab中,函数sound可以对声音进行回放。
其调用格式:
sound(x,fs,bits);
可以感觉滤波前后的声音有变化。
7)实现慢录快放和快录慢放功能(2分)
3提高部分要求(选择60分内容)
8)实现对声音信号放大和衰减功能(10分)
9)实现对录音内容倒播放(30分)
10)实现混音音效效果(10分)
11)实现回音音效效果(10分)
12)实现男女变声音效效果(30分)
13)设计系统界面(10分)
为了使编制的程序操作方便,要求有能力的学生,设计处理系统的用户界面。
2.2试验程序
基础部分:
clear;
clc;
closeall;
%读取声音信号%
[x,fs,nbits]=wavread('
bb'
16384);
%读声音文件
N=length(x);
n=[0:
N-1];
X=fft(x);
%傅里叶变换
Fs=2*fs;
%2倍频
T=1/Fs;
f=n/N*Fs;
%把点数转换成频率
subplot(2,1,1);
plot(n,x);
%画出原声音信号
ylabel('
原声音信号'
);
xlabel('
时间/s'
subplot(2,1,2);
plot(f,abs(X));
%画出原声音信号的幅度谱
语音的幅度谱'
频率/Hz'
%%滤波器设计%
%%低通滤波器%
fp1=1000;
fs1=1200;
%设定低通滤波器通带截止频率和阻带截止频率
wp1=2*fp1/Fs;
ws1=2*fs1/Fs;
rp=1;
as=100;
[N1,wp1]=ellipord(wp1,ws1,rp,as);
%计算椭圆低通模拟滤波器的阶数和通带边界频率
[B,A]=ellip(N1,rp,as,wp1);
%计算低通滤波器模拟滤波器系统函数系数
y1=filter(B,A,x);
%滤波器软件实现
Y1=abs(fft(y1));
%低通滤波器设计与实现绘图部%
figure;
freqz(B,A);
y1t='
y_1(t)'
;
t=n*T;
plot(t,y1);
t/s'
ylabel(y1t);
axis([0,t(end),min(y1),1.2*max(y1)])%坐标范围
plot(f,abs(fft(y1)));
%高通滤波器%
fp2=4800;
fs2=5000;
%设定高通滤波器通带截止频率和阻带截止频率
wp2=2*fp2/Fs;
ws2=2*fs2/Fs;
[N2,wp2]=ellipord(wp2,ws2,rp,as);
%计算椭圆高通模拟滤波器的阶数和通带边界频率
[B2,A2]=ellip(N2,rp,as,wp2,'
high'
%计算高通滤波器模拟滤波器系统函数系数
y2=filter(B2,A2,x);
%高通滤波器设计与实现绘图部分
freqz(B2,A2);
y2t='
y_2(t)'
plot(t,y2);
ylabel(y2t);
axis([0,t(end),min(y2),1.2*max(y2)])
plot(f,abs(fft(y2)));
%带通滤波器%
fpl=1200;
fpu=3000;
fsl=1000;
fsu=3200;
wp3=[2*fpl/Fs,2*fpu/Fs];
ws3=[2*fsl/Fs,2*fsu/Fs];
[N3,wp3]=ellipord(wp3,ws3,rp,as);
%计算椭圆带通模拟滤波器的阶数和通带边界频率
[B3,A3]=ellip(N3,rp,as,wp3);
%计算带通滤波器模拟滤波器系统函数系数
y3=filter(B3,A3,x);
%带通滤波器设计与实现绘图部分
figure;
freqz(B3,A3);
y3t='
y_3(t)'
plot(t,y3);
ylabel(y3t);
axis([0,t(end),min(y3),1.2*max(y3)])
plot(f,abs(fft(y3)));
%播放声音%
sound(x,fs);
sound(y1,fs);
%低通
sound(y2,fs);
%高通
sound(y3,fs);
%带通
%变速%
w=0.8
M=w*fs;
%相乘的数为大于一的数为快放,小于一的为慢放
sound(x,M);
提高部分:
%对声音信号放大和衰减%
%放大%
figure
o=10
forxa=1:
16384;
p(xa,1)=x(xa,1)*xa*o;
end
subplot(2,1,1);
plot(x);
xlabel('
原始波形'
)
subplot(2,1,2);
plot(n/Fs,p);
变换波形'
sound(20*p,fs);
%衰减%
figure
o1=0.9
p(xa,1)=x(xa,1)/xa*o1;
sound(20*p,fs)
%%%倒放
w1=x(1:
2350);
w2=x(2351:
3850);
w3=x(3851:
4850);
w4=x(4851:
5550);
w5=x(5551:
8550);
w6=x(10000:
10150);
w7=x(10151:
12500);
w8=x(12501:
16384);
y=[w8;
w7;
w6;
w5;
w4;
w3;
w2;
w1];
sound(30*y,fs);
%%混频
[x5,fs5,nbits]=wavread('
man'
c=10*x+0.5*x5;
plot(c);
sound(c);
%%%%%%%回声
z=[zeros(1000,1);
x];
%声音延时
x1=[x;
zeros(1000,1)];
%使原声音长度与延时后相等
y1=x1+z;
plot(y1);
sound(10*y1,fs);
%%%%%%%%%%男女声变换%%%%%%%%%%%%%%%%%%%%%%
%%%%%%男声变女声
[y,fs]=wavread('
%saveY1%luyin
p=fft(y);
xaa=p'
N=1000;
pa=[zeros(1,N),xaa(1:
22001),zeros(1,N)];
pu=pa'
Y1=3*real(ifft(pu));
plot(Y1)
sound(20*Y1,fs);
%%%%%%%%女声变男声
xab(1:
17797)=xaa(1:
17797);
%取一半
N=3500;
pa=[xab(N:
17797),zeros(1,17797)];
Y2=3*real(ifft(pu));
plot(Y2)
sound(1000*Y1,fs);
2.3绘图部分:
语音信号的采集
低通滤波器:
高通滤波器:
带通滤波器:
放大:
衰减:
倒放:
混频:
回声:
男声变女声:
女声变男声:
三课设总结:
参考文献
[美]数字信号处理——使用MATLAB[M].西安:
西安交通大学出版社,2002.