数字信号实习报告

时间:2019-05-14 19:26:27下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数字信号实习报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数字信号实习报告》。

第一篇:数字信号实习报告

数字信号上机实习报告

学院:机电学院 班级:071103-27 姓名:高玉环 指导老师:王晓莉

专题一

一、实验内容

设线性时不变(LTI)系统的冲激响应为h(n),输入序列为x(n)

1、h(n)=(0.8),0≤n≤4; x(n)=u(n)-u(n-4)

2、h(n)=(0.8)u(n), x(n)=u(n)-u(n-4)

3、h(n)=(0.8)u(n), x(n)=u(n)求以上三种情况下系统的输出y(n)。

二、实验目的

1、掌握离散卷积计算机实现。

2、进一步对离散信号卷积算法的理解。

三、原理及算法概要

算法:把冲激响应h(n)与输入序列x(n)分别输入到程序中,然后调用离散卷积函数y=conv(x.,h)即可得到所要求的结果。原理:

离散卷积定义为 y(n)nnnkx(k)h(nk)

 当序列为有限长时,则

n y(n)四.程序 x(k)h(nk)

k0x1=[1 1 1 1 ];nx1=0:3;h1=[1 0.8 0.64 0.8^3 0.8^4];nh1=0:4;y1=conv(x1,h1);subplot(3,3,1);stem(nx1,x1);title('序列x1');xlabel('n');ylabel('x1(n)');subplot(3,3,2);stem(nh1,h1);title('序列h1');xlabel('n');ylabel('h1(n)');subplot(3,3,3);stem(y1);title('序列y1');xlabel('n');ylabel('y1(n)');

x2=[1 1 1 1];nx2=0:3;nh2=0:1:20;h2=(0.8).^nh2;y2=conv(x2,h2);subplot(3,3,4);stem(x2);title('序列x2');xlabel('n');ylabel('x2(n)');subplot(3,3,5);stem(h2);title('序列h2');xlabel('n');ylabel('h2(n)');subplot(3,3,6);stem(y2);title('序列y2');xlabel('n');ylabel('y2(n)')

