当前位置:文档之家› 数字信号处理课设题目详细分解步骤

数字信号处理课设题目详细分解步骤

数字信号处理课程详细步骤分解
语音(音乐)信号滤波去噪的选题
课题具体内容
1.1、语音(音乐)信号的采集
要求学生利用Windows下的录音机,录制语音信号“大家好,我是***”,时间在2-3 s左右。

或者网上下载一段格式为.wav的音乐。

然后在Matlab软件平台下,利用函数wavread 对语音信号进行采样,记住采样频率和采样点数。

通过wavread函数的使用,学生很快理解了采样频率、采样位数等概念。

采集完成后在信号中加入一个单频噪声,设计的任务即为从含噪信号中滤除单频噪声,还原原始信号。

参考调用格式:
[x,fs,bits]=wavread('e:\yuyin.wav'); % 输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。

sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放
N=length(x); % 计算信号x的长度
fn=2100; % 单频噪声频率,此参数可改
t=0:1/fs:(N-1)/fs; % 计算时间范围,样本数除以采样频率
x=x'; y=x+0.1*sin(fn*2*pi*t);
sound(y,fs,bits); % 应该可以明显听出有尖锐的单频啸叫声
1.2、语音信号的频谱分析
要求学生首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,从而加深学生对频谱特性的理解。

参考调用格式:
X=abs(fft(x)); Y=abs(fft(y)); % 对原始信号和加噪信号进行fft变换,取幅度谱
X=X(1:N/2); Y=Y(1:N/2); % 截取前半部分
deltaf=fs/2/N; % 计算频谱的谱线间隔
f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围
用绘图命令分别画出加噪前后信号的时域和频域波形,注意:布局为2*2的子图,每个子图都分别加上横纵坐标,网格和标题。

1.3、 设计数字滤波器和画出其频率响应
给出各滤波器的性能指标:
11222000205021502200p s s p f Hz
f Hz
f Hz f Hz ====,A s =自定dB ,A p =1 dB
截止频率也可以任意自选,在单频噪声干扰附近即可。

要求学生用窗函数法、频率采样法、脉冲响应不变法和双线性变换法设计上面要求的滤波器。

在Matlab 中,可以利用矩形窗、三角窗、汉宁窗、汉明窗、布莱克曼窗、凯塞窗等设计FIR 滤波器,可以利用函数butte 、cheby1、cheby2和ellip 设计IIR 滤波器;利用Matlab 中的函数freqz 画出各滤波器的频率响应。

首先利用数字信号处理里面学过的知识,根据自己选定的参数,用指定的方法设计数字滤波器,得到数字滤波器的参数b ,a 。

其中b 为系统函数的分子系数,a 为系统函数分母系数。

(不熟悉的同学再回头看数字信号处理的教材)再调用freqz(b,a,512,fs)即可得到该滤波器的频率响应。

下面是其中一种实现方法的参考程序:
fpd=2000;fsd=2050;fsu=2150;fpu=2200;Rp=1;As=40; % 带阻滤波器设计指标
fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min((fsd-fpd),(fpu-fsu)); % 计算上下边带中心频率,和频率间隔
wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi;
% 将Hz 为单位的模拟频率换算为rad 为单位的数字频率
wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi;
M=ceil(6.2*pi/dw)+1; % 计算汉宁窗设计该滤波器时需要的阶数
n=0:M-1; % 定义时间范围
w_ham=hanning(M); % 产生M阶的汉宁窗
hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M);
% 调用自编函数计算理想带阻滤波器的脉冲响应
h_bs=w_ham'.*hd_bs; % 用窗口法计算实际滤波器脉冲响应
[db,mag,pha,grd,w]=freqz_m(h_bs,1); % 调用自编函数计算滤波器的频率特性
IIR滤波器的设计可参考教材
1.4、用滤波器对信号进行滤波
要求学生用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。

参考程序:
y_fil=filter(h_bs,1,y); % 用设计好的滤波器对y进行滤波
Y_fil=fft(y_fil);Y_fil=Y_fil(1:N/2); % 计算频谱取前一半

y_fil=filter(b,a,y) % IIR滤波器对信号signal进行滤波处理,其中b,a为上面设计好的滤波器参数。

1.5、比较滤波前后语音信号的波形及频谱
在同一张大图里分别绘制原始信号x,加噪信号y,滤波去噪信号y_fil的时域波形和频谱,以便比较和分析。

1.6、回放语音信号
在Matlab中,函数sound可以对声音进行回放。

其调用格式:sound (y_fil,fs,bits);
可以感觉滤波前后的声音有变化。

如有侵权请联系告知删除,感谢你们的配合!。

相关主题