文档库 最新最全的文档下载
当前位置:文档库 › 基于MATLAB的数字信号滤波处理..

基于MATLAB的数字信号滤波处理..

基于MATLAB的数字信号滤波处理..
基于MATLAB的数字信号滤波处理..

数字信号处理课程设计报告(选题:基于MATLAB的数字信号滤波处理)

系(院):信息学院

专业:10通信工程

班级:通信一班

学号:14102301239

姓名:粟清明

完成日期:2013年5月21日

目录

1 课程设计内容求 (1)

1.1设计内容 (1)

1.2设计要求 (1)

2 课程设计理论基础 (1)

2.1FIR滤波器 (1)

2.2窗函数法设计FIR滤波器的原理 (2)

2.3窗函数类型的选择 (3)

3 课程设计的具体实现及仿真结果分析 (4)

3.1语音信号采集 (4)

3.2语音信号的时频分析 (4)

3.3语音信号加噪与频谱分析 (4)

3.4 设计FIR数字滤波器 (5)

3.4.1 低通滤波器的设计 (5)

3.4.2 带通滤波器的设计 (6)

3.4.3 高通滤波器的设计 (7)

3.5 用滤波器对噪音信号进行滤波 (8)

3.6 比较滤波前后语音信号的波形及频谱 (8)

3.6.1 低通滤波前后语音信号的波形及频谱 (8)

3.6.2 带通滤波前后语音信号的波形及频谱 (9)

3.6.3 高通滤波前后语音信号的波形及频谱 (10)

4 设计总结 (11)

1 课程设计内容及要求

1.1 设计内容

了解wavread()函数的使用方法,利用wavread()函数对语音信号进行采集,将语音信号转换成计算机能够运算的有限长序列,加一定的噪声,并选

择适当的滤波器进行滤波观察滤波后的效果。

1.2 设计要求

①语音信号采集,采用(.wav)格式

②运用wavread()函数对采集的语音信号进行时频分析

③运通rand()或randn()函数给语音信号加一定的噪声信号,并且对加

噪后的语音信号进行时频分析

④用窗函数法设计FIR低通滤波器,其设计具体指标如下:

低通滤波器:fp=1000Hz fc=1200Hz Ap=1DB As=100DB

高通滤波器:fp=3500Hz fc=4000Hz Ap=1DB As=100DB

带通滤波器:fp1=1200Hz fc1=1000Hz Ap=1DB As=100DB

fp2=3000Hz fc2=3200Hz

⑤运用fftfilt()函数对加噪语音信号进行滤波处理

2课程设计理论基础

2.1 FIR滤波器

FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

有限长单位冲激响应(FIR)滤波器有以下特点:

(1) 系统的单位冲激响应h(n)在有限个n值处不为零;

(2) 系统函数H(z)在|z|>0处收敛,极点全部在z=0处(因果系统);