nx3=0:1:20;x3=1.^nx3;nh3=0:1:20;h3=(0.8).^nh3;y3=conv(x3,h3);subplot(3,3,7);stem(nx3,x3);title('序列x3');xlabel('n');ylabel('x3(n)');subplot(3,3,8);stem(nh3,h3);title('序列h3');xlabel('n');ylabel('h3(n)');subplot(3,3,9);stem(y3);title('序列y3');xlabel('n');ylabel('y3(n)' 六.程序运行结果

六.结果分析

有限长序列的离散卷积计算结果与理论值一致,而存在无限长序列做卷积时,由于在程序处理时是用比较长有限长序列代替的,所以与理论值基本相同。专题

二、离散傅里叶变换及其应用

一、实验内容

设有离散序列 x(n)=cos(0.48πn)+cos(0.52πn)分析下列三种情况下的幅频特性。

(1)采集数据长度N=16,分析16点的频谱,并画出幅频特性。

(2)采集数据长度N=16,并补零到64点,分析其频谱,并画出幅频特性。(3)采集数据长度N=64,分析46点的频谱,并画出幅频特性。观察三幅不同的幅频特性图,分析和比较它们的特点及形成原因。

二、实验目的

1、了解DFT及FFT的性质和特点

2、利用FFT算法计算信号的频谱。

三、关键算法

读入离散序列x(n)=cos(0.48πn)+cos(0.52πn),采集长度为N=16的数据,调用matlab中的函数fft(x,16)与fft(x,64)对其作离散傅里叶变换得到16点、64点的频谱。采集数据长度为N=64,调用matlab中的函数fft(x,46)对其作离散傅里叶变换得到46点的频谱。原理概要:

当抽样数N=2时,以下为算法蝶形图。

x(0)x(1)x(2)0WNM

X(0)W0N1W0NX(4)X(2)X(6)X(1)X(5)X(3)X(7)x(3)x(4)x(5)x(6)x(7)112WN10WNW0N11WN21WN1110WN2WN1W3N1W0N1

一般规律如下:

1、当N=2M时,则要进行M次分解,即进行M级蝶形单元的计算

2、按自然顺序输入,输出是码位倒置。

3、每一级包含N/2个基本蝶形运算

4、第L级有2L-1个蝶群,蝶群间隔为N/2

如果是Matlab实现的话,可用以下两种方法计算信号频谱

1、调用库函数为:fft(),直接计算X(k)L-

1L-1

000x0WNWNX0WNX101N1x1WWWNNN

2、进行矩阵运算0N1N1N1XN1xN1WWWNNN四.程序

n=0:1:15;x1=cos(0.48*3.14*n)+cos(0.52*3.14*n);g1=abs(fft(x1,16));subplot(3,2,1);stem(x1);title('x1');subplot(3,2,2);stem(g1);title('g1');

n2=0:1:15;x2=cos(0.48*3.14*n2)+cos(0.52*3.14*n2);x2=[x2 zeros(1,48)];g2=abs(fft(x2,64));subplot(3,2,3);stem(x2);title('x2');subplot(3,2,4);stem(g2);title('g2');

n3=0:1:64;x3=cos(0.48*3.14*n3)+cos(0.52*3.14*n3);g3=abs(fft(x3,46));subplot(3,2,5);stem(x3);title('x3');subplot(3,2,6);stem(g3);title('g3');

五.程序运行结果

六.结果分析

N 点DFT的频谱分辨率是2 π/N。一节指出可以通过补零观察到更多的频点,但是这并不意味着补零能够提高真正的频谱分辨率。这是因为x[n] 实际上是x(t)采样的主值序列,而将x[n]补零得到的x'[n] 周期延拓之后与原来的序列并不相同,也不是x(t)的采样。因此是不同离散信号的频谱。对于补零至M点的x'的DFT,只能说它的分辨率2 π/M仅具有计算上的意义,并不是真正的、物理意义上的频谱。频谱分辨率的提高只能通过提高采样频率实现。

专题三 IIR滤波器的设计

一、实验内容

1、设计一个Butterworth数字低通滤波器,设计指标如下:

通带截止频率:0.2π,幅度衰减不大于1分贝

阻带截止频率:0.3π,幅度衰减大于15分贝

2、让不同频率的正弦波通过滤波器,验证滤波器性能。

3、分析不同滤波器的特点和结果。

4、编程设计实现IIR滤波器。

二、实验目的

掌握不同IIR滤波器的性质、特点。

通过实验学习如何设计各种常用的IIR滤波器,以便在实际工作中能根据具体情况使用IIR滤波器。

三、算法

算法:输入通带截止频率Wp,阻带截止频率Ws,通带衰减Rp,阻带衰减Rs,通过这些数值调用[N Wn]=buttord(Wp,Ws,Rp,Rs)函数计算巴特沃斯数字滤波器的阶数N和截止频率wn,再根据阶数N通过函数[b,a]=butter(N,Wn),即可得到所要的巴特沃斯滤波器。设计一个正弦波信号,再调用函数A=filter(b,a,I)让正弦波信号通过滤波器,得到滤波信号。

四.程序

Wp=0.2;Ws=0.3;Rp=1;Rs=15;[N Wn]=buttord(Wp,Ws,Rp,Rs)%用于计算巴特沃斯数字滤波器的阶数N和截止频率wn

[b,a]=butter(N,Wn);%计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a,设计所需的低通滤波器 [h,omega]=freqz(b,a,512);%返回量h包含了离散系统频响,调用中若N默认,默认值为512。

plot(omega/pi,20*log10(abs(h)));grid;xlabel('omega/pi');ylabel('Gain,dB');title('IIR Butterworth Lowpass Filter');

Wp=0.2;Ws=0.3;Rp=1;Rs=15;[N1,Wn1]=buttord(Wp,Ws,Rp,Rs);%用于确定阶次

[b,a]=butter(N,Wn);%用于直接设计巴特沃兹数字滤波器,即为IIR滤波器 %freqz(b,a);t=1:300 I=sin(0.1*pi*t)+sin(0.4*pi*t);%设计正弦波 plot(I);figure;A=filter(b,a,I);%正弦波通过滤波器 plot(A);五.程序运行结果

N = 6 Wn = 0.2329 N1 = 6 Wn1 = 0.2329

六.结果分析

Butterworth滤波器在通带内的频率特性是平坦的,并且随着频率的增加而衰减。正弦信号在经过IIR滤波器滤波后,高频信号被滤除,低频信号被保留了下来。

专题四 用窗函数设计FIR 滤波器

一、实验内容

选取合适窗函数设计一个线性相位FIR低通滤波器,使它满足如下性能指标: 通带截止频率:ωp=0.5π,通带截止频率处的衰减不大于3分贝; 阻带截止频率:ωs=0.66π,阻带衰减不小于40分贝。

二、实验目的

1、掌握用窗函数法设计FIR滤波器的原理和方法。

2、熟悉线性相位滤波器特性。

3、了解各种窗函数对滤波器特性的影响。

三、算法

算法:通过其通带截止频率ωp与阻带截止频率ωs算出其过渡带的宽度与滤波器的长度,从而得到理想滤波器的截止频率,根据所要求的理想滤波器,得到hd(n)。由于其通带截止频率处的衰减不大于3分贝与阻带衰减不小于40分贝,我选择最接近的汉宁窗,最后调用函数h=hd.*win 及freqz(h,1,512)得到实际汉宁窗的响应和实际滤波器的幅度响应。

四.程序

wp =0.5*pi;ws=0.66*pi;wdelta =ws-wp;%过渡带宽度 N=ceil(8*pi/wdelta)%滤波器长度 if rem(N,2)==0 N=N+1;end Nw =N;wc =(wp+ws)/2;%理想低通滤波器的截止频率 n =0: N-1;alpha =(N-1)/2;m =n-alpha+0.00001;hd =sin(wc*m)./(pi*m);%一个响应 win =(hanning(Nw))';%汉宁窗

h=hd.*win;%实际汉宁窗的响应

freqz(h,1,512);%实际滤波器的幅度响应

五.程序运行结果

N = 50

五、综合

一、实验内容

录制一段自己的语音信号,时间为10s左右,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用MATLAB设计一信号处理系统界面。二.算法

调用函数function pushbutton1_Callback(hObject, eventdata, handles)实现一个信号处理系统界面。选择左键时,用双线性变换法设计滤波器来对信号进行处理,选择右键时,用窗函数法设计滤波器来对信号进行处理。读取语音信号,对语音信号进行f=8000的频率进行采样,调用函数y1=fft(x1,2048)对所采集的点做2048点FFT变换。先设计butterworth模拟滤波器,再用双线性变换法实现模拟滤波器到数字滤波器的转换。最后调用函数f1=filter(bz,az,x2)对加了噪声的语音信号进行滤波,得到滤波后的频谱图。

三.程序

function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1(see GCBO)

% eventdata reserved为爱痴狂.wav');t=(0:length(x1)-1)/8000;

y1=fft(x1,2048);%对信号做2048点FFT变换 f=fs*(0:1023)/2048;%figure(1);

axes(handles.axes1);%subplot(2,2,1);

plot(t,x1);%做原始信号的时域波形 grid on;axis tight;

title('原始语音信号');

xlabel('time(s)');ylabel('幅度');%subplot(2,2,2);axes(handles.axes2);

plot(f,abs(y1(1:1024)))%做原始信号的FFT频谱 grid on;axis tight;

title('原始语音信号的FFT频谱');xlabel('Hz');ylabel('幅度');%双线性变换法设计的巴特沃斯滤波器 A1=0.05;A2=0.10;

d=[A1*cos(2*pi*6000*t)+A2*sin(2*pi*8000*t)]';%x2=x1;[n]=size(d);

x2(1:n,1)=x1(1:n,1)+d(1:n,1);%x2(1:n,2)=x1(1:n,2);%%%%%% %wp=0.10*pi;%ws=0.20*pi;wp=wp1*pi;ws=ws1*pi;Rp=1;Rs=15;Ts=1/Fs;

wp1=2/Ts*tan(wp/2);%将模拟指标转换为数字指标 ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器最小阶数

[Z,P,K]=buttap(N);%创建butterworth模拟滤波器 [Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);

[bz,az]=bilinear(b,a,Fs);%用双线性法实现模拟到数字的转换

[H,W]=freqz(bz,az);%绘制频率响应曲线 axes(handles.axes3);%subplot(2,2,3);

plot(W*Fs/(2*pi),20*log10(abs(H)));grid on;axis tight;title('Butterworth滤波');

xlabel('频率(Hz)');ylabel('频率响应');

f1=filter(bz,az,x2);%figure(2);

axes(handles.axes4);%subplot(2,2,1);

plot(t,x2);%画出滤波前的时域图 grid on;axis tight;title('滤波前的时域波形');axes(handles.axes5);%subplot(2,2,2);

plot(t,f1);%画出滤波后的时域图 grid on;axis tight;title('滤波后的时域波形');

y3=fft(f1,2048);y2=fft(x2,2048);axes(handles.axes6);%subplot(2,2,3);

plot(f,abs(y2(1:1024)));%画出滤波前的频谱图 grid on;axis tight;title('滤波前的频谱');

xlabel('Hz');ylabel('幅度');axes(handles.axes7);%subplot(2,2,4);

plot(f,abs(y3(1:1024)));%画出滤波后的频谱图 grid on;axis tight;title('滤波后的频谱');

xlabel('Hz');ylabel('幅度');

%---Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2(see GCBO)

% eventdata reserved-to be defined in a future version of MATLAB

% handles structure with handles and user data(see GUIDATA)global f2 global fs global x2 global x1 global wp2 global ws2

t=(0:length(x1)-1)/8000;y1=fft(x1,2048);%对信号做2048点FFT变换 f=fs*(0:1023)/2048;Fs=fs;%figure(1);

axes(handles.axes1);plot(t,x1);%做原始信号的时域波形 grid on;axis tight;title('原始语音信号');xlabel('time(s)');ylabel('幅度');

axes(handles.axes2);plot(f,abs(y1(1:1024)));%做原始信号的FFT频谱 grid on;axis tight;title('原始语音信号的FFT频谱');xlabel('Hz');ylabel('幅度');%窗函数设计滤波器 t=(0:length(x1)-1)/40000;

A1=0.05;A2=0.10;

d=[A1*cos(2*pi*8000*t)+A2*sin(2*pi*10000*t)]';%x2=x1;[n]=size(d);

x2(1:n,1)=x1(1:n,1)+d(1:n,1);%%%%% wp=wp2;ws=ws2;wdelta=ws-wp;

N=ceil(8*pi/wdelta);%取整 wn=(wp2+ws2)*pi/2;

[bz,az]=fir1(N,wn/pi,hamming(N+1));%选择窗函数,并归一化截止频率 [H,W]=freqz(bz,az);%绘制频率响应曲线 axes(handles.axes3);%subplot(2,2,3);

plot(W*Fs/(2*pi),20*log10(abs(H)));grid on;axis tight;title('Hanming滤波');

xlabel('频率(Hz)');ylabel('频率响应');%f2=filter(bz,az,x2);f2=filter(bz,az,x2);%figure(3);

axes(handles.axes4);plot(t,x2);

grid on;axis tight;title('滤波前的时域波形');axes(handles.axes5);plot(t,f2);

grid on;axis tight;title('滤波后的时域波形');f=fs*(0:2047)/4096;y3=fft(f2,4096);%f=fs*(0:2047)/4096;y2=fft(x2,4096);

axes(handles.axes6);plot(f,abs(y2(1:2048)));grid on;axis tight;title('滤波前的频谱');xlabel('Hz');ylabel('幅度');

axes(handles.axes7);plot(f,abs(y3(1:2048)));grid on;axis tight;title('滤波后的频谱');

xlabel('Hz');ylabel('幅度');

五、运行结果

图形界面(按下获取波形IIR所得结果)

按下选择音乐片段按钮显示如下:

按下获取波形FIR所得图形:

实习体会: 数据信号处理是一种很有用的课程,但课程本身理论性强、公式推导较多、概念比较抽象,通过上机的实践可加深对课本理论知识的理解和认识。通过学习可以设计出良好的算法,高效地组织处理数据。这门课在学习的时候做过类似的程序设计,想着应该不会太难,可是拿到题目了以后,才发现我们所掌握的知识和实际问题有些联系不上,才发现理论与实际相结合说起来容易,要做起来需要很多的练习实践才能达到。由于时间过得有点久了,很多知识都生疏了,但通过一段时间的学习后,把原来学的东西都拣起来了不少,看起程序来也得心应手了。这一阶段的实习让我体会到了能读懂程序和自己编写程序的差距是很大的,理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,经过大量的亲身实践后才能够得到更深的掌握,最终达到融会贯通的效果。有很多程序都是我和同学们一起研究商量才弄懂题目思想并做出来的,我感到了与他人合作的重要性,集思广益才能够完成某些任务的。通过本次上机实习,让我们亲自参与到数字信号处理的实践中,通过亲自验证理论并设计系统,进一步加深对这门课程的理论应用能力。实验以matlab为平台,让我不但对理论有了新的认识和理解,而且对matlab处理信号的应用能力得到了提高。

第二篇:数字信号处理实习感想

数字图像处理个人体会

这次实习让我学会了如何用MATLAB语句来实现一些功能,虽然用起来还不是很熟练,但收获不少。最重要的一点是让我对图像处理的原理有了更深一层的理解。

此次实习的主要任务是用MATLAB创建一个软件平台,在该平台上设定好数字图像处理的一些相关功能。这些功能包括数字图像处理中所学到的各种处理图像的方法,我们将它们划分为四个模块:1)图像增强与恢复;2)彩色图像处理;3)形态学图像处理;4)图像提取与分割。这些基本的图像处理方法都可以用我们学过的MATLAB语句来实现,只需要设计好版面,并处理好软件的细节功能就可以了。之后我们就分配任务,每个人做两个模块,我负责的是图形增强与恢复和图像提取与分割两个部分。刚开始的时候由于我对MATLAB语言的不熟练,所以还不能很容易地就把每个函数建立起来,不过经过了一段实际操作后,只要明白了图像处理的方法做起来都很顺手了!

