2014-2015学年第2学期数字信号处理课程设计题目汇总信息工程学院通信工程系教研室二0一五年三月一日目录设计一正余弦信号的谱分析………………………1设计二数字滤波器的设计及实现………………………3设计三语音信号滤波处理…………………………………6设计四调制解调系统的设计及实现………………………7设计五倒频系统的软件实现及应用……………………11《数字信号处理课程设计》莆田学院信息工程学院1设计一正余弦信号的谱分析【一】设计目的1.用DFT实现对正余弦信号的谱分析;2.观察DFT长度和窗函数长度对频谱的影响;3.对DFT进行谱分析中的误差现象获得感性认识。【二】设计原理一、谱分析原理数字信号处理方法的一个重要用途是在离散时间域中确定一个连续时间信号的频谱,通常称为频谱分析,更具体地说,它也包括确定能量谱和功率谱。数字频谱分析可以应用在很广阔领域,频谱分析方法是基于以下的观测:如果连续时间信号)(tga是频带有限的,那么对其离散时间等效信号)(ng的DFT进行谱分析。然而,在大多数情况下,)(tga是在t范围内定义的,因此)(ng也就定义在n的无线范围内,要估计一个无限长信号的频谱是不可能的。实用的方法是:先让模拟连续信号)(tga通过一个抗混叠的模拟滤波器,然后把它采样成一个离散序列)(ng。假定反混叠滤波器的设计是正确的,则混叠效应可以忽略,又假设A/D变换器的字长足够长,则A/D变换中的量化噪声也可忽略。假定表征正余弦信号的基本参数,如振幅、频率和相位不随时间改变,则此信号的傅立叶变换)(jeG可以用计算它的DTFT得到nnjjengeG)()((1.1)实际上无限长序列)(ng首先乘以一个长度为M的窗函数)(nw,使它变成一个长为M的有限长序列,)()()(1nwngng,对)(1ng求出的DTFT)(1jeG应该可以作为原连续模拟信号)(tga的频谱估计,然后求出)(1jeG在20区间等分为N点的离散傅立叶变换DFT。为保证足够的分辨率,DFT的长度N选的比窗长度M大,其方法是在截断了的序列后面补上N-M个零。计算采用FFT算法。二、MATLAB函数介绍1.输入函数input()格式:R=input(string)功能:在屏幕上显示input括号后的’string’内容,提示用户从键盘输入某值,并将输入的值赋给R。例如,在命令窗口输入R=input(‘Howmanyapples’)会显示Howmanyapples从键盘输入3《数字信号处理课程设计》莆田学院信息工程学院2会显示R=32.一维快速傅里叶变换函数fft()格式:y=fft(x)y=fft(x,n)说明:fft函数用于计算矢量或矩阵的傅里叶变换。3.幅度函数abs()格式:abs(X)功能:对X取绝对值,当X是复数时,得到X的复模值。例1-1对余弦序列)4/cos()(nnx进行8点谱分析,绘出序列和幅频特性曲线。MATLAB命令如下:N=input('输入谱分析的长度')n=0:N-1;x=cos(pi*n/4);subplot(1,2,1),stem(n,x)%绘制序列的波形xlabel('n');ylabel('x1(n)');title('余弦序列');X=abs(fft(x,N));%求余弦序列的N点FFTsubplot(1,2,2)k=0:N-1;stem(k,X)%绘制序列的幅频特性曲线xlabel('k');ylabel('X(k)');string=[num2str(N),'点FFT幅频曲线'];title(string);程序运行结果如图1.1所示。图1.1例1-1的运行结果《数字信号处理课程设计》莆田学院信息工程学院3【三】设计内容1.对一个频率为10Hz,采样频率为64Hz的32点余弦序列进行谱分析,画出其频谱图;若将频率改为11Hz,其他参数不变,重新画出该序列的频谱图,观察频率泄漏现象,分析原因。2.考察DFT的长度对双频率信号频谱分析的影响。设待分析的信号为150)2sin()2sin(5.0)(21nnfnfnx(1.2)令两个长度为16的正余弦序列的数字频率为22.01f及34.02f。取N为四个不同值16,32,64,128。画出四个DFT幅频图,分析DFT长度对频谱分辨率的影响。3.在上题中若把两个正弦波的频率取得较近,令22.01f,25.02f,试问怎样选择FFT参数才能在频谱分析中分辨出这两个分量?【四】课程设计报告要求完成课程设计任务后,应按要求提交课程设计报告。设计报告应包含如下几个方面的内容。1.课程设计目的2.课程设计要求。3.详细设计过程。4.调试分析。5.结果分析与体会。6.附录或参考资料。设计二数字滤波器的设计及实现【一】设计目的1.熟悉IIR数字滤波器和FIR数字滤波器的设计原理和方法;2.学会调用MATLAB信号处理工具箱中的滤波器设计函数设计各种IIR和FIR数字滤波器,学会根据滤波要求确定滤波器指标参数;3.掌握用IIR和FIR数字滤波器的MATLAB实现方法,并能绘制滤波器的幅频特性、相频特性;4.通过观察滤波器的输入、输出信号的时域波形及其频谱,建立数字滤波的概念。【二】设计原理抑制载波单频调幅信号的数学表达式为))(2cos())(2cos(21)2cos()2cos()(000tfftfftftftsccc(2.1)《数字信号处理课程设计》莆田学院信息工程学院4其中,)2cos(tfc称为载波,cf为载波频率,)2cos(0tf称为单频调制信号,0f为调制正弦波信号频率,且满足cf0f。由(2.1)式可见,所谓抑制载波单频调制信号,就是两个正弦信号相乘,它有2个频率成分:和频cf+0f,差频cf-0f,这两个频率成分关于载波频率cf对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率cf对称的两根谱线。显然,当调制频率0f和(或)载波频率cf不同时,可以得到包含不同频率成分的单频调幅信号,将几路不同频率成分的单频调幅信号相加后形成混合信号,产生复合信号的函数mstg程序范例如下:functionst=mstg%产生信号序列st,并显示st的时域波形和频谱%st=mstg返回三路调幅信号相加形成的混合信号,长度N=800N=800;%信号长度N为800Fs=10000;T=1/Fs;Tp=N*T;%采样频率Fs=10kHz,Tp为采样时间t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10;%第1路调幅信号载波频率fc1=1000Hzfm1=fc1/10;%第1路调幅信号的调制信号频率fm1=100Hzfc2=Fs/20;%第2路调幅信号载波频率fc2=500Hzfm2=fc2/10;%第2路调幅信号的调制信号频率fm2=50Hzfc3=Fs/40;%第3路调幅信号载波频率fc3=250Hzfm3=fc3/10;%第3路调幅信号的调制信号频率fm3=25Hzxt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);%产生第1路调幅信号xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);%产生第2路调幅信号xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);%产生第3路调幅信号st=xt1+xt2+xt3;%三路信号相加,得到复合信号fxt=fft(st,N);%计算信号st的频谱%以下为绘图命令subplot(2,1,1);plot(t,st);grid;xlabel('t/s');ylabel('s(t)');axis([0,Tp,min(st),max(st)]);title('(a)s(t)的波形')subplot(2,1,2);stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b)s(t)的频谱')axis([0,Fs/8,0,1.2]);xlabel('f/Hz');ylabel('幅度');该函数产生由三路已知载波调幅信号相加构成的复合信号st,并绘图显示st的时域波形和幅频特性曲线如图2.1所示。《数字信号处理课程设计》莆田学院信息工程学院5(a)s(t)的波形(b)s(t)的频谱图2.1三路调幅信号st的时域波形和幅频特性曲线由图2.1可见,三路信号时域混叠无法在时域进行分离,但频域是分离的。容易看出,这三路调幅信号的载波频率分别为250Hz、500Hz和1000Hz,因此可以通过设计合适的滤波器的方法在频域分离,这就是本设计的目的。【三】设计内容1.调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;2.通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率;假定要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB,编程调用MATLAB滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线。3.用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。【四】课程设计报告要求完成课程设计任务后,应按要求提交课程设计报告。设计报告应包含如下几个方面的内容。1.课程设计目的2.课程设计要求。3.详细设计过程。4.调试分析。5.结果分析与体会。《数字信号处理课程设计》莆田学院信息工程学院66.附录或参考资料。设计三语音信号滤波处理【一】设计目的1.了解语音信号的产生、采集,能绘制语音信号的频率响应曲线及频谱图;2.学会用MATLAB对语音信号进行分析和处理;3.掌握用滤波器去除语音信号噪声的方法,观察去噪前后的语音信号。【二】设计原理1.语音信号的采集在MATLAB软件平台下,利用函数wavread()对语音信号采集,并记录采样频率和采样点数。将语音信号转换成计算机能够运算的有限长序列。wavread函数的调用格式如下:y=wavread(file)读取file所规定的wav文件,返回采样值放在向量y中。[y,fs]=wavread(file)采样值放在向量y中,fs表示采样频率(Hz)。2.用FFT作谱分析FFT即快速傅立叶变换,它是从DFT运算中发展起来的,利用系数nkNW的对称性和周期性减少运算量。长度为N的序列直接计算DFT需要2N次复乘和(1)NN次复加,而用FFT进行运算一般需要2log2NN次复乘和2logNN次复加,从而使DFT的运算大大简化。用FFT对连续信号进行谱分析的步骤如下:图3.1连续信号谱分析过程引入前置低通滤波器LPF是为了消除或减少时域连续信号转换成序列时可能出现的频谱混叠现象。)(nw表示时域有限的窗函数。3.设计滤波器去除语音信号的噪声)(nwSc(t))(kv)(nv)(nx)(txc)(txc)(jHaLPFA/DDFT《数字信号处理课程设计》莆田学院信息工程学院7通过wavread()函数将语音信号读入,通过频率采样及fft()产生信号,并对之加噪,通过窗函数法设计滤波器滤掉该语音信号的噪声,对比滤波前后的语音波形和频谱。【三】设计内容1.利用Windows下的录音机录制一段自己的话音,时间在1s内。然后在Matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数;2.画出语音信号的时域波形,对采样后的语音信号进行快速傅立叶变换,得到语音信号的频谱特性;对语音信号分别加入正弦噪声和白噪声,画出加噪信号的时域波形和频谱图;3.根据对加噪语音信号谱分析的结果,确定滤除噪声所需滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;4.用所设计的滤波器对采集的信号进行滤波,在同一个窗口画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;利用sound(x)回放语音信号