(3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。

FIR 滤波器的系统函数用下式表示:。H(n)就是FIR 滤波器的

单位脉冲响应。FIR 滤波器最重要的优点就是由于不存在系统极点,FIR 滤波器是绝对稳定的系统。

2.2窗函数法设计FIR 滤波器的原理

设所希望的滤波器的理想的频率响应函数为()

ωj d e H ,则其对应的单位脉冲响应为

()()ωπ

ω

ωπ

πd e e H n h j

j

d

d ?-

=

21

(4.1) 窗函数设计法的基本原理是用有限长单位脉冲响应序列()n h 逼近()n h d 。由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到:

()()()n n h n h d ω=

(4.2)

()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()

ωj e H 为

()()n

j N n j e

n h e

H ωω

∑-==1

(4.3)

式中,N 为所选窗函数()n ω的长度。

我们知道,用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表4.1。

表1 各种窗函数的基本参数

这样选定窗函数类型和长度N 之后,求出单位脉冲响应

()()()n n h n h d ω?=,并按照式(4.3)求出()ωj e H 。()

ωj e H 是否满足要求,要进行演算。一般在()n h 尾部加零使长度满足2的整数次幂,以便用FFT 计算

()ωj e H 。如果要观察细节,补零点数增多即可。如果()

ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。

如果要求线性相位特性,则()n h 还必须满足

()()n N h n h --±=1

根据上式中的正、负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。要根据所设计的滤波特性正确选择其中一类,例如,要设计线性相位低通特性,可以选择()()n N h n h --=1这一类,而不能选择()()n N h n h ---=1这一类。

2.2窗函数类型的选择

本次课程设计选用凯塞窗(Kaiser ),Kaiser 窗可以通过调整参数值来折中选择主办宽度和旁办衰减,采用Kaiser 窗设计FIR 滤波器具有很大的灵活性。

凯塞窗是一种适应性较强且比较灵活的窗函数,它的表达式为:

这种窗函数是近似于给定旁办电平,使主办具有最大能量意义下的最佳窗函数。其中β是形状参数,用以调节主办宽度和旁办电平,一般β选为4<β<9,此时旁办电平约在30dB和-67dB之间。(当β=5.44时,接近汉明;β=8.5,接近布莱克曼;β=0,为矩形。)

3 课程设计的具体实现及仿真结果分析

3.1 语音信号采集

用录音设备录下一段音频以yr.wav格式存储在电脑的中,以便接下的过程中使用。

3.2语音信号的时频分析

利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。接下来,对语音信号yr.wav进行采样,具体程序如下:

[y,fs,nbits]=wavread ('yr.wav');

sound(y,fs,nbits); %回放语音信号

N= length (y) ; %求出语音信号的长度

Y=fft(y,N); %傅里叶变换

subplot(2,1,1);

plot(y);title('原始信号波形');

subplot(2,1,2);

plot(abs(Y));

title('原始信号频谱')

程序结果图如下:

3.3语音信号加噪与频谱分析

在本次课程设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。在这里,选用Randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:[y,fs,nbits]=wavread ('yr.wav');

N = length (y) ; %求出语音信号的长度

Noise=0.01*randn(N,2); %随机函数产生噪声

Si=y+Noise; %语音信号加入噪声

sound(Si);

subplot(2,1,1);

plot(Si);title('加噪语音信号的时域波形');

S=fft(Si); %傅里叶变换

subplot(2,1,2);

plot(abs(S));

title('加噪语音信号的频域波形');

程序结果图如下:

3.4设计FIR数字滤波器

用窗函数法设计FIR滤波器的步骤。如下:

(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、

汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。

原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。

(2)构造希望逼近的频率响应函数。

(3)计算h(n).。

(4)加窗得到设计结果。

3.4.1低通滤波器的设计

设计指标为:fp=1000Hz fc=1200Hz Ap=1DB As=100DB

具体设计程序如下:

rp=1;

rs=100; (阻带最小衰减)

p=1-10.^(-rp/20); %通带阻带波纹

s=10.^(-rs/20);

wp=0.2; (通带截止频率)

ws=0.28; (阻带截止频率)

fpts=[wp ws];

mag=[1 0];

dev=[p s];

[n21,wn21,beta,ftype] = kaiserord(fpts,mag,dev); %计算出凯塞窗N,beta的值

b21=fir1(n21,wn21,Kaiser(n21+1,beta)); %由fir1设计滤波器

[h,w]=freqz(b21,1); %得到频率响应

plot(w/pi,abs(h));

title('FIR低通滤波器');

程序结果图如下:

3.4.2带通滤波器的设计

设计指标:fp1=1200Hz fc1=1000Hz Ap=1DB As=100DB

fp2=3000Hz fc2=3200Hz

具体设计程序如下:

[n,wn,bta,ftype]=kaiserord([0.16 0.24 0.6 0.68],[0 1 0],[0.01 0.1087

0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数

b22=fir1(n,wn,ftype,kaiser(n+1,bta),'noscale');

[hh1,w1]=freqz(b22,1,256);

figure(1)

subplot(2,1,1)

plot(w1/pi,20*log10(abs(hh1)))

grid

xlabel('归一化频率w');ylabel('幅度/db');

程序结果图如下:

3.4.3高通滤波器的设计

设计指标:fp=3500Hz fc=4000Hz Ap=1DB As=100DB

具体设计程序如下:

rp=1;

rs=100;

p=1-10.^(-rp/20); %通带阻带波纹

s=10.^(-rs/20);

wp=0.9;

ws=0.7;

fpts=[ws wp];

mag=[0 1];

dev=[p s];

[n23,wn23,beta,ftype]=kaiserord(fpts,mag,dev);

b23=fir1(n23,wn23,'high',Kaiser(n23+1,beta));%由fir1设计滤波器[h,w]=freqz(b23,1); %得到频率响应

plot(w*12000*0.5/pi,abs(h));

title('FIR高通滤波器');

axis([3000 6000 0 1.2]);

程序结果图如下:

3.5用滤波器对噪音信号进行滤波

用自己设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。函数fftfilt用的是重叠相加法实现线性卷积的计算。调用格式为:y=fftfilter(h,x,M)。其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。函数filter的调用格式:yn=filter(B,A.xn),它是按照直线型结构实现对xn的滤波。其中xn是输入信号向量,yn输出信号向量。

3.6比较滤波前后语音信号的波形及频谱

3.6.1低通滤波前后语音信号的波形及频谱

具体程序设计如下:

[y,fs,nbits]=wavread ('yr.wav');

n = length (y) ; %求出语音信号的长度

noise=0.01*randn(n,2); %随机函数产生噪声

s=y+noise; %语音信号加入噪声

S=fft(s); %傅里叶变换

z21=fftfilt(b21,s); %

sound(z21);

m21=fft(z21); %求滤波后的信号

subplot(2,2,1);

plot(abs(S),'g');

title('滤波前信号的频谱');

subplot(2,2,2);

plot(abs(m21),'r'); title('滤波后信号的频谱');

subplot(2,2,3);

plot(s); title('滤波前信号的波形');

subplot(2,2,4);

plot(z21); title('滤波后的信号波形');

程序结果图如下:

3.6.2带通滤波前后语音信号的波形及频谱

具体程序如下:

[y,fs,nbits]=wavread ('yr.wav');

n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声

s=y+noise; %语音信号加入噪声

S=fft(s); %傅里叶变换

z22=fftfilt(b22,s);

sound(z22);

m22=fft(z22); %求滤波后的信号

subplot(2,2,1);

plot(abs(S),'g');

title('滤波前信号的频谱');

subplot(2,2,2);

title('滤波后信号的频谱');

subplot(2,2,3);

plot(s);

title('滤波前信号的波形');

subplot(2,2,4);

plot(z22);

title('滤波后的信号波形');

程序结果图如下:

3.6.3高通滤波前后语音信号的波形及频谱

具体设计程序如下:

%高通滤波器*****************************

[y,fs,nbits]=wavread ('yr.wav');

n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声

s=y+noise; %语音信号加入噪声

S=fft(s); %傅里叶变换

z23=fftfilt(b23,s);

sound(z23);

m23=fft(z23); %求滤波后的信号

subplot(2,2,1);

subplot(2,2,2);

plot(abs(m23),'r');

title('滤波后信号的频谱'); subplot(2,2,3);

plot(s);

title('滤波前信号的波形'); subplot(2,2,4);

plot(z23);

title('滤波后的信号波形'); 程序结果图如下:

4设计总结

本次课程设计完成了基于matlab的语音信号滤波处理,用wavread()函数对语音信号进行采集并且进行时频分析,然后用readn()函数对语音信号进行加噪处理并且进行频谱分析,最后用窗函数法设计FIR低通、高通、带通数字滤波器,分别对加噪后的语音信号进行滤波处理,得到滤波处理的频谱图。本次课程设计基本完成了设计的指标和要求,在课程设计过程中遇到了许多的问题,一开始用格式转换器把音乐文件转换成录音文件,用wavread ()函数进行采集后,发现没有时频分析图,初步判断可能是音乐文件过大,后经剪切音乐文件后,再用wavread()函数采集,就可以得到时频分析图了,在设计FIR滤波器的过程中,部分程序参考了网上的设计程序,但是当用matlab编译的时候,会有很多的错误,通过大量的查阅matlab自带的help 文件,以及书本的理论知识,慢慢的把出现的错误改正,并且基本设计出了适合本次课程设计的要求的FIR数字滤波器,通过仿真后也基本实现了相应的滤波功能。通过本次课程设计进一步巩固了之前所学习的数字信号处理的理论知识,对用窗函数法设计FIR滤波器的方法以及技巧有了更深刻的理解,同时也更好的掌握了用matlab进行应用设计,深深体会到了matlab软件功能之强大。在课程设计过程中,一开始感觉不知从何下手,感觉是那么的困难,但通过不断的查阅资料以及认真理解所学的理论知识,一步一步的往下做时,感觉并不是那么的难,最终基本完成了本次课程设计,感觉收获还是挺多的,进一步提高了自己的自主学习能力。

参考文献

[1] 丁玉美,高西全,数字信号处理. 3 版. 西安:西安电子科技大学出

版社,2008.

[2] 刘敏,魏玲.Matlab通信仿真与应用〔M〕.北京:国防工业出版社,2001.

[3] 张贤达编, 《现代信号处理(第二版)》,清华大学出版社,2002 年.

matlab中关于数字滤波器的函数介绍

MATLAB下的数字信号处理实现示例 一信号、系统和系统响应 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; 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,0734.2,4.0,10==Ω==TAα n=0:50; %定义序列的长度是50 A=1; %设置信号有关的参数 a=0.4; T=1; %采样率 w0=2.0734; 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开始

数字信号处理滤波器的设计

《数字信号处理》课程设计报告 设计课题滤波器设计与实现 专业班级电信1101班 姓名 学号 201105 报告日期2013年12月

《数字信号处理》 课程设计任务书 题目滤波器设计与实现 学生姓名甘源滢学号201105020103 专业班级电信1101班 设计内容与要求一、设计内容: 设计一个模拟低通巴特沃斯滤波器,技术指标:通带截止频率1000rad,通带最大衰减1dB;阻带起始频率5000rad,阻带最小衰减30dB,画出其幅度谱和相位谱。 二、设计要求 1 设计报告一律按照规定的格式,使用A4纸,格式、封面统一给出模版。 2 报告内容 (1)设计题目及要求 (2)设计原理(包括工作原理、涉及到的matlab函数的说明) (3)设计内容(设计思路,设计流程、仿真结果) (4)设计总结(收获和体会) (5)参考文献 (6)程序清单 起止时间2013年12 月16日至2013年12月23 日指导教师签名2013年12月10日系(教研室)主任签名2013年12 月12 日学生签名2013年12月13日

目录 1课题描述 (1) 1.1报告介绍 (1) 2设计原理 (2) 2.1巴特沃斯低通模拟滤波器的设计原理 (2) 2.2低通巴特沃斯滤波器的设计步骤如下 (3) 2.3函数说明 (3) 2.3.1buttord函数 (3) 2.3.2butter函数 (4) 2.4模拟低通滤波器的性能指标 (4) 3设计内容 (5) 3.1MATLAB简介 (5) 3.2巴特沃斯滤波器的设计步骤 (6) 3.3对巴特沃斯低通模拟滤波器的仿真 (6) 4实验结果分析 (7) 5实验心得体会 (7) 6程序清单 (8) 7参考文献 (9) 1.课题描述 1.1报告介绍 模拟滤波器的理论和设计方法已经发展的相当成熟,且有多种典型的滤波器供我们选择,如巴特沃斯(butterworth)滤波器,切比雪夫(chebyshev)滤波器,椭圆(ellipse)滤波器,贝塞尔(bessel)滤波器等。这些滤波器都有着严格的设计公式,现成的曲线和图表供设计人员使用,而且所设计的系统函数都满足电路实现条件。这些典型的滤波器各有特点:巴特沃斯滤波器具有单调下降到幅频特性;切比雪夫滤波器的幅频特性在带通或者阻带有等波纹特性,可以提高选择性;贝塞尔滤波器通带内有较好的线性相位特性;椭圆滤波器的选择性相对前三种是

基于MATLAB的数字滤波器的设计程序

IIR 低通滤波器的设计程序为: Ft=8000; Fp=1000; Fs=1200; As=100 ; Ap=1; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Fp*tan(wp/2); fs=2*Fs*tan(ws/2); [n11,wn11]=buttord(wp,ws,1,50,'s'); [b11,a11]=butter(n11,wn11,'s'); [num11,den11]=bilinear(b11,a11,0.5); [h,w]=freqz(num11,den11); axes(handles.axes1); plot(w*8000*0.5/pi,abs(h)); xlabel('Frequency/Hz'); ylabel('Magnitude'); title('巴特沃斯数字低通滤波器'); 巴特沃斯带通滤波器设计程序为: Ft=8000; Fp1=1200; Fp2=3000; Fs1=1000; Fs2=3200; As=100; Ap=1; wp1=tan(pi*Fp1/Ft); wp2=tan(pi*Fp2/Ft); ws1=tan(pi*Fs1/Ft); ws2=tan(pi*Fs2/Ft); w=wp1*wp2/ws2;

bw=wp2-wp1; wp=1; ws=(wp1*wp2-w.^2)/(bw*w); [n12,wn12]=buttord(wp,ws,1,50,'s'); [b12,a12]=butter(n12,wn12,'s'); [num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw); [num12,den12]=bilinear(num2,den2,0.5); [h,w]=freqz(num12,den12); plot(w*8000*0.5/pi,abs(h)); axis([0 4000 0 1.5]); xlabel('Frequency/Hz'); ylabel('Magnitude'); title('巴特沃斯数字带通滤波器'); IIR 高通滤波器的设计程序为: Ft=8000; Fp=4000; Fs=3500; wp1=tan(pi*Fp/Ft); ws1=tan(pi*Fs/Ft); wp=1; ws=wp1*wp/ws1; [n13,wn13]=cheb1ord(wp,ws,1,50,'s'); [b13,a13]=cheby1(n13,1,wn13,'s'); [num,den]=lp2hp(b13,a13,wn13); [num13,den13]=bilinear(num,den,0.5); [h,w]=freqz(num13,den13); axes(handles.axes1); plot(w*21000*0.5/pi,abs(h)); xlabel('Frequency/Hz'); ylabel('Magnitude'); title('切比雪夫Ⅰ型数字高通滤波器');

数字信号处理Matlab实现实例(推荐给学生)

数字信号处理Matlab 实现实例 第1章离散时间信号与系统 例1-1 用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。 解 MATLAB程序如下: a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:{-2 -4 1 3 1 5 1 -3}。 例1-2 用MATLAB计算差分方程 当输入序列为时的输出结果。 解 MATLAB程序如下: N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)];

k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n');ylabel('幅度') 图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。 例1-3 用MATLAB 计算例1-2差分方程 所对应的系统函数的DTFT 。 解 例1-2差分方程所对应的系统函数为: 123 123 0.80.440.360.02()10.70.450.6z z z H z z z z -------++= +-- 其DTFT 为 23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e e e e ωωωω ωωω--------++= +-- 用MATLAB 计算的程序如下: k=256; num=[0.8 -0.44 0.36 0.02]; den=[1 0.7 -0.45 -0.6]; w=0:pi/k:pi; h=freqz(num,den,w); subplot(2,2,1); plot(w/pi,real(h));grid title('实部') xlabel('\omega/\pi');ylabel('幅度')

对周期方波信号进行滤波matlab的实现

对周期方波信号进行滤波 ) 1、生成一个基频为10Hz的周期方波信号; ) 2、设计一个滤波器,滤去该周期信号中40Hz以后的频率成分,观察滤波前后的信号波形和频谱。 )3、如果该信号x(t)淹没在噪声中(随机噪声用randn(1,N)生成,N为其样点数),试滤去噪声。 %采样频率取200Hz,可以改变看看。输入、输出信号频谱同时绘制在一起对比 %采用低通滤波器,保留40Hz以下频率成分 clear fs=200; t=0:1/fs:1; x=square(2*pi*10*t); wp=40*2/fs; ws=45*2/fs; Rp=3;Rs=45;Nn=128; [N,wn]=buttord(wp,ws,Rp,Rs) [b,a]=butter(N,wn,'low') y=filter(b,a,x); figure(1) plot(t,x,'r-',t,y) %grid on axis([0 1.2 -2 2]) title('红色代表原信号,蓝色代表只保留40Hz以下频率成分') figure(2) [H,W]=freqz(b,a); k=0:511; plot((fs/2)/512*k,abs(H)); grid on title('滤波器频率响应') T=1/fs; N=4*(fs/10); n=0:N-1; xn=square(2*pi*10*n*T); X=fftshift(fft(xn,512)); xk=1/N*X;