我们完成了数字图像处理软件的功能后,并没有满足,还拓展了一些功能,比如说图像的打开和保存,对于一些有影响到处理效果的参数还设置了输入框。此外,有些软件总是会存在很多的漏洞,像是图像处理完后下一次打开原图像部分还会出现上一次处理的图像之类的种种问题。在老师的指导和帮助下,我们也都将之逐一地完善了。

在实习过程中,我们并没有很严格的计划工作时间,但整体效率还是很高的,相对于别的组来说,我们完成得算比较快的。当然,这主要归功于我们组的另外一位很会查资料,所以就算再棘手的问题也总是能很快就被解决。而我比较擅长的就是版面设计,做一二界面需要的时间很短,我们在做这个软件的过程中没有因为分工争吵,一切都进行得很顺利!

实习初期我们遇到了很多困难,便会有种不知所措的感觉,不过在接下去的实习过程中,困难总是会被一一克服,原本头痛的问题最后都会给我们新的收获。做完这个数字图像处理的实习,不仅仅让我对本学期学过的图像处理方法的原理了解得更透彻了,而且对MATLAB的操作也变得更加熟练。除此之外,我们还在实习的最后学会了怎样在MATLAB中打包文件,这个方法弄明白了就很简单了,不明白的时候就觉得很复杂。就跟我们每次做实习的时候是一个道理,每次还没开始做的时候,总是会感到很有压力,对于自己不了解的东西总是会存在恐惧,但是经过一段时间的思考和认识后,就会突然顿悟到其实它并没有想象中的困难。或许这就是学习的精神吧!

最后,我们要感谢院里给我们提供了这次实习的机会,感谢黄忠朝老师和玉罡老师指导我们完成了这次实习。希望以后每一次实习都可以学到更多更有用的知识。

第三篇:数字信号实验报告

科目:

数字信号处理

姓名:

殷超宇

班级:

14060142 学号:

1406014226

实验题目:Z Z 变换及离散时间系统分析

指导教师:

张志杰

分数:

实验题目:

Z 变换及离散时间系统分析

实验目的:

1、通过本实验熟悉 Z 变换在离散时间系统分析中的地位和作用。

2、掌握并熟练使用有关离散系统分析的 MATLAB 调用函数及格式,以深入理解离散时间系统的频率特性。

实验内容:

给定系统)8.0 /(2.0)(2   z z H,编程并绘出系统的单位阶跃响应 y(n),频率响应)e(jwH,并给出实验数据与代码。

参考代码:

详见《数字信号处理上机实验指导》(班群里有)

实验代码(代码从 B MATLAB)

软件复制粘贴于此处,教师检查重点): :

clear;

x=ones(100);% x(n)=1,n=1~100;

t=1:100;% t 用于后面的绘图;

b=[0,0,-0.2];% 形成向量 b;

a=[1,0,0.8];% 形成向量 a;

y=filter(b,a,x);% 求所给系统的阶跃响应;

plot(t,y,“k-”);grid on;

ylabel(“ y(n)”)

xlabel(“n”)

实验数据(图像或表格复制粘贴于此处,教师检查重点):

实验心得与收获(可手写):

a,b 两个向量转化成符合的格式。这是一个震荡衰减的信号,信号越来越弱,通过实验,对 matlab 的使用,有了进一步的了解。

第四篇:数字信号处理(DSP)课程设计报告

中南大学

数字信号处理课程设计报告

专业班级: 通信工程1201

指导老师:李宏

名:

号:

完成日期:2014年10月18日

现代信号处理是将信号表示并处理的理论和技术,而数字信号处理与模拟信号处理是信号处理的子集。在本次课程设计中主要以数字信号处理来解决问题。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。

数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户接口、连接其它编程语言的程序等。

一、课程设计目的:

1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。

2.掌握信号分析与处理的基本方法与实现

3.提高综合运用所学知识独立分析和解决问题的能力; 4.熟练使用一种高级语言进行编程实现。

二、课程设计题目:

(一):

1)生成信号发生器:能产生频率(或基频)为10Hz的周期性正弦波、三角波和方波信号。绘出它们的时域波形

2)为避免频谱混叠,试确定各信号的采样频率。说明选择理由。3)对周期信号进行离散傅立叶变换,为了克服频谱泄露现象,试确定截取数据的长度,即信号长度。分析说明选择理由。4)绘出各信号频域的幅频特性和相频特性

5)以正弦周期信号为例,观察讨论基本概念(频谱混叠、频谱泄漏、整周期截取等)。

(二):

已知三个信号aip(n),经调制产生信号s(n)aip(n)cos(in/4),其中ai为

i1常数,p(n)为具有窄带特性的Hanning信号。将此已调信号通过信道传输,描述该信道的差分方程为

y(n)1.1172y(n1)0.9841y(n2)0.4022y(n3)0.2247y(n4)0.2247x(n)0.4022x(n1)0.9841x(n2)1.1172x(n3)x(n4)

得到接收信号y(n)s(n)*h(n)

1)分析Hanning信号p(n)的时域与频域特性 2)分析已调信号s(n)的时域与频域特性 3)分析系统的单位脉冲响应h(n)4)分析接收信号y(n)的频谱

5)设计带通滤波器从接收信号y(n)中还原出三个已调信号。

3(三):图像信号相关处理

1)读入一幅彩色图像

2)将彩色图像进行三原色分解,分解出R、G、B分量,并用图像显示出来

3)将彩色图像灰度化,转换为灰度图像并显示

4)对灰度图像用几种典型的边缘检测算子进行边缘检测,显示检测出的边缘。

三、调试及结果分析(截图):

(一):

1)

频率为10Hz的周期性正弦波:

频率为10Hz的周期性三角波:

频率为10Hz的周期性方波:

2)采样频率不能过低,必须fs>=2fm,即采样频率必须大于或等于最高截止频率的二倍(对采样频率的要求,即采样频率要足够大,采样的值要足够多,才能不失真的恢复原信号)。题目中信号频率为10Hz,则采样频率应该大于或等于20Hz,这样的话采样离散信号才能够无失真的恢复到原来的连续信号。3)截取数据长度(即信号长度)N=T*fs=2 4)

频率为10Hz的周期性正弦波的幅频特性和相频特性:

频率为10Hz的周期性三角波的幅频特性和相频特性:

频率为10Hz的周期性方波的幅频特性和相频特性:

5)

频谱混叠:一个信号的最高频率比如是fmax,那它的频谱就是在-fmax~fmax之间有值。对这个信号进行时域采样(就是取离散的点),设采样率为fs。有一个定理:对信号进行时域fs的采样,信号的频谱就会在频域以fs为周期重复。那么如果fs>=2fmax,可想而知,频域宽度为fs的频带内,是可以放得下一整个完整的频谱的,所以不会混叠。如果fs<2fmax,频域每间隔fs就会出现一个频谱,必定会有相邻的频谱叠在一起的情况,就是混叠。

频谱泄露:对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱做了截短,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄露”出去的,这种现象称 为频谱“泄露”。

整周泣截取:与周期函数一样,周期信号是每隔时间T以后,信号重复出现。T就称为信号的周期。

N取100时:

N取200时:

(二):

1)Hanning信号p(n)的时域与频域特性:

2)已调信号s(n)的时域与频域特性:

3)系统的单位脉冲响应h(n):

4)接收信号y(n)的频谱:

5)(设计带通滤波器)从接收信号y(n)中还原出三个已调信号:

(三):

1)读入一幅彩色图像:

2)将彩色图像进行三原色分解,分解出R、G、B分量,并用图像显示出来:

3)将彩色图像灰度化,转换为灰度图像并显示:

4)对灰度图像用几种典型的边缘检测算子进行边缘检测,显示检测出的边缘:

四、源程序:

(一): 1):

周期性正弦波: fs=10;w=2*pi*fs;t=0:0.01:2;y=sin(w*t);plot(t,y);grid on;axis([0 2-2 2]);title('正弦信号');

周期性三角波: t=-0.3:0.01:0.3;y=sawtooth(10*pi*t,0.5);plot(t,y);grid on;axis([-0.3 0.3-1.5 1.5]);title('三角波信号')

周期性方波: t=0:0.001:0.5;y=square(2*pi*10*t,50);plot(t,y);grid on;axis([0 0.5-1.5 1.5]);title('周期方波信号')

4):

周期性正弦波: t=0:0.001:0.999;subplot(311)a=sin(20*pi*t);plot(t,a);grid on;title('sin20pi*t');xlabel('T');b=fft(a);subplot(312);stem(t*1000,abs(b)/1000,'fill');xlabel('Hz');axis([-10 50 0 0.5]);grid on;title('幅频特性')subplot(313)stem(t*1000,angle(b)/1000,'fill');xlabel('Hz');axis([0 100-0.004 0.004])grid on;title('相频特性')

周期性三角波: t=-0.3:0.01:0.3;a=sawtooth(10*pi*t,0.5);subplot(311)plot(t,a);grid on;axis([-0.3 0.3-1.5 1.5]);title('三角波信号')b=fft(a);subplot(312)stem(t*100,abs(b)/100,'fill');axis([0 50 0 0.5]);grid on;title('幅频特性')subplot(313)stem(t*100,angle(b)/100,'fill');axis([0 25-0.04 0.04]);grid on;title('相频特性')周期性方波: t=0:0.001:0.5;a=square(2*pi*10*t,50);subplot(311)plot(t,a);grid on;axis([0 0.5-1.5 1.5]);title('周期方波信号')b=fft(a);subplot(312)stem(t*100,abs(b)/100,'fill');axis([0 50 0 4]);grid on;title('幅频特性')subplot(313)stem(t*100,angle(b)/100,'fill');axis([0 5-0.04 0.04]);grid on;title('相频特性')

5):

N=100(或:N=200);T=1;

t=linspace(0,T,N);x=sin(2*pi*10*t);dt=t(2)-t(1);f=1/dt;X=fft(x);F=X(1:N/2+1);f=f*(0:N/2)/N;subplot(2,1,1)plot(t,x)

title('x=sin(2*pi*50*t)')xlabel('t')

ylabel('Amplitude')axis([0,1,-1,1]);subplot(2,1,2)plot(f,abs(F))xlabel('Frequency');ylabel('|X(e^{jw})|')

(二): 1): N=100;n=0:99;Rn=[ones(1,N-1)zeros(1, 101-N)];pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;subplot(211);stem(n,pn);title('汉宁信号');[H,w]=freqz(pn,1,200);magH=abs(H);length(w);length(H);magHdB=20*log10(magH);subplot(212);plot(w/pi,magHdB);2):

N=100;n=0:99;

Rn=[ones(1,N-1)zeros(1,101-N)];pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;

sn=2*pn.*(cos(pi*n/4)+4*pn.*cos(pi*n/2)+6*pn.*cos(3*pi*n/4));subplot(211);stem(n,sn);

title('已调信号');

[H,w]=freqz(sn,1,200);magH=abs(H);length(w);length(H);

magHdB=20*log10(magH);subplot(212);plot(w/pi,magHdB);

3):

a=[1-1.1172 0.9842-0.4022 0.2247];b=[0.2247-0.4022 0.9842-1.1172 1];n=1:49;

hn=impz(b,a,n);stem(n,hn,'k','f');ylabel('脉冲响应 ¨h(n)');xlabel('序号(n)');title('单位脉冲响应');

4):

a=[1-1.1172 0.9842-0.4022 0.2247];b=[0.2247-0.4022 0.9842-1.1172 1];k=0:0.1:100;p=0.5-0.5*cos(2*pi*k./74);s=p.*(cos(pi*k/4)+2*cos(pi*k/2)+3*cos(3*pi*k/4));y=filter(b,a,s);z1=fft(y,256);plot([-128:127],fftshift(abs(z1)));axis([-30 30 0 120]);grid on;

5):

wp=200;ws=200;wp1=[0.2,0.3];ws1=[0.1,0.4];wp2=[0.4,0.6];ws2=[0.3,0.7];wp3=[0.7,0.8];ws3=[0.6,0.9];ap=1;as=20;N=100;n=0:99;

Rn=[ones(1,N-1)zeros(1,101-N)];pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;

sn=2*pn.*(cos(pi*n/4)+4*pn.*cos(pi*n/2)+6*pn.*cos(3*pi*n/4));a=[1-1.1172 0.9841-0.4022 0.2277];b=[0.2277-0.4022 0.9841-1.1172 1];yn=filter(b,a,sn);

[n,wc]=cheb1ord(wp,ws,ap,as);[bz,az]=cheby1(n,ap,wc);subplot(311)bz1=bz;az1=az;x1=filter(bz1,az1,yn);plot(x1);subplot(312)bz2=bz;az2=az;x2=filter(bz2,az2,yn);plot(x2);subplot(313)bz3=bz;az3=az;x3=filter(bz3,az3,yn);plot(x3)

(三):

1):

clc;a=imread('F:星空.jpg');imshow(a),title('原彩色图像');2):

clc;a=imread('F:星空.jpg');subplot(3,2,1),imshow(a),title('原彩色图像');

ar=a(:,:,1);ag=a(:,:,2);ab=a(:,:,3);subplot(3,2,4),imshow(ar),title('R');

subplot(3,2,5),imshow(ag),title('G');subplot(3,2,6),imshow(ab),title('B');3):

clc;a=imread('F:星空.jpg');subplot(2,1,1),imshow(a),title('原彩色图像');b=rgb2gray(a);subplot(2,1,2),imshow(b),title('灰度图像');4):

a=imread('F:星空.jpg');b=rgb2gray(a);b1=edge(b,'sobel');b2=edge(b,'prewitt');b3=edge(b,'roberts');b4=edge(b,'log');b5=edge(b,'canny');subplot(3,2,1);imshow(b);title('灰度图像');subplot(3,2,2);imshow(b1);title('Sobel边缘检测');subplot(3,2,3);imshow(b2);title('Prewitt边缘检测');subplot(3,2,4);imshow(b1);title('Roberts边缘检测');subplot(3,2,5);imshow(b1);title('LoG边缘检测');subplot(3,2,6);imshow(b1);title('Canny边缘检测');

五、总结与心得体会:

在课程设计的这段时间,我获益匪浅,不但进一步掌握了数字信号处理的基础知识及MATLAB的基本操作,还详细了解并掌握了信号的产生、采样及频谱分析的方法。我进一步了解到凡事都需要耐心,细心仔细是成功的重要保证之一。虽然在做的过程中遇到了一些问题,但是在研究生学姐、班级同学的帮助以及自己的努力下,问题最终都得以解决。这次课程设计对我各方面的能力有了很大的提高,对我以后的工作、实践都有很大的帮助。

