数字信号处理课程设计
设计一 信号的基本运算
一、设计目的
熟悉信号的基本运算,通过运用Matlab进行仿真,加深对信号基本运算的理解。通过对数据的处理,加深对Matlab中数据存取,数值运算,矩阵运算的方式及工作原理的了解。
二、设计原理
Matlab是以矩阵为基础的一种软件,其集成了数值运算、矩阵运算、信号处理和图形等众多功能。其中,对数据的存取都是以矩阵的方式进行的。Matlab工具箱中提供了很多已经编写好的函数,我们这用些函数的时候只需要从工具箱中调用就可以了,这些函数都十分的方便。如其中的wavread( )函数,我们可以用来从音频文件中获取数据,然后对这些数据进行运算,然后通过sound( )函数对音频文件进行回放;还有一些特殊矩阵的生成函数,如用函数zeros生成全0矩阵:格式 B=zeros(m,n)生成m×n的全0阵;用函数ones生成全1矩阵:格式 B=ones(m,n)生成m×n的全1阵;用函数rand生成随机矩阵:格式 B=rand(m,n)生成m×n的随机矩阵;用函数eye生成单位阵:格式 B=eye(m,n)生成m×n矩阵,其中对角线元素全为1,其他元素为0。通过类似这样的操作,我们就可以方便的对信号进行相应的处理。本次实验中,我们对一段音频信号,进行回音的模仿,然后经过上采样和下采样,反转的处理,并演示处理后的效果。
三、设计内容
本次实验,我们通过采样得到一段以采样频率为8192Hz的语音信号x(k),然后通过编写Matlab程序对这段语音信号进行回音模仿,采用函数
x(k)=x(k)+a*x(k-d),期中d为时延,a为时延信号的衰减幅度。然后对语音信号进 1
数字信号处理课程设计
行下采样x(k/2)、上采样x(2k)、反转x(-k)。下采样即在得到的语音信号的基础上,
隔一个k值取一个函数值;上采样,即在得到的信号的基础上进行每两个k值之
间进行插值;反转即把得到的信号的k变为-k。通过这样的处理后,回放语音信
号,观察效果,再看处理后的信号的时域波形。
四、结果显示
图1.1
五、结果分析及体会
通过实验中对语音信号的Matlab处理,学会了Matlab中对基本信号的运算,
2
数字信号处理课程设计
更加了解了信号的运算方式和算法,也加深了对Matlab处理信号基本运算的过程的了解。但是由于,给出的音频信号并不是很理想,所以在进行上采样和下采样后得到的波形的不是很理想,观察起来不是很明显。
六、附录
代码:
clear; fs=8192
[y,fs,bits]=wavread('08020'); %括号里填音频文件
[row,col]=size(y);
x1(1:3276,1)=0;x1(3277:row,1)=y(1:row-3276,1);%延迟
Y1=y+0.5*x1(1:row,:);%产生回声 subplot(3,2,1); plot(y);
title('原声音的波形'); xlabel('t');ylabel('y') subplot(3,2,2); plot(Y1);
sound(Y1,fs,bits); %回声
Y2(1:row/2,1)=y(1:2:row-1,1);%现在的值是原来每隔一个的值即抽取 title('产生回声的波形'); xlabel('t');ylabel('Y1') subplot(3,2,3); plot(Y2);
sound(Y2,fs/2,bits); %下采样x(k/2)
Y3(1:2:2*row-1,:)=y;%把现在的序列的奇数部分用原来的序列
Y3(2:2:2*row,:)=0;%现在的序列的偶数部分用法零插值
title('下采样后的波形'); xlabel('t');ylabel('Y2') subplot(3,2,4); plot(Y3);
sound(Y3,fs*2,bits); %上采样x(2k)
k=-(row-1):0;
Y4=y(row:-1:1,1);
title('上采样后的波形'); xlabel('t');ylabel('Y3') subplot(3,2,5);
plot(k,Y4);%翻转
title('反转后的波形');
xlabel('t');ylabel('Y4') clear;
3
数字信号处理课程设计
设计二 正余弦信号的谱分析
一,设计目的
用DFT实现对正余弦信号的谱分析;观察DFT长度和窗函数长度对频谱的影响;对DFT进行谱分析中的误差现象获得感性认识。
二、设计原理
数字信号处理方法的一个重要用途是在离散时间域中确定一个连续时间信号的频谱,通常称为频谱分析,更具体地说,它也包括确定能量谱和功率谱。数字频谱分析可以应用在很广阔领域,频谱分析方法是基于以下的观测:如果连续时间信号ga(t)是带限的,那么它的离散时间等效信号g(n)的DFT进行谱分析。
然而,在大多数情况下,ga(t)是在???t??范围内定义的,因此g(n)也就定
义在???n??的无线范围内,要估计一个无限长信号的频谱是不可能的。实用的方法是:先让模拟连续信号ga(t)通过一个抗混叠的模拟滤波器,然后把它采
样成一个离散序列g(n)。假定反混叠滤波器的设计是正确的,则混叠效应可以忽略,又假设A/D变换器的字长足够长,则A/D变换中的量化噪声也可忽略。
假定表征正余弦信号的基本参数,如振幅、频率和相位不随时间改变,则此信号的傅立叶变换G(ej?)可以用计算它的DTFT得到
G(e)?j??
n????g(n)e?j?n
实际上无限长序列g(n)首先乘以一个长度为M的窗函数w(n),使它变成一个长为M的有限长序列,g1(n)?g(n)w(n),对g1(n)求出的DTFT G1(ej?)应该可以作为原连续模拟信号ga(t)的频谱估计,然后求出G1(ej?)在0???2?区间等分为N点的离散傅立叶变换DFT。为保证足够的分辨率,DFT的长度N选的比窗长度M大,其方法是在截断了的序列后面补上N-M个零。计算采用FFT算法。
三、设计内容
本次设计是对正弦信号进行谱分析,对信号做DFT,观察信号的频谱。其内容有一下几方面:
1、对一个频率为10Hz,采样频率为64Hz的32点余弦序列进行谱分析,画出其频谱图;若将频率改为11Hz,其他参数不变,重新画出该序列的频谱图,观察频率泄漏现象,分析原因。
4
数字信号处理课程设计
2、考察DFT的长度对双频率信号频谱分析的影响。设待分析的信号为
x(n)?0.5sin(2?f1n)?sin(2?f2n)0?n?15 令两个长度为16的正余弦序列的数字频率为f1?0.22及f2?0.34。取N为四个不同值16,32,64,128。画出四个DFT幅频图,分析DFT长度对频谱分辨率的影响。
3、在上题中若把两个正弦波的频率取得较近,令f1?0.22,f2?0.25,试问怎样选择FFT参数才能在频谱分析中分辨出这两个分量?
四、结果显示
图2.1
5
数字信号处理课程设计
图
2.2
图2.3
6
数字信号处理课程设计
五、结果分析及体会
如图2.1所示,当正弦信号的频率为10Hz的时候,其频谱没有出现泄露现象,而当其频率为11Hz时其频谱就会出现泄漏现象。出现频谱泄漏的原因如下: 当正弦信号频率为10Hz,采样频率为64Hz时,则采样间隔为1/64,则正弦波的一个周期由(1/10)/(1/64)个点构成,则每个点占10/64个周期,如果对其进行,32点DFT时,加窗时刚好截断(10/64)*32=5个周期,就不会出现频谱泄漏现象;当正弦信号的频率为11Hz,采样周期为64Hz时,则采样间隔为1/64,则正弦波的一个周期由(1/11)/(1/64)个点构成,则每个点占11/64个周期,如果对其进行,32点DFT时,加窗时刚好截断(11/64)*32个周期,因为这个数不是整周期,期中有一部分必然被截断在窗外,这样就出线了频谱的泄漏。
如图2.2所以,当我们对双频率信号做谱分析的时候,做DFT运算的时候,DFT所取的点数越长,其频率分辨率越小。
如图2.3所示,对于双频率信号,其两个频率越是接近,我们观察其频谱的时候,若所取的DFT点数越长,越容易分辨出两个频率。因为我们在采样的时候必须满足采样定理,即Fs>=2fc,其中Fs为采样频率,fc为信号的截至频率,本次设计中,给出的两个频率分别为f1=0.22Hz,f2=0.25Hz,如要分辨出这两个频率,则DFT长度满足:N>=(2*0.25)/(0.25-0.22)=16.7,而我们一般做DFT的时候采用的长度为2的幂次方,所以当做32点DFT的时候我们就能很容易的分辨出这两个频率了。
通过这次设计,我们加深了对采样定理的理解,以及对信号进行DFT谱分析的过程。
7
数字信号处理课程设计
六、附录
代码:2.1
N=32;Fs=64;T=1/Fs; n=0:N-1;
y=cos(2*pi*10*n*T); subplot(3,1,1); stem(n,y,'.');
title('原余弦图形')
xlabel('n');ylabel('y') n=0:N-1;
Y=cos(2*pi*10*n*T); X1=abs(fft(Y,N)); k=0:N-1;
subplot(3,1,2);
代码:2.2
N=16;f1=0.22;f2=0.34; n=0:N-1;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);
y1=abs(fft(x,N)); subplot(4,1,1); k=0:N-1;
stem(k,y1,'.');
xlabel('k');title('16点频谱')
N=32;f1=0.22;f2=0.34; n=0:N-1;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);
y2=abs(fft(x,N)); subplot(4,1,2); k=0:31;
stem(k,y2,'.');
xlabel('k');title('32点频谱')
stem(k,X1,'.');
title('10hz fft频谱')
xlabel('k');ylabel('X1') n=0:N-1;
Y=cos(2*pi*11*n*T); X2=abs(fft(Y,N)); subplot(3,1,3); k=0:N-1;
stem(k,X2,'.');
title('11hz fft频谱') xlabel('k');ylabel('X2')
N=64;f1=0.22;f2=0.34; n=0:N-1;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);
y3=abs(fft(x,N)); subplot(4,1,3); k=0:N-1;
stem(k,y3,'.')
xlabel('k');title('64点频谱')
N=128;f1=0.22;f2=0.34; n=0:N-1;
x=0.5*sin(2*pi*0.22*n)+sin(2*pi*0.34*n);
y4=abs(fft(x,N)); subplot(4,1,4); k=0:N-1;
stem(k,y4,'.')
xlabel('k');title('128点频谱')
8
数字信号处理课程设计
代码:2.3
N=16;f1=0.22;f2=0.25;
n=0:N-1;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n); y1=abs(fft(x,N));
subplot(2,1,1);
k=0:N-1;
stem(k,y1,'.');
xlabel('k');title('16点频谱')
N=32;f1=0.22;f2=0.25;
n=0:N-1;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n); y2=abs(fft(x,N));
subplot(2,1,2);
k=0:N-1;
stem(k,y2,'.');
xlabel('k');title('32点频谱')
9
数字信号处理课程设计
设计三 数字滤波器的设计及实现
一、设计目的
熟悉IIR数字滤波器和FIR数字滤波器的设计原理和方法;学会调用MATLAB信号处理工具箱中的滤波器设计函数设计各种IIR和FIR数字滤波器,学会根据滤波要求确定滤波器指标参数;掌握用IIR和FIR数字滤波器的MATLAB实现方法,并能绘制滤波器的幅频特性、相频特性;通过观察滤波器的输入、输出信号的时域波形及其频谱,建立数字滤波的概念。
二、设计原理
抑制载波单频调幅信号的数学表达式为
s(t)?cos2?(f0t)cos2?(fct)??cos2?((fc?f0)t)?cos2?((fc?f0)t)? 其中,cos(2?fct)称为载波,fc为载波频率,cos(2?f0t)称为单频调制信号,f0为调制正弦波信号频率,且满足fc?f0。由(2.1)式可见,所谓抑制载波单频调制信号,就是两个正弦信号相乘,它有2个频率成分:和频fc+f0,差频fc-f0,这两个频率成分关于载波频率fc对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率fc对称的两根谱线。
三路信号时域混叠无法在时域进行分离,但频域是分离的。当我们对这三路信号的复合信号进行频谱分析是容易看出,这三路调幅信号的载波频率分别为250Hz、500Hz和1000Hz,所以可以通过设计不同的滤波器在频域分离。 12
三、设计内容
本次设计,内容如下:
1、调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;
2、要求将st中的三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率,要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB;
3、编程调用MATLAB滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线;
4、调用滤波函数filter,用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时 10
数字信号处理课程设计
域波形和频谱,观察分离效果。
四、结果显示
图3.1
11
数字信号处理课程设计
图3.2
五、结果分析及体会
首先我们调用mstg函数产生三路抑制载波调幅信号构成的复合信号,对其进行DFT频谱分析,可以看出三路信号的频率在不同的频带范围,如图3.1所示。这样,我们可以分别采用低通、带通、高通三种滤波器把他们从频域上分离出来,通过观察频谱,确定三种滤波器的参数如下:
低通滤波器:通带截至频率fp=300Hz,阻带截至频率fs=450Hz;
12
数字信号处理课程设计
带通滤波器:左通带截至频率fpl=400Hz,左阻带截至频率fsl=350Hz, 右通带截止频率fpr=600Hz,右阻带截止频率fsr=750Hz; 高通滤波器:通带截止频率fp=750Hz,阻带截至频率fs=650Hz。
根据所确定的各个滤波器的参数,设计不同的滤波器,然后调用不同的滤波器,就可以把这三路信号奋力出来。如图3.2所示,复合信号分别通过低通、带通和高通滤波器,得到了三路频率不同的信号。通过,这次设计,我们加深了对滤波器设计的步骤以及原理的了解,也对信号的频谱有了更进一步的了解。
13
数字信号处理课程设计
设计四 语音信号滤波处理
一、设计目的
了解语音信号的产生、采集,能绘制语音信号的频率响应曲线及频谱图;学会用MATLAB对语音信号进行分析和处理;掌握用滤波器去除语音信号噪声的方法,观察去噪前后的语音信号。
二、设计原理
1、语音信号的采集
在MATLAB软件平台下,利用函数wavread( )对语音信号采集,并记录采样频率和采样点数。将语音信号转换成计算机能够运算的有限长序列。Wavread()函数的调用格式如下:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。[y,fs]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz)。
2、用FFT作谱分析
FFT即快速傅立叶变换,它是从DFT运算中发展起来的,利用系数WNnk 的对称性和周期性减少运算量。长度为N的序列直接计算DFT需要N2次复乘和N(N?1)次复加,而用FFT进行运算一般需要Nlog2N次复乘和Nlog2N次复2
加,从而使DFT的运算大大简化。用FFT对连续信号进行谱分析的步骤如下:
引入前置低通滤波器LPF是为了消除或减少时域连续信号转换成序列时可能出现的频谱混叠现象。w(n)表示时域有限的窗函数。
14
数字信号处理课程设计
3、设计滤波器去除语音信号的噪声
通过wavread()函数将语音信号读入,通过频率采样及fft ( )产生信号,并对之加噪,通过窗函数法设计滤波器滤掉该语音信号的噪声,并对比滤波前后的语音波形和频谱。
三、设计内容
本次设计内容如下:
1、利用Windows下的录音机录制一段自己的话音,时间在1s内。然后在Matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数;
2、画出语音信号的时域波形,对采样后的语音信号进行快速傅立叶变换,得到信号的频谱特性,画出采样信号的时域波形和频谱图;
3、根据对语音信号谱分析的结果,确定滤除噪声所需滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;
4、用所设计的滤波器对采集的信号进行滤波,在同一个窗口画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化 ; 回放语音信号:sound(x)。
15
数字信号处理课程设计
四、结果显示
图4.1
16
数字信号处理课程设计
图4.2
五、结果分析及体会
本次设计首先是对语音信号的采集,并对其进行频谱分析,观察其频率所在的频带范围,然后加入正弦噪声信号和白噪声信号,回放加入噪声信号后的音频信号,听现在的声音和没加噪声信号之前的声音信号的不同之处,然后观察加入噪声后的信号频谱,通过对比,了解加噪前后频谱的变化,根据语音信号和噪
17
数字信号处理课程设计
声信号各自所占的频带范围确定实用何种滤波器,并确定滤波器的参数,这里确定的滤波器参数如下:
1、如图4.1所示,当加入的是正弦噪声信号的时候,噪声信号在低频和高频段有分量,故需要实用带通滤波器进行滤波,滤波器参数为:左通带截至频率fpl=150Hz,左阻带截至频率fsl=100Hz,右通带截至频率fpr=850Hz,右阻带截至频率fsr=900Hz。
2、如图4.2所示,当加入的是白噪声信号的时候,噪声信号只在低频段有明显的分量,故需要使用高通滤波器进行滤波,滤波器的参数为:通带截止频率fp=180Hz,阻带截止频率80Hz。
确定好滤波其的参数,设计滤波器,然后对加噪信号进行滤波,观察滤波后信号的频谱。可以看出,滤波后的频谱和原始的音频信号很接近。
18
一课程设计综合实验的目的与要求目的与要求1掌握数字信号处理基础课程的基本理论2掌握应用MATLAB进行数字信号处理的程序设计实验内…
福州大学至诚学院Matlab实践报告专业电子科学与技术班级08级1班姓名黄来奋学号210891205指导老师周老师20xx年5月2…
课程设计报告课程名称课题名称专业通信工程班级学号姓名指导教师20xx年12月25日湖南工程学院课程设计任务书课程名称数字信号处理课…
江南大学物联网工程学院课题数字信号处理综合设计报告设计题目信号处理系统综合设计专业通信工程班级通信0902姓名吴磊学号07020x…
数字信号处理课程设计报告班级电信0803班学号成绩设计一正余弦信号的谱分析一设计目的1用DFT实现对正余弦信号的谱分析2观察DFT…
青岛科技大学数字信号分析及数字滤波器设计题目张淑军指导教师刘云生学生姓名1108020xx0学生学号信息与科学技术学院信息工程11…
燕山大学课程设计说明书题目虚拟电子琴设计学院系电气工程学院年级专业学号学生姓名指导教师职称电气工程学院课程设计任务书说明1此表一式…
中南大学数字信号处理课程设计报告专业班级通信工程1201指导老师李宏姓名学号完成日期20xx年10月18日前言现代信号处理是将信号…
武汉理工大学数字信号处理课程设计说明书课程设计任务书学生姓名吴丹逸专业班级电信1202班指导教师祝立华王虹工作单位信息工程学院题目…
数字信号处理课程设计报告课题名称系别学号姓名班级指导教师20xx年10月25日目录摘录3正文4一设计内容4二设计原理4三设计过程7…