Y=fftshift(fft(y,512)); yk=1/N*Y; figure(3) plot(-fs/2+fs/512*k,abs(xk)) grid on legend('方波信号的频谱') figure(4) plot(-fs/2+fs/512*k,abs(xk),'b',-fs/2+fs/512*k,abs(yk),'r') grid on legend('原信号的频谱','滤波后信号的频谱') %%%%%%%%%%%%%%%%%%%%保留40Hz频率成分%%%%%%%%%%%% %采样频率取200Hz,可以改变看看。输入、输出信号频谱同时绘制在一起对比 %采用带通滤波器,只保留40Hz频率成分 clear fs=200; t=0:1/fs:1; x=square(2*pi*10*t); wp=[35 45]*2/fs; ws=[30 50]*2/fs; Rp=3;Rs=45;Nn=128; [N,wn]=buttord(wp,ws,Rp,Rs) [b,a]=butter(N,wn,'bandpass') %只保留40Hz频率成分 y=filter(b,a,x); figure(1) plot(t,x,'r-',t,y) grid on axis([0 1.2 -1.2 1.2]) title('红色代表原信号,蓝色代表只保留40Hz频率成分') figure(2) [H,W]=freqz(b,a); k=0:511; plot((fs/2)/512*k,abs(H)); grid on title('滤波器频率响应') T=1/fs; N=4*(fs/10); n=0:N-1; xn=square(2*pi*10*n*T);