在此次课程设计当中,我经常把C语言的语法知识照搬到MATALAB设计中,从而导致调试失败,所以下次用此类语言做课程设计时,应事先学习下这类语言的基本语法,以免与其他语言相混淆。还有就是有些不定参数存在时,可先取定值,用于调试,这样可以节约调试时间,从而提高效率。

本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力,使我在各个方面都得到了锻炼。以后有这样的机会一定会更加的很好利用,它不仅可以提高学习的针对性而且可以很好的锻炼动手能力以及自己的逻辑设计能力和处理问题的能力,希望在以后的学习生活中会有更多的机会来加强这方面的能力。

参考文献:

[1] 《数字信号处理(第二版)》.丁玉美等 西安电子科技大学出版社 [2] 《数字信号处理及其MATLAB实现》,陈怀琛等译,电子工业出版社;

[3] 《MATLAB及在电子信息课程中的应用》,陈怀琛等,电子工业出版社

第五篇:中南大学《数字信号处理》课程设计报告

中南大学

《现代信号处理》 课程设计报告

学 院: 专业班级:

姓 名:

学 号:

指导老师:

设计时间:

前 言

《现代信号处理》课程设计与《现代信号处理》课程配套,是通信工程类专业的重要实践环节。数字信号处理是每一个电子信息科学工作者必须掌握的重要知识。它采用计算机仿真软件,以数值计算的方法对信号进行分析、变换、滤波、检测、估计与识别等加工处理,以达到提取信息便于使用的目的。

通信工程专业的培养目标是具备通信技术的基本理论和应用技术,能从事电子、信息、通信等领域的工作。鉴于我校充分培养学生实践能力的办学宗旨,对本专业学生的培养要进行工程素质培养、拓宽专业口径、注重基础和发展潜力。特别是培养学生的创新能力,以实现技术为主线多进行实验技能的培养。学生通过《现代信号处理》课程设计这一重要环节,可以将本专业的主干课程《现代信号处理》从理论学习到实践应用,对数字信号处理技术有较深的了解,进一步增强学生动手能力和适应实际工作的能力。

目 录

前 言............................................................2 第一章 设计目的及要求.............................................4

1.1 课程设计目的................................................4 1.2 课程设计要求................................................4 1.3 课程设计选做题目............................................4 第二章 设计题目及思想.............................................5

2.1 各题目的设计思想............................................5

2.1.1 第一题................................................5 2.1.2 第二题...............................................6 2.1.3 第三题...............................................6 2.1.4 第四题...............................................7 2.1.5 第五题...............................................7 2.1.6 第六题...............................................8 2.2 GUI界面设计思想............................................9 第三章 调试及结果分析............................................12 3.1 GUI界面的结果与调试.......................................12 3.2 各题目的结果与调试.........................................12 3.2.1 第一题...............................................12 3.2.2 第二题...............................................13 3.2.3 第三题...............................................14 3.2.4 第四题...............................................15 3.2.5 第五题...............................................16 3.2.6 第六题...............................................21 第四章 课程设计总结..............................................24 4.1 课程设计所遇问题及解决方案.................................24 4.2 课程设计心得体会...........................................25 附录:............................................................26 参考文献..........................................................35 第一章 设计目的及要求

1.1 课程设计目的

1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。

2.掌握信号分析与处理的基本方法与实现

3.提高综合运用所学知识独立分析和解决问题的能力; 4.熟练使用一种高级语言进行编程实现。

1.2 课程设计要求

一、使用MATLAB(或其它开发工具)编程实现上述内容,写出课程设计报告。滤波器设计题目应尽量避免使用现成的工具箱函数。为便于分析与观察,设计中所有频谱显示中的频率参数均应对折叠频率归一化。

二、课程设计报告的内容包括:

(1)课程设计题目和题目设计要求;(2)设计思想和系统功能分析;

(3)设计中关键部分的理论分析与计算,关键模块的设计思路;(4)测试数据、测试输出结果,及必要的理论分析和比较;

(5)总结,包括设计过程中遇到的问题和解决方法,设计心得与体会等;(6)参考文献;(7)程序源代码清单。

三、课程设计考核要求:

课程考核分三部分,一部分是上机率,占20%;第二部分是检查成绩,最后两次上机为检查时间,占50%;第三部分为课程设计报告,占30%。注意:

(1)演示系统使用GUI界面或混合编程实现集成打包发布,酌情加分。(2)若发现程序或课程设计报告雷同,一律不及格。

1.3 课程设计选做题目

选题1.音乐信号处理:

1)获取一段音乐或语音信号,设计单回声滤波器,实现信号的单回声产 生。给出加入单回声前后的信号频谱。

2)设计多重回声滤波器,实现多重回声效果。给出加入多重回声后的信号频谱。

3)设计均衡器,使得得不同频率的混合音频信号,通过一个均衡器后,增强或削减某些频率区域。

选题二.对混有噪声的音乐信号进行滤波:

1)在一段音乐信号中混入两个频率的正弦型干扰信号,利用FFT计算该混合信号的频谱并确定干扰信号的频谱;

2)利用二阶带阻滤波器设计一个能滤出干扰信号的梳状滤波器; 3)利用梳状滤波器滤除信号中的噪声,播放处理前后的信号,并比较处理前后的结果

本次课程设计共有6道必做题目,并且我们并没有系统的学过MATLAB,所以我并没有做选做题。

第二章 设计题目及思想

2.1 各题目的设计思想

2.1.1 第一题

一、题目:

1.给定模拟信号:xa(t)e1000t

1)选择采样频率Fs = 5000Hz和合适的信号长度,采样得到序列 x1(n)。求并画出x1(n)及其序列傅里叶变换 |X1(ejw)|。

2)选择采样频率Fs = 1000Hz和合适的信号长度,采样得到序列 x2(n)。求并画出x2(n)及其序列傅里叶变换 |X2(ejw)|。3)说明|X1(ejw)|与|X2(ejw)|间的区别,为什么?

二、思想:

第一题主要的考查点是对连续时间信号的抽样,对抽样信号进行傅里叶变换以及不同采样频率对幅频特性曲线的影响等。主要的理论依据如下:

(1)对连续时间信号的抽样:设连续时间信号为x(t),则对其采样得到的离散时间信号为x(n)=x(nT),T为采样周期;

(2)离散时间信号的傅里叶变换:X(e)FT[x(n)]j

由于抽样后的离散时间信号题目没有给出,故应先对连续信号做抽样,后再对离散时间信号进行傅里叶变换。本次我直接采用输入公式的方式进行傅里叶变换。

nx(n)ejn。

2.1.2 第二题

一、题目:

2.已知两系统分别用下面差分方程描述:

y1(n)x(n)x(n1)

y2(n)x(n)x(n1)

试分别写出它们的传输函数,并分别打印H(ejw)~w曲线。说明这两个系统的区别。

二、思想:

第二题的主要考查点是由系统的方程得出系统的传输函数。而在MATLAB中有freqz函数可直接求出系统的传输函数,然后由abs函数以及angle函数可得出其幅频相频特性曲线。

2.1.3 第三题

一、题目:

3.已知已调信号x(t)cos(t)cos(9t),其中调制信号cos(t),载波为cos(9t)。

1)选择合适的采样频率及信号长度,使用FFT分析该已调信号的频谱并画出其幅频特性和相频特性曲线图。2)对该已调信号进行解调,恢复原调制信号。

二、思想:

第三题的主要考查点是信号的调制与解调。这属于通信原理的主要原理知识。本题第一问需要使用FFT分析已调信号的频谱特性,在MATLAB中FFT可以直接作为函数调用,所以我选择直接调用FFT对其进行分析。第二问中要 对已调信号进行解调。其主要思想是解调已调信号需要先将已调信号乘以载波后选择适当的滤波器进行滤波,将其多余信号滤除。

2.1.4 第四题

一、题目:

4.已知三角波序列x1(n)和反三角波序列x2(n):

n1,0n34n,0n3x1(n)8n,4n7 x2(n)n3,4n7

