基于matlab的数字音效处理器 - 数字信号处理课设报告

发布时间 : 星期三 文章基于matlab的数字音效处理器 - 数字信号处理课设报告更新完毕开始阅读

一:应用背景

利用所学习的数字信号处理知识,自己动手制作一个有趣的音效处理系统,看看能不能完成声音的逐渐放大和逐渐衰减、看看能不能让自己的声音发生一些改变(变得尖声尖气或粗声粗气)、看看改变声音播放速度有什么方法等等,你还可以自己想想还有什么有趣的变化,可以通过我们已有的知识让它实现。

作为课程设计,以下要求分为基本必做部分和提高必做部分,在提高部分你可以选择全部内容和部分内容,当然分数值是不一样。

二、基于MATLAB数字音效处理器

2.1:实现步骤

基本要求描述(40分) 1)语音信号的采集(2分)

要求利用Windows下的录音机,录制一段自己的话音,时间在5s内,存为*.WAV的文件。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

2)语音信号的频谱分析(10分)

要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,分析基频。

3)设计数字滤波器和画出其频率响应(10分) 给出各滤波器的性能指标:

(1)低通滤波器性能指标 fb=1 000 Hz,fc=1 200 Hz,As=100 dB,Ap=1 dB。 (2)高通滤波器性能指标 fc=4 800 Hz,fb=5 000 Hz As=100 dB,Ap=1 dB。 (3)带通滤波器性能指标 fb1=1 200 Hz,fb2=3 000 Hz,fc1=1 000 Hz,fc2=3 200 Hz,As=100 dB,Ap=1 dB。

4) 用滤波器对信号进行滤波(5分)

要求学生用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。

1

5)比较滤波前后语音信号的波形及频谱(10分)

要求在一个窗口同时画出滤波前后的波形及频谱,做出分析。 6)回放语音信号(1分)

在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;close all; %读取声音信号%

[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)); %画出原声音信号的幅度谱 ylabel('语音的幅度谱'); xlabel('频率/Hz'); % %滤波器设计%

2

% %低通滤波器%

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)'; figure; subplot(2,1,1); t=n*T; plot(t,y1);

xlabel('t/s');ylabel(y1t);

axis([0,t(end),min(y1),1.2*max(y1)])%坐标范围 subplot(2,1,2); plot(f,abs(fft(y1))); %高通滤波器%

fp2=4800;fs2=5000; %设定高通滤波器通带截止频率和阻带截止频率 wp2=2*fp2/Fs; ws2=2*fs2/Fs;rp=1;as=100;

[N2,wp2]=ellipord(wp2,ws2,rp,as); %计算椭圆高通模拟滤波器的阶数和通带边界频率 [B2,A2]=ellip(N2,rp,as,wp2,'high'); %计算高通滤波器模拟滤波器系统函数系数 y2=filter(B2,A2,x); %滤波器软件实现 % 高通滤波器设计与实现绘图部分 figure; freqz(B2,A2); figure; y2t='y_2(t)'; subplot(2,1,1); t=n*T; plot(t,y2);

xlabel('t/s');ylabel(y2t);

axis([0,t(end),min(y2),1.2*max(y2)]) subplot(2,1,2); 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];rp=1;as=100;

[N3,wp3]=ellipord(wp3,ws3,rp,as); %计算椭圆带通模拟滤波器的阶数和通带边界频率 [B3,A3]=ellip(N3,rp,as,wp3); %计算带通滤波器模拟滤波器系统函数系数 y3=filter(B3,A3,x); %滤波器软件实现 % 带通滤波器设计与实现绘图部分

3

figure;

freqz(B3,A3); y3t='y_3(t)'; figure; subplot(2,1,1); t=n*T; plot(t,y3);

xlabel('t/s');ylabel(y3t);

axis([0,t(end),min(y3),1.2*max(y3)]) subplot(2,1,2); 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

for xa=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); xlabel('变换波形') sound(20*p,fs); %衰减% figure o1=0.9 for xa=1:16384;

p(xa,1)=x(xa,1)/xa*o1; end

subplot(2,1,1); plot(x);

4

联系合同范文客服:xxxxx#qq.com(#替换为@)