如何学习数字信号处理

如何学好数字信号处理课程 《数字信号处理》是相关专业本科生培养中,继《信号与系统》、《通信原理》、《数字逻辑》等课程之后的一门专业技术课。数字信号处理的英文缩写是DSP ,包括两重含义:数字信号处理技术(Digital Signal Processing )和数字信号处理器(Digital Signal Processor )。目前我们对本科生开设的数字信号处理课程大多侧重在处理技术方面,由于课时安排和其他一些原因,通常的特点是注重理论推导而忽略具体实现技术的介绍。最后导致的结果就是学生在学习了数字信号处理课程之后并不能把所学的理论知识与实际的工程应用联系起来,表现在他们做毕业设计时即使是对学过的相关内容也无法用具体的手段来实现,或者由于无法与具体实际相挂钩理解而根本就忘记了。我相信,我们开设本课程的根本目的应该是让学生在熟练掌握数字信号处理的基本原理基础上,能结合工程实际学习更多的DSP 实现技术及其在通信、无线电技术中的应用技能,这也是符合DSP 本身的二重定义的,学生通过本课程的学习,将应该能从事数字信号处理方面的研究开发、产品维护等方面的技术工作。其实很多学生在大学四年学习过后都有这种反思:到底我在大学学到了什么呢?难道就是一些理论知识吗?他们将如何面对竞争日益激烈的社会呢? 因此,大家在应用MATLAB学习并努力掌握数字信号处理的原理,基本理论的同时,应该始终意识到该课程在工程应用中的重要性,并在课后自学一些有关DSP技术及FPGA技术方面的知识。这样,学习本课程学习的三部曲是:一,学习数字信号处理的基本理论;二,掌握如何用MATLAB 实现一些基本的算法,如FFT ,FIR 和IIR 滤波器设计等;三,选择一种数字信号处理器作为实现平台进行实践学习,比如TI 公司的TMS320C54x 系列芯片,包括该处理器的硬件和软件系统,如Code Composer Studio及像MATLAB Link for Code Composer Studio这样的工具。 在学习数字信号处理的过程中,要注重培养自己的工程思维方法。数字信号处理的理论含有许多研究问题和解决问题的科学方法,例如频率域的分析方法、傅里叶变换的离散做法、离散傅里叶变换的快速计算方法等, 这些方法很好。虽然它们出现在信号处理的专业领域, 但是, 其基本精神是利用事物的特点和规律解决实际问题, 这在各个领域中是相同的。还有, 数字信号处理的理论的产生是有原因的, 这些原因并不难懂, 就是理论为应用服务, 提高使用效率。 例如: 为什么要使用频率域的分析方法?原因是从时间看问题, 往往看到事物的表面, 就像 我们用眼睛看水只能看到水的颜色, 看不到水的基本成分, 同样, 从时间看信号只能看到信号变化的大小和快慢,看不到信号的基本成分; 若采用分解物质的方法, 从成分的角度去看, 用化学分析则能看到水的各种成分, 同样, 用分解信号的方法则能看到信号里的基本成分, 至于基本成分的选择则视哪种基本类型最适合实际信号处理, 这就是频率域的分析方法。 又如: 为什么要采用离散的傅里叶变换?原因很简单, 因为要利用计算机计算傅里叶变换, 而计算机只能计算数据, 不能计算连续变量, 所以必须分离连续的傅里叶变换, 使它成为离散的傅里叶变换。 再如: 为什么要采用离散傅里叶变换的快速计算方法?原因是, 理论上离散傅里叶变换能让计算机分析频谱, 但是, 直接按照离散傅里叶变换的定义计算它, 计算量太大, 实用价值不大; 只有采用巧妙的方法降低计算量, 则离散傅里叶变换才有实用价值,这种巧妙的方法就 是离散傅里叶变换的快速计算方法。降低计算量的巧妙之处在, 离散傅里叶变换的计算量与信号的长度成正比, 科学家想办法将信号分解成为短信号, 分解成为短信号的方法有多种, 只要开动脑筋,我们也是一样可以想出来的。 最后,感谢同学们对我的支持,我会尽我所能,与大家共同探索"数字信号处理"领域的奇妙世界。