0,0,其它其它用N=8点FFT分析序列x1(n)和x2(n)的幅频特性,观察两者的序列形状和频谱特性曲线有什么异同?绘出两序列及其幅频特性曲线。在x1(n)和x2(n)的末尾补零,用N=16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两情况的FFT频谱还有相同之处吗?这些变化说明了什么?

二、思想:

第四题的主要考查点是FFT快速傅里叶变换的用法。而这在MATLAB中,FFT可以直接作为函数调用,所以我选择用FFT快速傅里叶变换进行分析三角波序列。不过首先要将三角波以及反三角波的取值范围和函数值计算出来,后才可直接对序列进行FFT变换并分析其频谱特性。

2.1.5 第五题

一、题目:

5.设有一信号x(n)=1+cos(n)+cos(42n),设计各种IIR数字滤波器以实现: 31)低通滤波器,滤除cos(2n)的成分,保留成分1+cos(n)342)高通滤波器,滤除1+cos(n)的成分,保留成分cos(42n)33)带通滤波器,滤除1+cos(2n)的成分,保留成分cos(n)342n)34)带阻滤波器,滤除cos(n)的成分,保留成分1+cos(4要求:1)求出各个滤波器的阶数,设计各滤波器。画出各滤波器的幅频和相 频特性,计算滤波器的系统函数H(z)。2)画出滤波前后信号的时域、频域波形。

二、思想:

第五题的主要考查点是用IIR双线性变换法设计BW类型(低通、高通、带通以及帯阻)数字滤波器。

其主要理论依据如下:(1)正切变换实现频率压缩:

2tan(1T/2)/T

(2)双线性变换:

s(2/T)[(1z1)(1z1)]

z(2/Ts)/(2T/ s

(3)将所需数字滤波器的边界频率转换成相应类型的模拟滤波器的边界频率公式为:

(2/T)tan(/2)

其设计主要按照课中所学滤波器设计的步骤进行分步设计。但由于其系统函数的公式无法直接输入,故采用buttord函数进行巴特沃斯滤波器的方法分析所给参数计算出其系统函数的系数矩阵。再借由系统函数的系数矩阵得出具体的系统函数。得出系统函数后便可得到相应的阶数以及幅频、相频特性。

滤波前的信号频域波形由先对时域波形进行FFT变换后得出。对原信号的滤波则采用直接调用filter函数进行对原函数的滤波,而频域波形同样经由先FFT变换分析后得出。

2.1.6 第六题

一、题目:

6.1)用Hanning窗设计一线性相位带通数字滤波器,要求:N=15。观察它的实际3dB和20dB带宽。N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N变化的影响;

2)分别改用矩形窗和Blackman窗,设计(1)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点;总结窗的不同长度和不同窗对滤波器的影响

二、思想:

第六题的主要考查点是几种主要的窗函数(矩形窗、汉宁窗、哈明窗等)对离散时间信号的截取,并用FFT对其频谱进行分析。其主要理论依据如下:

(1)矩形窗(Rectangle Window)

wR(n)RN(n)

其幅度函数为:

WRg()sin(N/2)/sin(/2)

(2)汉宁(Hanning)窗——升余弦窗

wHn(n)0.5[1cos(2n/(N1))]RN(n)

其频谱函数为:

WHn(ej)FT[wHn(n)]WHng()ej(N1)/2

其幅度函数为:

WHng()0.5WRg()0.25[WRg(2/N)WRg(2/N)]

(3)哈明(Hamming)窗——改进的升余弦窗

wHm(n)[0.540.46cos(2n/(N1))]RN(n)

其频谱函数为:

WHm(ej)0.54WR(ej)0.23WR(ej(2/(N1)))0.23WR(ej(2/(N1)))

当N1时,其幅度函数可近似表示为:

WHmg()0.54WRg()0.23WRg(2/N)0.23WRg(2/N)

2.2 GUI界面设计思想

本次课程设计由于结果中图形太多,若一次性完成所以题目的演示则需要开创许多个新的窗口进行图形建立,这样不方便验收及查看。所以最后决定采用图形用户(Graphical User Interface,简称 GUI)界面,下面对GUI界面进行简单的一些介绍。

GUI 是 Graphical User Interface 的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说 GUI 就是屏幕产品的视觉体验和互动操作部分。

GUI 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。

在MATLAB主界面中输入“guide”,再敲击回车键,弹出GUI界面窗口,即可新建GUI界面,如下图所示:

图2.5 GUI界面的新建窗口图

在图2.5的窗口中点击“OK”,则可新建一个GUI界面,并进入其编辑窗口,如图2.6所示:

图2.6 GUI界面的编辑窗口图

随后便可在此窗口内编辑演示界面,此次设计主要利用的是Static Text(静态文本)和Push Button(按钮)。在界面中输入相关的静态文本,并新建若干个按钮,再以此在每个按钮上点击右键,选择View CallBacks调出Call Back函数,将相应设计题的源代码输入Call Back函数界面中对应按钮的段落后。如图2.7 和2.8所示:

图2.7 调用CallBack的操作流程图

图2.8 CallBack代码编辑窗口图

如此便可以建立一个方便、美观又直观的演示界面,以便老师验收时操作简单、条理清晰、并且用时不长。第三章 调试及结果分析

3.1 GUI界面的结果与调试

这次设计的演示界面采用的是GUI界面,这一点在前面提到过,在此不赘述了,只将界面的调试结果说明一下。演示界面如图3.1所示:

图3.1 演示界面图

如图3.1所示,用户克根据需要选择题目,每个题中又有不同的选项,只要点击一下对应的按钮,相关信号的处理结果就会出现在一个新的figure窗口中。

3.2 各题目的结果与调试

3.2.1 第一题

第一题的调试结果如图3.2所示,各图形的意义均有明确表明。

图3.2 第一题的调试结果图

分析: 分别以所要求采样频率fs=5000Hz、1000Hz对xa(t)进行等间隔采样,得到x(n)xa(nT),(T1/fs为采样周期),可知,采样信号的频谱函数是在原模拟信号频谱函数的周期延拓;若以频率f为自变量,则以采样频率fs1/T为延拓周期;对频带限于fc的模拟信号xa(t),根据采样定理,只有当fs2fc时,采样后才不会发生频谱混叠失真。但是在Matlab上是无法计算连续函数,只有在当fs足够大的时候,我们才将频谱混叠忽略不计,从而可对采样序列进行傅里叶变换;最后应用subplot()命令实现画图,并注意到要归一化。

由以上实验得到的图形结果可以看到:,当采样频率越大的时候,采样信号的频谱越陡峭,而其失真情况也越来越小,根据采样定理“采样频率越接近信号频率,其失真情况就越小”可以得到上述结论。

3.2.2 第二题

第二题的调试结果如图3.3所示,各图形的意义均有明确表明。

图3.3 第二题的调试结果图

分析:由于所求系统的系统方程已经由题目可知,则其零极点分布图也可由上图所知。故根据计算所得出其系统函数后做FFT变换所得幅频特性和相频特性均由上图可知。

3.2.3 第三题

第三题的调试结果如图3.4所示,上图为第一问结果,下图为第二问结果。

图3.4 第三题的调试结果图

分析:当已调信号进行不同点数的采样后再经不同间隔的FFT变换后,其展现的幅频特性以及相频特性类似于上图。因选取的采样点不同则结果不同。第二问中的滤波器的设计参数由题目中的调制信号和载波决定,由此设计出的低通滤波器的系统函数图如上。最后因滤波器的不严密而导致解调后的原信号有所失真,并不能完完全全的解调出原信号。

3.2.4 第四题

第四题的调试结果如图3.5所示,图中所代表意义均有标明

图3.5 第四题的调试结果图

分析:首先先根据题目中所给的三角波函数以及反三角波函数的函数式得出其波形。经由不同采样的FFT变换后有stem画出其图形如上。由图可看出三角波序列和反三角波序列在8点的FFT变换后的图形基本一样,没有太大差别。而16点FFT后的图形则有不小差异,此说明对其FFT变换时,取的点数越多,图形差异越大。

3.2.5 第五题

第五题的调试结果第一问中低通滤波器的图形如图3.6所示。

图3.6 第五题的低通滤波器调试结果图

高通滤波器的图形如图3.7所示。

