数字信号处理实验讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

五、
思考
1. 如何用窗函数法设计其他类型的线性相位的 FIR 滤波器,如高通、带通 和带阻滤波器?
9
10
实验五
数字信号处理综合设计
一、实验目的 1.学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法; 2.掌握在 Windows 环境下语音信号采集的方法; 3.掌握数字信号处理的基本概念、基本理论和基本方法; 4.掌握 MATLAB 设计 FIR 和 IIR 数字滤波器的方法; 5.学会用 MATLAB 对信号进行分析和处理。 二、实验要求和步骤 1.语音信号的采集 要求利用 windows 下的录音机或其他软件,录制一段自己的话音,时间控 制在 1 秒左右。然后在 MATLAB 软件平台下,利用函数 wavread 对语音信号进 行采样,记住采样频率和采样点数。通过 wavread 函数的使用,要求理解采样 频率、采样位数等概念。 wavread 函数调用格式: y=wavread(file),读取 file 所规定的 wav 文件,返回采样值放在向量 y 中。 [y,fs,nbits]=wavread(file),采样值放在向量 y 中,fs 表示采样频率(Hz) , nbits 表示采样位数。 y=wavread(file,N),读取前 N 点的采样值放在向量 y 中。 y=wavread(file,[N1,N2]),读取从 N1 点到 N2 点的采样值放在向量 y 中。 2.语音信号的频谱分析 要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在 MATLAB 中,可以利用函数 fft 对信号进行快速傅里叶变换,得到信号的频谱特
2. 单位脉冲序列 (1) 生成单位脉冲序列,观察并记录生成的图形;
n=1:50; %定义序列的长度是 50 x=zeros(1,50); %注意:MATLAB 中数组下标从 1 开始 x(1)=1; close all; subplot(3,1,1);stem(x);title('单位冲击信号序列');
n
R n e
N

jn
,分别研究其幅频特性和相
k=-25:25; X=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 ('单位矩形信号的相位谱')
三、
实验步骤
1. 利用 matlab 工具箱产生各种窗函数; (1)矩形窗(Rectangle Window) 调用格式:w=boxcar(n),根据长度 n 产生一个矩形窗 w。 (2)三角窗(Triangular Window) 调用格式:w=triang(n) ,根据长度 n 产生一个三角窗 w。 (3)汉宁窗(Hanning Window) 调用格式:w=hanning(n) ,根据长度 n 产生一个汉宁窗 w。 (4)海明窗(Hamming Window) 调用格式:w=hamming(n) ,根据长度 n 产生一个海明窗 w。
四、实验报告要求 1. 绘制设计过程程序流图; 2. 写出算法源程序并注释; 3. 给出对应例子设计结果; 4. 绘制幅频特性图,分析;
五、思考 1. 如何编写以巴特沃思模拟低通滤波器为样本滤波器,设计基于双线性变换法 的低通数字带通滤波器? 2. 如何直接利用 matlab 工具箱设计数字滤波器?
三、
实验步骤
1. 矩形序列 (1)生成长度为 N 的矩形序列,
观察并记录生成的图形;
1
2
n=1:50 x=sign(sign(10-n)+1); close all; subplot(3,1,1);stem(x);title('单位矩形信号序列'); (2)研究其频率特性, H (e j ) 频特性,观察并记录生成的图形;
7
8
实验四
一、
FIR 数字滤波器的设计
实验目的
1. 掌握 FIR 数字滤波器设计的方法; 2. 熟悉软件编程实现的方法; 3. 认识到 FIR 数字滤波器的线性相位的概念; 4. 了解 IIR 和 FIR 数字滤波器的各自特点;
二、
实验要求
1. 了解和掌握用窗函数法设计 FIR 数字滤波器的过程; 2. 整理设计算法和设计步骤; 3. 编写和调试程序;
五、
思考
1. 如何编写重叠相加法算法程序? 2. 编写完成的基 2-FFT 算法程序,如何变成基 2-IFFT 算法程序?
实验三
一、实验目的 1. 2. 3. 4.
IIR 数字滤波器的设计
掌握 IIR 数字滤波器设计的方法; 熟悉软件编程实现的方法; 认识到数字滤波器在数字信号处理理论中的重要性; 了解 IIR 数字滤波器实现方法;
1
数字信号处理实验讲义
实验一
一、 1. 2. 3. 4.
序列、频谱、卷积
实验目的 掌握序列的输入方法; 熟悉不同序列的特征; 了解确定性信号谱分析的方法; 验证卷积的计算过程;
二、
实验要求
1. 利用 matlab 程序,生成几种常用的序列,如矩形序列,单位脉冲序列; 2. 绘制图形,观察序列特征; 3. 研究其频率特性,绘制图形,观察频谱特征; 4. 利用 matlab 程序,验证卷积的过程;
实验目的 掌握离散傅立叶变换的原理; 熟悉基 2-FFT 算法流程,学会编写算法程序; 学会利用 FFT 算法对信号进行频谱分析,以及快速卷积的实现; 认识到基 2-FFT 算法对离散傅立叶运算的速度提高的重要性;
二、
实验要求
1. 自己编写 FFT 算法程序,调试算法程序; 2. 仿照实例,利用 FFT 算法计算线性卷积; 3. 仿照实例,利用 FFT 算法分析信号频谱;
y(n) x(n) * h(n) (参考课本 266 页例 4.16),其中 hsolpsav 函数在 265
页。 5. 已知周期信号为 xa (t ) cos(20t ) ,试用 DFT 法分析其频谱。 (参考课本
5
6
258 页例 4.11)
四、
实验报告要求
1. 绘制算法流图; 2. 写出算法源程序,并注释; 3. 给出对应例子序列的实验结果;
3. 卷积过程
y ( n ) x ( n ) * h( n )
m
x ( m)h( n m)