基于Matlab数字带通滤波设计

《数字信号处理课程设计报告》 课程设计题目:数字带通滤波设计 学院:信息工程学院 专业:通信工程 班级: 学生姓名: 指导老师: 日期:2012年5月4日至17日

目录 1. 课程设计的目的和意义 (3) 1.1课程目的 (3) 1.2实验意义 (3) 2.课程设计题目描述及要求 (4) 3.实验内容 (4) 3.1数字滤波器的简介 (4) 3.2 椭圆数字带通滤波器设计原理 (4) 3.3实验流程框图 (5) 3.4实验步骤 (7) 3.5 程序代码 (8) 3.6实验仿真结果图 (9) 3.7实验结果分析 (10) 4.实验总结 (10) 参考文献 (11)

1.课程设计的目的和意义 1.1课程目的 (1) 学习椭圆模拟带通滤波器的设计。 (2) 使用椭圆模拟带通滤波器逼近数字带通滤波器。 (3) 双线性变换法的应用原理。 (4) 使用matlab对滤波器进行仿真和频谱分析。 1.2实验意义 数字滤波器是个离散时间系统(按预定的算法,将输入离散时间信号换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。 利用Matlab设计滤波器,可以按照设计要求非常方便地调整设计参数,极大地减轻了设计的工作量,有利于滤波器设计的最优化。Matlab因其强大的数据处理功能被广泛应用于工程计算,其丰富的工具箱为工程计算提供了便利,利用Matlab信号处理工具箱可以快速有效地设计各种数字滤波器,设计简单方便。本文介绍了在Matlab环境下滤波器设计的方法和步骤。

数字信号处理MATLAB中FFT实现

MATLAB中FFT的使用方法 说明:以下资源来源于《数字信号处理的MATLAB实现》万永革主编 一.调用方法 X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N) 用MATLAB进行谱分析时注意: (1)函数FFT返回值的数据结构具有对称性。 例: N=8; n=0:N-1; xn=[43267890]; Xk=fft(xn) → Xk= 39.0000-10.7782+6.2929i0-5.0000i 4.7782-7.7071i 5.0000 4.7782+7.7071i0+5.0000i-10.7782-6.2929i Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。 (2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。 二.FFT应用举例 例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

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);%信号 y=fft(x,N);%对信号进行快速Fourier变换 mag=abs(y);%求得Fourier变换后的振幅 f=n*fs/N;%频率序列 subplot(2,2,1),plot(f,mag);%绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; subplot(2,2,2),plot(f(1:N/2),mag(1:N/2));%绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; %对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);%信号 y=fft(x,N);%对信号进行快速Fourier变换 mag=abs(y);%求取Fourier变换的振幅 f=n*fs/N; subplot(2,2,3),plot(f,mag);%绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; subplot(2,2,4) plot(f(1:N/2),mag(1:N/2));%绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; 运行结果:

应用matlab对语音信号进行频谱分析及滤波.

数字信号处理 —综合实验报告 综合实验名称:应用MatLab对语音信号进行 频谱分析及滤波 系: 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间学年学期

目录 一.综合实验题目 (1) 二、综合实验目的和意义 (1) 2.1 综合实验目的 (1) 2.2 综合实验的意义 (1) 三.综合实验的主要内容和要求 (1) 3.2 综合实验的要求: (2) 四.实验的原理 (2) 4.1 数字滤波器的概念 (2) 4.2 数字滤波器的分类 (2) (1)根据单位冲激响应h(n)的时间特性分类 (2) 五.实验的步骤 (3) 下面对各步骤加以具体说明。 5.1语音信号的采集 (3) 5.2 语音信号的频谱分析; (3) 5.3 设计数字滤波器和画出其频率响应 (5) 5.3.1设计数字滤波器的性能指标: (5) 5.3.2 用Matlab设计数字滤波器 (6) 5.6 设计系统界面 (19) 六、心得体会 (20) 参考文献: (21)

一.综合实验题目 应用MatLab对语音信号进行频谱分析及滤波 二、综合实验目的和意义 2.1 综合实验目的 为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解,再者,加强学生对Matlab软件在信号分析和处理的运用 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。 2.2 综合实验的意义 语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。语音是语言最基本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。 语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展;它是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领域和涉及面很广的交叉学科,因此我们进行语言信号处理具有时代的意义。 三.综合实验的主要内容和要求 3.1综合实验的主要内容: 录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;综合实验应完成的工作: (1)语音信号的采集; (2)语音信号的频谱分析;

数字信号处理实验一 IIR数字滤波器设计及软件实现

实验一 IIR数字滤波器设计及软件实现 一、实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 二、实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求同学调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 三、实验内容及步骤 (1)调用信号产生函数mstg,产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1-1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。

图1-1 三路调幅信号st 的时域波形和幅频特性曲线 (2)要求将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB 。 提示:抑制载波单频调幅信号的数学表示式为 0001()cos(2)cos(2)[cos(2())cos(2())]2 c c c s t f t f t f f t f f t ππππ==-++ 其中,cos(2)c f t π称为载波,f c 为载波频率,0cos(2)f t π称为单频调制信号,f 0为调制正弦波信号频率,且满足0c f f >。由上式可见,所谓抑制载波单频调幅信号,就是2个正弦信号相乘,它有2个频率成分:和频0c f f +和差频0c f f -,这2个频率成分关于载波频率f c 对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率f c 对称的2根谱线,其中没有载频成分,故取名为抑制载波单频调幅信号。容易看出,图1-1中三路调幅信号的载波频率分别为250Hz 、500Hz 、1000Hz 。如果调制信号m(t)具有带限连续频谱,无直流成分,则()()cos(2)c s t m t f t π=就是一般的抑制载波调幅信号。其频谱图是关于载波频率f c 对称的2个边带(上下边带),在专业课通信原理中称为双边带抑制载波 (DSB-SC) 调幅信号,简称双边带 (DSB) 信号。如果调制信号m(t)有直流成分,则()()cos(2)c s t m t f t π=就是一般的双边带调幅信号。其频谱图是关于载波频率f c 对称的2个边带(上下边带),并包含载频成分。