图3.7 第五题的高通滤波器调试结果图 带通滤波器的图形如图3.8所示。

图3.8 第五题的带通滤波器调试结果图 带阻滤波器的图形如图3.9所示。

图3.9 第五题的带阻滤波器调试结果图 分析:经由一下理论知识可依次求出各滤波器的参数及系统函数。(1)正切变换实现频率压缩:

2tan(1T/2)/T

(2)双线性变换:

s(2/T)[(1z1)(1z1)]

z(2/Ts)/(2T/ s(3)将所需数字滤波器的边界频率转换成相应类型的模拟滤波器的边界频率公式为:

(2/T)tan(/2)

频域图形均由FFT变换后可得出。此次设计IIR数字滤波器是其参数选择并不精准,均由自己在可行范围中尝试得出最像的结果。但其滤波器的幅频特性和相频特性仍然具有失真现象。

3.2.6 第六题

第六题的调试结果依次的图形如图4.0所示。

图4.0 第六题的调试结果图

分析:此图由上往下依次为N=15及N=45的汉明窗、布莱克曼窗和矩形窗。由图形可以看出N越小时窗函数的主瓣范围越大,副瓣坡度越缓。滤波器滤波功能越好。

第四章 课程设计总结

4.1 课程设计所遇问题及解决方案

拿到设计题时,完全不知道从何处入手,一开始只会按照书上的解题思路一步步来算,一步步来解这些题目,解出来后再设法将其输入编程中,从而的到想要的答案。可是每次如此,系统输出的结果总是和预想中的不一样,有些甚至不知道哪里出了错。不过后来,在翻阅了有关参考文献后,知道了题目中大部分内容都可以通过MATLAB强大的函数工具箱里的函数直接实现。开始设计后,总是用错函数,输错参数等,这类问题层出不穷,毕竟是第一次用MATLAB进行设计实践,很多问题还是要虚心向老师和同学请教的。在很多次的请教,修改后,程序基本成功地得到了运行,调试过程中又遇到了一些小问题,大多是由于粗心 导致的,这些问题在调试过程中都得到了修正。

这次课程设计过程中遇到的主要问题是频率归一化的问题,开始对归一化的概念不是很清楚。在问了班上能力较强的同学后,对这个概念深入理解了,并在程序中成功地实现了。

4.2 课程设计心得体会

通过这两周的《现代信号处理》课程设计实践,我学习会了MATLAB编程语言的基本概念、语法、语义和数据类型的使用特点,加深了对数字信号处理这门学科所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。

因为这是我们第一次接触MATLAB编程语言,在编写程序以及调试的过程中遇到了很多困难,但是我通过去图书馆查找资料,请教同学老师,再自己一点点改善程序,最终还是编写出一个比较完善的程序,基本实现了所有要求功能,这是最值得我欣慰的一点。

刚拿到程序设计课题时,我感觉一片茫然,因为在之前的信号处理学习中,本身对数字信号处理这门学科的学习就不精深,更何况只是在一些例题中接触过MATLAB语言,甚至没有看过一些基础的书籍,更没有上过课,所以初次遇到一个实际问题,感觉无从下手。这是由于自己对MATLAB的模块设计不够理解,同时对MATLAB的基本语句一无所知,不过通过请教老师懂得了首先要了解解题思路,以及若要实现此次设计需要哪些最基本的思路和函数。这样一下子豁然开朗,掌握了基本设计思路之后,后面的编程就顺利多了。至此,我真真体会到清晰地思路对成功编写一个程序的重要性。

当然成功编写一个程序绝非易事,之前,我总以为程序能够正常运行,就代表着编程成功,后来我才发现我大错特错了。我用了三天时间,完成了程序的编写、改错,但我立刻发现尽管程序能够正常运行,部分功能却不完善,甚至不能出现自己想要的结果。经过一次又一次调试、修改又修改,一点一点发现问题并改正,我才真正发现编程远没有想象中的简单,并且深刻体会到编程和单纯的解题是有着多么大的不同。它需要的不仅是清晰地编程思路、编程技巧,还需要细心,有耐心有毅力。

在编程过程中,我遇到了许多问题,通过查找资料也未能找到原因,每次我想老师请教,可老师总不是万能的,顾不到每一位同学的要求。这时,同学就是一个很好的求助对象。我们可以找曾经接触过MATLAB的同学学习、交流、讨论。这样不仅我们可以学习,他们也可以更加巩固他们的知识。我想这便是团队 精神,有的时候真的是人多力量大。

最后,在此次编程过程中,我收获的不仅仅是对上学期已学的知识的巩固,和MATLAB这项新的工作平台,我还学会了遇到难题时不能轻易放弃,要有迎难而上的勇气,有时候自己一个人完成不了的理解不了的知识,多请教请教别人是一项很好的选择等等。总之,这次课程设计让我学会了很多,我会铭记于心,让其在以后的学习、生活或者工作中都时刻警醒着我。

附录:

源程序清单

%1.现代码 figure(1)t=-0.005:0.0001:0.005;y1=exp(-1000*abs(t));T=0.0002;n=-25:1:25;y2=exp(-1000*abs(n*T));N=200;k=0:1:N;w=pi*k/N;X=y2*exp(-j*n'*w);X=real(X);w=[-fliplr(w),w(2:N+1)];X=[fliplr(X),X(2:N+1)];subplot(2,2,1);plot(t,y1);title('原函数');xlabel('t/秒');ylabel('y1(n)');subplot(2,2,2);stem(n*T,y2,'.');xlabel('n*T/秒');ylabel('y2(n)');title('(1)离散序列,fs=5000');subplot(2,3,4);plot(w/pi,X);xlabel('频率/pi');ylabel('Xl(w)')title('(1)序列的傅里叶变换')t=-0.005:0.0001:0.005;y1=exp(-1000*abs(t));T=0.001;n=-5:1:5;y2=exp(-1000*abs(n*T));N=200;k=0:1:N;w=pi*k/N;X=y2*exp(-j*n'*w);X=real(X);w=[-fliplr(w),w(2:N+1)];X=[fliplr(X),X(2:N+1)];subplot(2,3,5);stem(n*T,y2,'.');xlabel('n*T/秒');ylabel('y2(n)');title('(2)离散序列,fs=1000');subplot(2,3,6);plot(w/pi,X);xlabel('频率/pi');ylabel('Xl(w)')title('(2)序列的傅里叶变换')

%2.figure(1)B=[1,1];A=1;subplot(2,3,3);zplane(B,A);xlabel('实部Re');ylabel('虚部Im');title('y(n)=x(n)+x(n-1)传输函数零极点分布');grid on [H,w]=freqz(B,A,'whole');subplot(2,3,1);plot(w/pi,abs(H),'linewidth',2);grid on;xlabel('omega/pi');ylabel('|H(e^j^omega)|');title('幅频响应特性');axis([0,2,0,2.2]);subplot(2,3,2);plot(w/pi,angle(H),'linewidth',2);grid on;axis([-0.1,2.1,-1.6,1.6]);xlabel('omega/pi');ylabel('phi(omega)');title('相频响应特性');B=[1,-1];A=1;subplot(2,3,6);zplane(B,A);xlabel('实部Re');ylabel('虚部Im');title('y(n)=x(n)-x(n-1)传输函数零极点分布');grid on [H,w]=freqz(B,A,'whole');subplot(2,3,4);plot(w/pi,abs(H),'linewidth',2);grid on;xlabel('omega/pi');ylabel('|H(e^j^omega)|');title('幅频响应特性 ');axis([0,2,0,2.2]);subplot(2,3,5);plot(w/pi,angle(H),'linewidth',2);grid on;xlabel('omega/pi');ylabel('phi(omega)');title('相频响应特性');axis([-0.1,2.1,-1.6,1.6]);

%3.%(1)figure(1)t=0:1.9:100;n=0:1:99;x1=cos(pi*t);x2=cos(9*pi*t);y1=x1.*x2;y2=fft(y1,100);subplot(3,1,1);plot(t,y1);title('已调信号x');xlabel('t/秒');ylabel('y1(n)');subplot(3,1,2);stem(n,abs(y2),'.');title('幅频特性');xlabel('频率/pi');ylabel('幅值');pha=angle(y2);subplot(3,1,3);stem(n,pha,'.');title('相频特性');xlabel('频率/pi');ylabel('相位(rad)');axis([0 99-5 5]);

%(2)figure(2)t1=1;t=[0:0.05:5];x=cos(pi*t).*cos(9*pi*t);%已调信号 subplot(2,2,1);plot(t,x);title('已调信号');y=x.*cos(9*pi*t);%已调信号再乘以载波信号 wp=6*pi/5;ws=14*pi/8;Rp=3;As=30;%选定滤波器的参数,并设计模拟低通滤波器 [N,wc]=buttord(wp,ws,Rp,As,'s');[B,A]=butter(N,wc,'s');[H,w]=freqs(B,A,127);%滤波器的系统函数 subplot(2,2,2);plot(w/(2*pi),abs(H));axis([0,5,0,1]);title('滤波器系统函数');w1=linspace(0,40,64);%求y的频谱 F1=y*exp(-j*t'*w1);F=[fliplr(F1),F1(2:64)];w=[-fliplr(w1),w1(2:64)];subplot(2,2,3);plot(w,abs(F)),title('y的频谱');Y3=H'.*F;%通过信号的频谱与系统函数相乘进行滤波 z=Y3*exp(j*w'*t)/pi;%滤波后的序列 subplot(2,2,4);plot(t,z);title('滤波后的序列');

%4.figure(1)n1=0:3,n2=4:7;x1=n1+1,x2=8-n2;subplot(2,3,1);stem([n1,n2],[x1,x2],'.');title('三角波序列');x=[1 2 3 4 4 3 2 1];subplot(2,3,2);stem(abs(fft(x)),'.');title('三角波序列8点FFT');x=[1 2 3 4 4 3 2 1 0 0 0 0 0 0 0 0];subplot(2,3,3);stem(abs(fft(x)),'.');title('三角波序列16点FFT');n1=0:3,n2=4:7;x1=4-n1,x2=n2-3;subplot(2,3,4);stem([n1,n2],[x1,x2],'.');title('反三角波序列');x=[4 3 2 1 1 2 3 4];subplot(2,3,5);stem(abs(fft(x)),'.');title('反三角波序列8点FFT');x=[4 3 2 1 1 2 3 4 0 0 0 0 0 0 0 0];subplot(2,3,6);stem(abs(fft(x)),'.');title('反三角波序列16点FFT');

%5.%低通 figure(1)n=0:1:24;x=1+cos(pi*n/4)+cos(2/3*pi*n);Wp=1/4*pi;Ws=2/3*pi;Ap=3;As=30;Os=2*tan(Ws/2);Op=2*tan(Wp/2);N=ceil(1/2*log10((10^(0.1*As)-1)/(10^(0.1*Ap)-1))./log10(Os/Op)), Oc1=Op*(10^(0.1*Ap)-1)^(-1/(2*N));Oc2=Os*(10^(0.1*As)-1)^(-1/(2*N));Oc=[Oc1,Oc2];Oc=min(Oc)

wp=[Wp/pi];wr=[Ws/pi];[N,wc]=buttord(wp,wr,Ap,As,'s');[b,a]=butter(N,wc,'low');sysl=tf(b,a)w=linspace(0,2*pi,500);

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形');

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');%高通 figure(1)n=0:1:24;x=1+cos(pi*n/4)+cos(2/3*pi*n);Wp=2*pi/3;Ws=1*pi/4;Ap=3;As=30;Os=2*tan(Ws/2);Op=2*tan(Wp/2);N=ceil(1/2*log10((10^(0.1*As)-1)/(10^(0.1*Ap)-1))./log10(Op/Os)), Oc1=(1/Op)*(10^(0.1*Ap)-1)^(-1/(2*N));Oc2=(1/Os)*(10^(0.1*As)-1)^(-1/(2*N));Oc=[Oc1,Oc2];Oc=min(Oc)

wp=[Wp/pi];wr=[Ws/pi];[N,wc]=buttord(wp,wr,Ap,As,'s');[b,a]=butter(N,wc,'high');sysl=tf(b,a)w=linspace(0,2*pi,500);

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形');

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');

%带通 figure(1);wp1=(3*pi)/16;wp2=(5*pi)/16;ap=1;ws1=(1*pi)/16;ws2=(5*pi)/9;as=50;wp=[wp1/pi wp2/pi];ws=[ws1/pi ws2/pi];[N,wn]=buttord(wp,ws,ap,as);[b,a]=butter(N,wn,'bandpass');N, sysl=tf(b,a), w=linspace(0,2*pi,500);

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形')

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');

%带阻 figure(1);

wp1=pi/16;wp2=(5*pi)/9;ap=1;ws1=(3*pi)/16;ws2=(5*pi)/16;as=50;wp=[wp1/pi,wp2/pi];ws=[ws1/pi,ws2/pi];[N,wc]=buttord(ws,wp,ap,as);[b,a]=butter(N,wc,'stop');w=linspace(0,2*pi,500);N, sysl=tf(b,a)

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形')

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');

%6.%(1)figure(1)Window=hanning(16);h=fir1(15,[0.3 0.5],Window);

freqz(h,1)title('N=15的汉宁窗');figure(2)Window=hanning(46);h=fir1(45,[0.3 0.5],Window);freqz(h,1)title('N=45的汉宁窗');%(2)figure(3)Window=blackman(16);b=fir1(15,[0.3 0.5],Window);freqz(b,1)title('N=15的布莱克曼窗');

figure(4)Window=blackman(46);b=fir1(45,[0.3 0.5],Window);freqz(b,1)title('N=45的布莱克曼窗');

figure(5)Window=boxcar(16);b=fir1(15,[0.3 0.5],Window);freqz(b,1)title('N=15的矩形窗');

figure(6)Window=boxcar(46);b=fir1(45,[0.3 0.5],Window);freqz(b,1)title('N=45的矩形窗');

参考文献

[1]高西全,丁玉美.数字信号处理.第三版.西安:西安电子科技大学出版社,2008 [2]彭军,李宏.信号与信息处理基础.北京:中国铁道出版社,2009 [3]A.V.奥本海姆,等.信号与系统.刘树棠,译.西安:西安交通大学出版社,1985 [4]程佩青.数字信号处理教程.第二版.北京:清华大学出版社,2001 [5]陈怀琛,吴大正,高西全.MATLAB在电子信息课程中的应用.第三版.北京:电子工业出版社,2006 [6]董长虹.MATLAB信号处理与应用.北京:国防工业出版社,2005

下载数字信号实习报告word格式文档
下载数字信号实习报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数字信号处理课程设计..

    课程设计报告 课程名称: 数字信号处理 课题名称: 语音信号的处理与滤波姓 名: 学 号: 院 系: 专业班级: 指导教师: 完成日期: 2013年7月2日 目录 第1部分 课程设计报告……………......

    数字信号处理实验报告

    JIANGSU UNIVERSITY OF TECHNOLOGY 数字信号处理实验报告 学院名称: 电气信息工程学院专 业: 班 级: 姓 名: 学 号: 指导老师: 张维玺(教授) 2013年12月20日 实验一 离散时间信......

    数字信号处理课程设计

    目 录 摘要........................................................................................................................................... 1 1 绪论 .......

    数字信号心得体会[合集五篇]

    数字信号分析心得体会 数字信号分析技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科,因此受到人们的普遍关注, 在通信、雷达、语音分析、图象分析、声......

    数字信号处理实验报告

    南京邮电大学 实 验 报 告 实验名称_____熟悉MATLAB环境 ___ 快速傅里叶变换及其应用 ____IIR数字滤波器的设计_ FIR数字滤波器的设计 课程名称 数字信号处理A 班级学号_......

    数字信号处理学习心得

    数字信号处理学习心得 XXX ( XXX学院 XXX班) 一、课程认识和内容理解 《数字信号处理》是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理......

    数字信号处理学习心得

    数字信号处理学习心得 通信工程 0801 赖立根 《数字信号处理》是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方......

    中南大学数字信号处理课程设计报告2

    中南大学 数字信号处理课程设计报告 专业班级: 指导老师:姓名: 学号: 目 录 一、课程设计要求 二、设计过程 (1)设计题目 (2)设计源代码 (3)设计结果 (4)结果分析 三、设计总结......