n=1:50; %定义序列的长度是 50 hb=zeros(1,50); %注意:MATLAB 中数组下标从 1 开始 hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1; close all; subplot(3,1,1);stem(hb);title('系统 hb[n]'); m=1:50; %定义序列的长度是 50
3
4
A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*m*T).*sin(w0*m*T); subplot(3,1,2);stem(x);title('输入信号 x[n]'); y=conv(x,hb); subplot(3,1,3);stem(y);title('输出信号 y[n]');
四、
实验报告要求
1. 写出生成对应序列的 matlab 程序,并分析; 2. 记录生成的图形; 3. 描述对应的序列和频率特性的特征; 4. 验证卷积计算结果;
五、
思考:
1. 如何生成实指数序列?写出对应的 matlab 程序; 2. 编写程序验证卷积定律。
4
5
实验二
一、 1. 2. 3. 4.
基 2-FFT 算法编程
Fra Baidu bibliotek
p 2 1.5 103 rad / sec ,阻带起始频率为 st 2 3 103 rad / sec ,
阻带衰减不小于-50dB; (参考 545 页例 8.18) 4. 输出设计结果,绘制对应的幅频特性图,并记录;
四、
实验报告要求
1. 实验各种窗函数的产生; 2. 写出算法源程序并注释; 3. 给出对应例子设计结果; 4. 绘制幅频特性图,分析;
三、
实验步骤
1. 编写 matlab 程序,完成输入倒位序,输出自然顺序,按照时间抽选的基 2-FFT 算法程序的编写; 2. 调试程序;
n 1 0 n 31 3. 已知 x(n ) ,利用编写的程序求 DFT x(n) ; others 0 n 1 0 n 31 4. 已 知 x ( n ) , h(n) 2,1,1 , 试 用 重 叠 保 留 法 计 算 others 0
10
11
性;从而加深对频谱特性的理解。 3.设计数字滤波器和画出频率响应 根据语音信号的特点给出有关滤波器的性能指标:1)低通滤波器性能指标, fp=1000Hz,fc=1200 Hz, As=100dB,Ap=1dB;2)高通滤波器性能指标, fc=4800 Hz ,fp=5000 Hz As=100dB , Ap=1dB ;3 )带通滤波器性能指标, fp1=1200 Hz, fp2=3000 Hz, fc1=1000 Hz, fc2=3200 Hz, As=100dB, Ap=1dB。 学生可以用窗函数法设计上面要求的三种滤波器,在 MATLAB 中,可以利用函 数 fir1 设计 FIR 滤波器; 或者也可以用双线性变换法设计上面要求的三种滤波器, 在 MATLAB 中,可以利用函数 butte、cheby1 和 ellip 设计 IIR 滤波器;最后, 利用 MATLAB 中的函数 freqz 画出各滤波器的频率响应。 4.用滤波器对信号进行滤波 比较两种滤波器的性能, 然后用性能好的各滤波器分别对采集的信号进行滤 波,在 MATLAB 中,FIR 滤波器利用函数 fftfilt 对信号进行滤波,IIR 滤波器利 用函数 filter 对信号进行滤波。 5.比较滤波前后语音信号的波形及频谱 要求在一个窗口同时画出滤波前后的波形及频谱。 6.回放语音信号 在 MATLAB 中,函数 sound 可以对声音进行回放。其调用格式: sound(x,fs,bits); 可以感觉滤波前后的声音有变化。 三、实验报告要求 1.简述实验原理及目的。
2
3
(2) 研究其频率特性, H (e j )
n
xn e

jn
,分别研究其幅频特性和
相频特性,观察并记录生成的图形;
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 ('单位冲击信号的相位谱')
二、实验要求 1. 了解和掌握各种数字滤波器的设计方法; 2. 整理低通数字滤波器的设计算法和设计步骤;
6
7
3. 编写和调试程序;
三、实验步骤 1. 编写程序,以巴特沃思模拟低通滤波器为样本滤波器,设计基于双线性变换 法的低通数字低通滤波器; 2. 调试程序; 3. 要求设计数字巴特沃思低通滤波器,给定抽样频率 f s 10kHz ,要求在频率 小于 1kHz 的通带内,幅度特性下降小于 1dB ;在频率大于 f st 1.5kHz 的阻带 内,衰减大于 15dB (参考 449 页例 7.20 或者 454 页例 7.23) 4. 输出设计结果,以及对应的幅频特性图并记录;
8
9
(5)布拉克曼窗(Blackman Window) 调用格式:w=blackman(n) ,根据长度 n 产生一个布拉克曼窗 w。 (6)恺撒窗(Kaiser Window) 调用格式:w=kaiser(n,beta) ,根据长度 n 和影响窗函数旁瓣的β参数产生一个 恺撒窗 w。
2. 编写用窗函数法设计 FIR 低通滤波器程序,调试; 3. 设计指标为:抽样频率为 s 2 1.5 104 rad / sec ,通带截止频率为
相关文档
最新文档