实验4 基于MATLAB的FIR数字滤波器设计

实验4 基于MATLAB 的FIR 数字滤波器设计 实验目的:加深对数字滤波器的常用指标和设计过程的理解。 实验原理:低通滤波器的常用指标: P P P for H Ω≤Ω+≤Ω≤-,1)(1δδ πδ≤Ω≤Ω≤ΩS S for H ,)( 通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏 P δ, 通带峰值起伏] )[1(log 2010dB p p δα--=, 阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。 数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。 在MATLAB 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。 例1 用凯塞窗设计一FIR 低通滤波器,通带边界频率π3.0=Ωp ,阻带边界频率π5.0=Ωs ,阻带衰减 不小于50dB 。 解 首先由过渡带宽和阻带衰减 来决定凯塞窗的N 和 π2.0=Ω-Ω=?Ωp s , , S P P S Passband Stopband Transition band Fig 1 Typical magnitude specification for a digital LPF

实验一 基于Matlab的数字信号处理基本

实验一 基于Matlab 的数字信号处理基本操作 一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离 散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容: (一) 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0() 0(0 1)(≠=?? ?=n n n δ 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1]) 程序运行结果如图1-1所示。 图1-1 单位冲激序列

应用MATLAB对信号进行频谱分析及滤波

应用MATLAB对信号进行频谱分析及滤波fs=input('please input the fs:');%设定采样频率 N=input('please input the N:');%设定数据长度 t=0:0.001:1; f=100;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f*t); figure(1); subplot(211); plot(t,x);%作正弦信号的时域波形 axis([0,0.1,-1,1]); title('正弦信号时域波形'); z=square(50*t); subplot(212) plot(t,z) axis([0,1,-2,2]); title('方波信号时域波形');grid; %进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2); subplot(211); plot(f,mag);%做频谱图 axis([0,1000,0,200]); title('正弦信号幅频谱图'); y1=fft(z,N);%进行fft变换 mag=abs(y1);%求幅值 f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212); plot(f,mag);%做频谱图 axis([0,1000,0,200]); title('方波信号幅频谱图');grid; %求功率谱 sq=abs(y);

power=sq.^2; figure(3) subplot(211); plot(f,power); title('正弦信号功率谱');grid; sq1=abs(y1); power1=sq1.^2; subplot(212); plot(f,power1); title('方波信号功率谱');grid; %用IFFT恢复原始信号 xifft=ifft(y); magx=real(xifft); ti=[0:length(xifft)-1]/fs; figure(4); subplot(211); plot(ti,magx); axis([0,0.1,-1,1]); title('通过IFFT转换的正弦信号波形'); zifft=ifft(y1); magz=real(zifft); ti1=[0:length(zifft)-1]/fs; subplot(212); plot(ti1,magz); title('通过IFFT转换的方波信号波形');grid; please input the fs:1000 please input the N:1024

数字信号处理滤波器

1.设计物理可实现的低通滤波器 设计思路:因为要设计FIR有限脉冲响应滤波器,通常的理想滤波器的单位脉冲响应h是无限长的,所以需要通过窗来截断它,从而变成可实现的低通滤波器。程序如下: clc;clear all; omga_d=pi/5; omga=0:pi/30:pi; for N=3:4:51; w1= window(@blackman,N); w2 = window(@hamming,N); w3= window(@kaiser,N,2.5); w4= window(@hann,N); w5 = window(@rectwin,N); M=floor(N/2); subplot(311);plot(-M:M,[w1,w2,w3,w4,w5]); axis([-M M 0 1]); legend('Blackman','Hamming','kaiser','hann','rectwin'); n=1:M; hd=sin(n*omga_d)./(n*omga_d)*omga_d/pi; hd=[fliplr(hd),1/omga_d,hd]; h_d1=hd.*w1';h_d2=hd.*w2';h_d3=hd.*w3';h_d4=hd.*w4';h_d5=hd.*w5'; m=1:M; H_d1=2*cos(omga'*m)*h_d1(M+2:N)'+h_d1(M+1); H_d2=2*cos(omga'*m)*h_d2(M+2:N)'+h_d2(M+1); H_d3=2*cos(omga'*m)*h_d3(M+2:N)'+h_d3(M+1); H_d4=2*cos(omga'*m)*h_d4(M+2:N)'+h_d4(M+1); H_d5=2*cos(omga'*m)*h_d5(M+2:N)'+h_d5(M+1); subplot(312);plot(omga,[H_d1,H_d2,H_d3,H_d4,H_d5]); legend('Blackman','Hamming','kaiser','hann','rectwin'); subplot(313);plot(abs([fft(h_d1);fft(h_d2);fft(h_d3);fft(h_d4);fft(h_ d5)])'); pause(); end 程序分析: 整个对称窗的长度为N,然而为了在MATLAB中看到窗函数在负值时的形状需将N变为它的一半,即为2M+1个长度。窗长设置为从3开始以4为间隔一直跳动51。则长度相同的不同窗函数在时域[-M,M]的形状如第一个图所示。 对窗函数进行傅里叶变换时,将零点跳过去先构造一个一半的理想滤波器的脉冲响应hd,再将零点位置求导得出的数赋值进去。将生成的hd左右颠倒形成了一个理想的滤波器的脉冲响应。将构造的理想滤波器的脉冲响应依次与之前定义的窗函数相乘,相乘出来的为列向量,用转置将其变成行向量,形成的h_d就是非理想的低通滤波器的脉冲响应序列。因为h_d为对称奇数长度序列,它的DTFT 可以是二倍的离散余弦变化,而零点的位置则直接带入求出,两者相加则是H_d。则第二个图表示的是五个矩阵向量在频域的变化,而第三个图表示的是五个非理想低通滤波器的傅里叶变换,图三FFT给出的结果永远是对称的,因为它显示

基于matlab的语音信号滤波处理——数字信号处理课程设计

数字信号处理课程设计 题目:基于matlab的语音信号滤波处理学院:物理与电子信息工程 专业:电子信息工程 班级: B07073041 学号: 200932000066 姓名:高珊 指导教师:任先平

摘要: 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求自己录制一段自己的语音后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图。再在Matlab中分别设计不同形式的FIR数字滤波器。之后对采集的语音信号经过不同的滤波器(低通、高通、带通)后,观察不同的波形,并进行时域和频谱的分析。对比处理前后的时域图和频谱图,分析各种滤波器对于语音信号的影响。最后分别收听进行滤波后的语音信号效果,做到了解在怎么样的情况下该用怎么样的滤波器。

目录 1.设计内容 (4) 2.设计原理 (4) 2.1语音信号的时域分析 (4) 2.2语音信号的频域分析 (5) 3.设计过程 (5) 3.1实验程序源代码 (6) 3.1.1原语音信号时域、频域图 (6) 3.1.2低通滤波器的设计 (6) 3.1.3高通滤波器的设计 (7) 3.1.4带通滤波器的设计 (8) 3.1.5语音信号的回放 (9) 3.2调试结果描述 (10) 3.3所遇问题及结果分析 (15) 3.3.1所遇主要问题 (16) 3.3.2结果分析 (16) 4.体会与收获 (17) 5.参考文献 (17)

什么是数字信号处理

什么是数字信号处理?有哪些应用? 利用数字计算机或专用数字硬件、对数字信号所进行的一切变换或按预定规则所进行的一切加工处理运算。 例如:滤波、检测、参数提取、频谱分析等。 对于DSP:狭义理解可为Digital Signal Processor 数字信号处理器。广义理解可为Digital Signal Processing 译为数字信号处理技术。在此我们讨论的DSP的概念是指广义的理解。 数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。 信号处理的实质是对信号进行变换。 信号处理的目的是获取信号中包含的有用信息,并用更直观的方式进行表达。 DSP的应用几乎遍及电子学每一个领域。 ▲通用数字信号处理器:自适应滤波,卷积,相关,数字滤波,FFT, 希尔伯特变换,波形生成,窗函数等等。 ▲语音信号处理:语音增强、识别、合成、编码、信箱等,文字/语音转换 ▲图形/图像处理:三维动画,图象鉴别/增强/压缩/传输,机器人视觉等等图 ▲特殊应用数字信号处理:振动和噪声分析与处理,声纳和雷达信号处理, 通信信号处理, 地震信号分析与处理,汽车安全及全球定位,生物医学工程等等。 在医疗、军事、汽车等行业,以及通信市场、消费类电子产品等中具有广阔的市场前景。 数字信号处理系统的基本组成:前置预滤波器(PrF)、a/d变换器(ADC)、数字信号处理器(DSP)、d/a变换器(DAC)、模拟滤波器(PoF) 数字信号处理特点: 1.大量的实时计算(FIR IIR FFT), 2.数据具有高度重复(乘积和操作在滤波、卷积和FFT中等常见) 数字信号处理技术的意义、内容 数字信号处理技术是指数字信号处理理论的应用实现技术,它以数字信号处理理论、硬件技术、软件技术为基础和组成,研究数字信号处理算法及其实现方法。 意义: 在21世纪,数字信号处理是影响科学和工程最强大的技术之一 它是科研人员和工程师必须掌握的一门技巧 DSP芯片及其特点 ▲采用哈佛结构体系:独立的程序和数据总线,一个机器周期可同时进行程序读出和数据存取。对应的:冯·诺依曼结构。 ▲采用流水线技术: ▲硬件乘法器:具有硬件连线的高速“与或”运算器 ▲多处理单元:DSP内部包含多个处理单元。 ▲特殊的DSP指令:指令具有多功能,一条指令完成多个动作;如:倒位序指令等 ▲丰富的外设▲功耗低:一般DSP芯片功耗为0.5~4W。采用低功耗技术的DSP芯片只有0.1W/3.3V、1.6V (电池供电) DSP芯片的类别和使用选择 ▲按特性分:以工作时钟和指令类型为指标分类▲按用途分:通用型、专用型DSP芯片 ▲按数据格式分:定点、浮点各厂家还根据DSP芯片的CPU结构和性能将产品分成若干系列。 TI公司的TMS320系列DSP芯片是目前最有影响、最为成功的数字信号处理器,其产品销量一直处于领先地位,公认为世界DSP霸主。 ?目前市场上的DSP芯片有: ?美国德州仪器公司(TI):TMS320CX系列占有90%

相关文档
相关文档 最新文档