当前位置:文档之家› 数字信号处理实验八

数字信号处理实验八

数字信号处理实验八
数字信号处理实验八

实验八 音频频谱分析仪设计与实现

一、实验原理

MATLAB 是一个数据信息和处理功能十分强大的工程实用软件,其数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令。本实验要求基于声卡与MA TLAB 实现音频信号频谱分析仪的设计原理与实现,功能包括:

(1)信号的输入,从声卡输入、从W A V 文件输入、从标准信号发生器输入;

(2)信号的波形分析,包括幅值、频率、周期、相位的估计,以及统计量峰值、均值、均方值和方差的计算;

(3)信号频谱分析,频率、周期的估计,图形显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。

1、频率(周期)检测 对周期信号来说,可以用时域波形分析来确定信号的周期,也就是计算相邻的两个信号波峰的时间差或过零点的时间差。这里采用过零点(ti )的时间差T (周期)。频率即为f=1/T ,由于能够求得多个T 值(ti 有多个),故采用它们的平均值作为周期的估计值。

2、幅值检测 在一个周期内,求出信号的最大值ymax 与最小值ymin 的差的一半,即A=(ymax-ymin )/2,除以第一个以外的A 值的平均作为幅值的估计值。

3、相位检测

采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。Fi=2pi(1-ti/T),同样,以fi 的平均值作为相位的估计值。

4、数字信号统计量估计 (1)峰值P 的估计

在样本数据x 中找出最大值与最小值,其差值为双峰值,双峰值的一半即为峰值。

)]min(y -)0.5[max(y P i i =

(2)均值估计

∑==N

i i y N y E 0

1)(

式中,N 为样本容量,下同。 (3)均方值估计

∑==

N

i i y N

y E 0

2

1

)(2

(4)方差估计

∑=-=N

i i y E y N y D 0

2))((1)(

5、频谱分析原理

是与分析只能反映信号的幅值随时间的变化情况,除单位频率分量的简单波形外,很难明确提示信号的频率组成和个频率分量的大小,而频谱分析能很好的解决此问题。

(1)DFT 与FFT

对于给定的时域信号y ,可以通过Foutier 变换得到频域信息Y 。Y 可按下式计算

t t ft y j t ft y f Y N N i i ??+?=∑∑--])2sin()2cos([)(10

1

ππ

式中,N 为样本容量,t=1/Fs 为采样间隔。 采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散傅立叶变换(DFT ),即

1,...,2,1,0,)(1

/2-==?∑-?-N k e y t k Y N t N ki j i π

式中,f=Fs/N 。但上式的计算效率很低,因为有大量的指数(等价于三角函数)运算,故实际中多采用快速傅立叶变换(FFT )。其原理是将重复的三角函数计算的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。由于三角函数计算的重复量相当大,故FFT 能极大地提高运算效率。

(2)频率、周期的估计 对于Y (kf ),如果当kf=f 时,Y (kf )取最大值,则f 为频率的估计量,由于采样间隔的误差,f 也存在误差,其误差最大值为f/2。

周期T=1/f 。

从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。

(3)频谱图

为了直观的表示信号的频率特性,工程上常常将傅立叶变换的结果用于图形的方式表示,即频谱图。

以频谱f 为横坐标,|Y(f)|为纵坐标,可以得到幅值谱; 以频谱f 为横坐标,argY(f)为纵坐标,可以得到相位谱; 以频谱f 为横坐标,ReY(f)为纵坐标,可以得到实频谱; 以频谱f 为横坐标,ImY(f)为纵坐标,可以得到虚频谱;

根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即傅立叶变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f 属于[0,Fs/2]。

二、实验内容

请参考书中所给的界面和代码,查阅相关资料,构建交互界面,设计一个音频频谱分析仪,实现相应的功能。

三、实验程序及结果

(1)分析仪界面:

输入界面:

(2)声卡输入方式相关程序及结果:

% --- Executes on button press in soundcard.

function soundcard_Callback(hObject, eventdata, handles)

% hObject handle pointto soundcard (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB

% handles structure with handles and user data (see GUIDA TA)

set(findobj('Tag','recordtime'),'enable','on');

h=findobj('Tag','filename');

set(h,'enable','off');

h=findobj('Tag','freq');

set(h,'enable','off');

h=findobj('Tag','amp');

set(h,'enable','off');

h=findobj('Tag','phase');

set(h,'enable','off');

set(handles.channel,'enable','off');

set(handles.fileopen,'enable','off');

set(handles.gensig,'enable','off');

set(handles.wavetype,'enable','off');

set(handles.add,'enable','off');

set(handles.startrecord,'enable','on');

% Hint: get(hObject,'Value') returns toggle state of soundcard

% --- Executes on button press in startrecord.

function startrecord_Callback(hObject, eventdata, handles)

% hObject handle pointto startrecord (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB

% handles structure with handles and user data (see GUIDA TA)

Fs=str2double(get(findobj('Tag','samplerate'),'String'));

handles.y=wavrecord(str2double(get(findobj('Tag','recordtime'),'String'))*Fs, Fs,'int16'); handles.inputtype=1;

guidata(hObject,handles);

plot(handles.time,handles.y);

title('WA VE');

ysize=size(handles.y)

set(handles.samplenum,'String',num2str(ysize(1)));

滚动条程序:

% --- Executes on slider movement.

function scale_Callback(hObject, eventdata, handles)

% hObject handle to scale (see GCBO)

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

% handles structure with handles and user data (see GUIDA TA)

val=get(hObject,'value');

val=10^(val*5+1);

x=get(handles.xmove,'Value')*str2double(get(handles.samplenum,'String'));

axis(handles.time,[x val+x min(handles.y) max(handles.y)]);

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

% --- Executes during object creation, after setting all properties.

function scale_CreateFcn(hObject, eventdata, handles)

% hObject handle to scale (see GCBO)

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

% handles empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% --- Executes on slider movement.

function xmove_Callback(hObject, eventdata, handles)

% hObject handle to xmove (see GCBO)

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

% handles structure with handles and user data (see GUIDA TA)

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider val=get(handles.scale,'value');

val=10^(val*5+1);

x=get(hObject,'Value')*str2double(get(handles.samplenum,'String'));

axis(handles.time,[x val+x min(handles.y) max(handles.y)]);

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

% --- Executes during object creation, after setting all properties.

function xmove_CreateFcn(hObject, eventdata, handles)

% hObject handle to xmove (see GCBO)

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

% handles empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% --- Executes on slider movement.

function scale2_Callback(hObject, eventdata, handles)

% hObject handle to scale2 (see GCBO)

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

% handles structure with handles and user data (see GUIDATA)

val=get(hObject,'value');

val=10^(val*5+1);

xlim(handles.plot1,[0 val]);

xlim(handles.plot2,[0 val]);

xlim(handles.plot3,[0 val]);

xlim(handles.plot4,[0 val]);

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

% --- Executes during object creation, after setting all properties.

function scale2_CreateFcn(hObject, eventdata, handles)

% hObject handle to scale2 (see GCBO)

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

% handles empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);

end

(3)WA V文件输入方式相关程序及结果:

% --- Executes on button press in WA Vfile.

function W AVfile_Callback(hObject, eventdata, handles)

% hObject handle pointto WA Vfile (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB

% handles structure with handles and user data (see GUIDA TA)

h=findobj('Tag','filename');

set(h,'enable','on');

h=findobj('Tag','freq');

set(h,'enable','off');

h=findobj('Tag','amp');

set(h,'enable','off');

h=findobj('Tag','phase');

set(h,'enable','off');

set(findobj('Tag','recordtime'),'enable','off');

set(handles.channel,'enable','on');

set(handles.fileopen,'enable','on');

set(handles.gensig,'enable','off');

set(handles.wavetype,'enable','off');

set(handles.add,'enable','off');

set(handles.startrecord,'enable','off');

% Hint: get(hObject,'Value') returns toggle state of WA Vfile

% --- Executes on button press in fileopen.

function fileopen_Callback(hObject, eventdata, handles)

% hObject handle pointto fileopen (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB

% handles structure with handles and user data (see GUIDA TA)

temp = wavread(get(findobj('Tag','filename'),'String'));

channel=str2double(get(handles.channel,'String'));

handles.y=temp(:,channel);

handles.inputtype=2;

guidata(hObject,handles);

plot(handles.time,handles.y);

title('WA VE');

ysize=size(handles.y)

set(handles.samplenum,'String',num2str(ysize(1)));

(4)信号发生器输入方式相关程序及结果:

% --- Executes on button press in generator.

function generator_Callback(hObject, eventdata, handles)

% hObject handle pointto generator (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB % handles structure with handles and user data (see GUIDA TA)

h=findobj('Tag','filename');

set(h,'enable','off');

h=findobj('Tag','freq');

set(h,'enable','on');

h=findobj('Tag','amp');

set(h,'enable','on');

h=findobj('Tag','phase');

set(h,'enable','on');

set(findobj('Tag','recordtime'),'enable','off');

set(handles.channel,'enable','off');

set(handles.fileopen,'enable','off');

set(handles.gensig,'enable','on');

set(handles.wavetype,'enable','on');

set(handles.add,'enable','on');

set(handles.startrecord,'enable','off');

% Hint: get(hObject,'Value') returns toggle state of generator

% --- Executes on button press in gensig.

function gensig_Callback(hObject, eventdata, handles)

% hObject handle pointto gensig (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB % handles structure with handles and user data (see GUIDATA)

Fs=str2double(get(findobj('Tag','samplerate'),'String'));

N=str2double(get(findobj('Tag','samplenum'),'String'));

x=linspace(0,N/Fs,N);

soundtype=get(handles.wavetype,'Value');

frequency=str2double(get(handles.freq,'String'));

amp=str2double(get(handles.amp,'String'));

phase=str2double(get(handles.phase,'String'));

switch soundtype

case 1

y=amp*sin(2*pi*x*frequency+phase);

case 2

y=amp*sign(sin(2*pi*x*frequency+phase));

case 3

y=amp*sawtooth(2*pi*x*frequency+phase,0.5);

case 4

y=amp*sawtooth(2*pi*x*frequency+phase);

case 5

y=amp*(2*rand(size(x))-1);

otherwise

errordlg('Illegal wave type','Choose errer');

end

if get(handles.add,'Value')==0.0

handles.y=y;

else

handles.y=handles.y+y;

end

handles.inputtype=3;

guidata(hObject,handles);

plot(handles.time,handles.y);

title('WA VE');

axis([0 N -str2double(get(handles.amp,'String')) str2double(get(handles.amp,'String'))]); 正弦波:

方波:

三角波:

钜齿波:

白噪声:

分析界面:

(5)时域分析相关程序及结果:

% --- Executes on button press in timeanalyse.

function timeanalyse_Callback(hObject, eventdata, handles)

% hObject handle pointto timeanalyse (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB

% handles structure with handles and user data (see GUIDA TA)

Fs=str2double(get(findobj('Tag','samplerate'),'String'));

N=str2double(get(findobj('Tag','samplenum'),'String'));

if handles.inputtype==0

msgbox('No wave exist! Please choose a input type!');

return;

end

%guo ling jian ce

n=1;

ymax=max([handles.y(1) handles.y(2)]);

ymin=min([handles.y(1) handles.y(2)]);

from=str2double(get(handles.pointfrom,'String'));

to=str2double(get(handles.pointto,'String'));

if from<1 | to-from<5;

msgbox('Error range!');

return;

end

for i=from+2:to-1;

if handles.y(i-1)<0 & handles.y(i-2)<0 & handles.y(i)>=0 & handles.y(i+1)>0 if handles.y(i)==0

ti(n)=i;

else

ti(n)=i-handles.y(i)/(handles.y(i)-handles.y(i-1));

end

amp(n)=(ymax-ymin)/2;

ymax=0;

ymin=0;

n=n+1;

else

if ymax

ymax=handles.y(i);

end

if ymin>handles.y(i)

ymin=handles.y(i);

end

end

end

n=n-1;

%freqence and periodicity

for i=1:n-1

T(i)=ti(i+1)-ti(i);

end

freq=Fs/mean(T);

set(handles.outt,'String',1/freq);

set(handles.outfreq,'String',num2str(freq));

%amplitude

set(handles.outamp,'String',num2str(mean(amp(2:n-1))));

%phase

phase=2*pi*(1-(ti(1:n-1)-1)./T+floor((ti(1:n-1)-1)./T));

set(handles.outphase,'String',num2str(mean(phase)));

%peak

set(handles.outpeak,'String',(max(handles.y(from:to))-min(handles.y(from:to)))/2); %mean

set(handles.outmean,'String',mean(handles.y(from:to)));

%meansquare

set(handles.outmeansquare,'String',mean(handles.y(from:to).^2));

%s

set(handles.outs,'String',std(handles.y(from:to))^2);

以正弦波分析为例:

(6)频域分析相关程序及结果:

% --- Executes on button press in freqanalyse.

function freqanalyse_Callback(hObject, eventdata, handles)

% hObject handle pointto freqanalyse (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB % handles structure with handles and user data (see GUIDA TA)

Fs=str2double(get(findobj('Tag','samplerate'),'String'));

N=str2double(get(findobj('Tag','samplenum'),'String'));

if handles.inputtype==0

msgbox('No wave exist! Please choose a input type!');

return;

end

from=str2double(get(handles.pointfrom,'String'));

to=str2double(get(handles.pointto,'String'));

sample=handles.y(from:to);

f=linspace(0,Fs/2,(to-from+1)/2);

Y=fft(sample,to-from+1);

[C,I]=max(abs(Y));

set(handles.foutt,'String',1/f(I));

set(handles.foutfreq,'String',f(I));

Y=Y(1:(to-from+1)/2);

plot(handles.plot1,f,2*sqrt(Y.*conj(Y)));

plot(handles.plot2,f,angle(Y));

plot(handles.plot3,f,real(Y));

plot(handles.plot4,f,imag(Y));

plot(handles.plot5,f,abs(Y).^2);

xlabel(handles.plot1,'freqency(Hz)');

xlabel(handles.plot2,'freqency(Hz)');

xlabel(handles.plot3,'freqency(Hz)');

xlabel(handles.plot4,'freqency(Hz)');

xlabel(handles.plot5,'freqency(Hz)');

ylabel(handles.plot1,'amplitude');

ylabel(handles.plot2,'phase(rad)');

ylabel(handles.plot3,'real');

ylabel(handles.plot4,'Imaginary');

ylabel(handles.plot5,'power');

以正弦波为例:

(7)播放键程序:

% --- Executes on button press in play.

function play_Callback(hObject, eventdata, handles)

% hObject handle pointto play (see GCBO)

% eventdata reserved - pointto be defined in a future version of MA TLAB % handles structure with handles and user data (see GUIDA TA)

Fs=str2double(get(findobj('Tag','samplerate'),'String'));

wavplay(handles.y,Fs);

数字信号处理基础实验指导书

《数字信号处理》实验指导书 光电工程学院二○○九年十月

实验一离散时间信号分析 一、实验目的 1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。 5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列来表示,其中代表序列的第n个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反转、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将和的变量换成,变成和,再将以纵轴为对称轴反褶成。 (2)移位:将移位,得。当为正数时,右移位;当为负数时,左

移位。 (3)相乘:将和的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得。 三、主要实验仪器及材料 微型计算机、Matlab软件6.5或更高版本。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB或C语言编程产生和绘制下列有限长序列: (1)单位脉冲序列 (2)单位阶跃序列 (3)矩形序列 (4)正弦型序列 (5)任意序列 3.序列的运算 利用MATLAB编程完成上述两序列的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。 4.卷积运算 利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。 5.上机调试并打印或记录实验结果。 6.完成实验报告。 五、实验报告要求 1. 简述实验原理及目的。 2. 给出上述序列的实验结果。 3. 列出计算卷积的公式,画出程序框图,并列出实验程序清单 (可略)(包括必要的程序说明)。 4. 记录调试运行情况及所遇问题的解决方法。 5. 给出实验结果,并对结果做出分析。 6. 简要回答思考题。 1 如何产生方波信号序列和锯齿波信号序列? 2 实验中所产生的正弦序列的频率是多少?是否是周期序列?

数字信号处理实验(吴镇扬)答案-2

(1) 观察高斯序列的时域和幅频特性,固定信号)(n x a 中参数p=8,改变q 的 值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p 分别等于8、13、14,观察参数p 变化对信号序列的时域和幅频特性的影响,注意p 等于多少时会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 ()() ?????≤≤=-其他0150,2n e n x q p n a 解:程序见附录程序一: P=8,q 变化时: t/T x a (n ) k X a (k ) t/T x a (n ) p=8 q=4 k X a (k ) p=8 q=4 t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 幅频特性 时域特性

t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 t/T x a (n ) 5 10 15 k X a (k ) p=13 q=8 t/T x a (n ) p=14 q=8 5 10 15 k X a (k ) p=14 q=8 时域特性幅频特性 分析: 由高斯序列表达式知n=p 为期对称轴; 当p 取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q 由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q 值固定不变,p 变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现;

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验

实验一: 系统及响应时域采样及频域采样 1. 实验目的 (1)掌握用卷积求系统响应及卷积定理的验证; (2)掌握连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。 (3)掌握频域采样引起时域周期化概念, 加深对频域采样定理的理解。 (4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。 3. 实验内容及步骤 (1) 认真复习卷积定理、 时域采样和频域采样理论。 (2) 编制实验用主程序及相应子程序。 ①系统单位脉冲响应序列产生子程序。 有限长序列线性卷积子程序, 用于完成两个给定长度的序列的卷积。 可以直接调用MATLAB 语言中的卷积函数conv 。 conv 用于两个有限长度序列的卷积,它假定两个序列 都从n=0开始。调用格式如下: y=conv (x, h) ② 卷积定理的验证。 (3)时域采样定理的验证:信号产生子程序, 用于产生实验中要用到的下列信号序列: x a (t)=Ae -at sin(Ω0t)u(t) 进行采样, 可得到采样序列 x a (n)=x a (nT)=Ae -anT sin(Ω0nT)u(n), 0≤n<50 其中A 为幅度因子, a 为衰减因子, Ω0是模拟角频率, T 为采样间隔。 这些参数都要在实验过程中由键盘输入, 产生不同的x a (t)和x a (n)。 >> %1时域采样序列分析 A=400;a=200;w=200; n=0:50-1;fs=1000; xa=A*exp((-a)*n/fs).*sin(w*n/fs); k=-200:200;w=(pi/100)*k; Xk=fft(xa,length(k));magX=abs(Xk);angX=angle(Xk); subplot(2,1,1); stem(n,xa,'.');xlabel('n');ylabel('xa(n)'); title('信号的类型'); )()(10n R n h a =) 3()2(5.2)1(5.2)()(-+-+-+=n n n n n h b δδδδ1 ,,2,1,0,)()()(-==M k e H e X e Y k k k j j a j ωωω

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

数字信号处理实验(吴镇扬)答案-4

实验四 有限长单位脉冲响应滤波器设计 朱方方 0806020433 通信四班 (1) 设计一个线性相位FIR 高通滤波器,通带边界频率为0.6π,阻带边界频率为0.4π,阻 带衰减不小于40dB 。要求给出h(n)的解析式,并用MATLAB 绘出时域波形和幅频特性。 解: (1) 求数字边界频率: 0.6 , .c r ωπωπ== (2) 求理想滤波器的边界频率: 0.5n ωπ= (3) 求理想单位脉冲响应: []d s i n ()s i n [()] () ()1n n n n n n h n n παωαα παωα π?-- -≠??-=? ? -=?? (4) 选择窗函数。阻带最小衰减为-40dB ,因此选择海明窗(其阻带最小衰减为-44dB);滤 波器的过渡带宽为0.6π-0.4π=0.2π,因此 6.21 0.231 , 152 N N N ππα-=?=== (5) 求FIR 滤波器的单位脉冲响应h(n): []31d sin (15)sin[0.5(15)] 1cos ()15()()()15(15)1 15 n n n R n n h n w n h n n n ππππ?---????-? ?≠? ???==-???? ? ?=? 程序: clear; N=31; n=0:N-1; hd=(sin(pi*(n-15))-sin(0.5*pi*(n-15)))./(pi *(n-15)); hd(16)=0.5; win=hanning(N); h=win'.*hd; figure; stem(n,h); xlabel('n'); ylabel('h(n)'); grid; title('FIR 高通滤波单位脉冲响应h(n)'); [H,w]=freqz(h,1); H=20*log10(abs(H)); figure;3 plot(w/pi,H); axis([0 1 -100 10]); xlabel('\omega/\pi'); ylabel('幅度/dB'); grid; title('FIR 高通滤波器,hanning 窗,N=31');

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

实验一 基于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 单位冲激序列

数字信处理上机实验答案全

数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

matlab数字信号处理实验指导

电工电子实验中心实验指导书 数字信号处理 实验教程 二○○九年三月

高等学校电工电子实验系列 数字信号处理实验教程 主编石海霞周玉荣 攀枝花学院电气信息工程学院 电工电子实验中心

内容简介 数字信号处理是一门理论与实践紧密联系的课程,适当的上机实验有助于深入理解和巩固验证基本理论知识,了解并体会数字信号处理的CAD手段和方法,锻炼初学者用计算机和MATLAB语言及其工具箱函数解决数字信号处理算法的仿真和滤波器设计问题的能力。 本实验指导书结合数字信号处理的基本理论和基本内容设计了八个上机实验,每个实验对应一个主题内容,包括常见离散信号的MATLAB产生和图形显示、离散时间系统的时域分析、离散时间信号的DTFT、离散时间信号的Z变换、离散傅立叶变换DFT、快速傅立叶变换FFT及其应用、基于MATLAB的IIR和FIR数字滤波器设计等。此外,在附录中,还简单介绍了MATLAB的基本用法。每个实验中,均给出了实验方法和步骤,还有部分的MATLAB程序,通过实验可以使学生掌握数字信号处理的基本原理和方法。

目录 绪论 (1) 实验一常见离散信号的MATLAB产生和图形显示 (2) 实验二离散时间系统的时域分析 (6) 实验三离散时间信号的DTFT (9) 实验四离散时间信号的Z变换 (14) 实验五离散傅立叶变换DFT (18) 实验六快速傅立叶变换FFT及其应用 (24) 实验七基于MATLAB的IIR数字滤波器设计 (30) 实验八基于MATLAB的FIR数字滤波器设计 (33) 附录 (37) 参考文献 (40)

绪论 绪论 随着电子技术迅速地向数字化发展,《数字信号处理》越来越成为广大理工科,特别是IT领域的学生和技术人员的必修内容。 数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。数字信号处理的理论和技术一出现就受到人们的极大关注,发展非常迅速。而且随着各种电子技术及计算机技术的飞速发展,数字信号处理的理论和技术还在不断丰富和完善,新的理论和技术层出不穷。目前数字信号处理已广泛地应用在语音、雷达、声纳、地震、图象、通信、控制、生物医学、遥感遥测、地质勘探、航空航天、故障检测、自动化仪表等领域。 数字信号处理是一门理论和实践、原理和应用结合紧密的课程,由于信号处理涉及大量的运算,可以说离开了计算机及相应的软件,就不可能解决任何稍微复杂的实际应用问题。Matlab是1984年美国Math Works公司的产品,MATLAB 语言具备高效、可视化及推理能力强等特点,它的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,是目前工程界流行最广的科学计算语言。早在20世纪90年代中期,MATLAB就己成为国际公认的信号处理的标准软件和开发平台。从1996年后,美国新出版的信号处理教材就没有一本是不用MATLAB的。 本实验指导书结合数字信号处理的基本理论和基本内容,用科学计算语言MATLAB实现数字信号处理的方法和实践,通过实验用所学理论来分析解释程序的运行结果,进一步验证、理解和巩固学到的理论知识,从而达到掌握数字信号处理的基本原理和方法的目的。

数字信号处理基础实验报告_

本科生实验报告 实验课程数字信号处理基础 学院名称地球物理学院 专业名称地球物理学 学生姓名 学生学号 指导教师王山山 实验地点5417 实验成绩 二〇一四年十一月二〇一四年十二月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm, 左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱 并将信号进行奇偶分解 一、实验原理 单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。用Excel软件绘图显示计算结果。并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。用Excel 软件绘图显示计算结果。 二、实验程序代码 (1)离散抽样 double a,t; a=2*f*f*log(m); int i; for(i=0;i

数字信号处理基础实验报告 (2)

成都理工大学 《信号处理基础》实验 开设时间:2013—2014学年第2学期

题目1:信号的产生和显示 一、实验目的: 认识基本信号 通过使用MATLAB 设计简单程序, 掌握对MATLAB 的基本使用方法 二、实验原理: 找出下列表达式的信号与:正弦信号、最小相位信号、最大相位信号、零相位信号的对应关系。 1、sin60t 2、e-60t sin60t 3、(1- e-60t)sin60t 4、e60t sin60t 三、实验内容: 产生上述信号的信号并显示 (1)t=[-pi/30:0.001:pi/30]; f=sin(60*t); plot(t,f) 产生图形如下:

(2)t=[0:0.001:pi/30]; f=exp(-60*t).*sin(60*t); plot(t,f) 产生图形如下:

(3)t=[-5*pi/30:0.001:5*pi/30]; f=(1-exp(-60*t)).*sin(60*t); plot(t,f) 产生图形如下: (4) t=[-pi/30:0.001:pi/30]; f=exp(6*t).*sin(60*t); plot(t,f) 产生如下波形:

四、实验结果与讨论: 讨论上述信号的特点 从第一个波形图可以看出,它的波形与正弦函数sin(t)的相像,只是相位上有改变,是一个正弦信号。最大相位信号的能量集中在后面,最小相位能量集中在前面,所以第二个是一个最小相位,第四个是一个最大相位信号。第三个由于波形在t>0时没有,所以是一个零相位信号。 题目2:频谱分析与显示 一、实验目的 初步认识频谱分析

习题集-02 数字信号处理习题答案

§ Z 变换 ? Z 变换的定义及收敛域 【习题】 1. 假如)(n x 的z 变换代数表示式是下式,问)(z X 可能有多少不同的收敛域。 )83451)(411(411)(2122----+++- =z z z z z X 【分析】 )要单独讨论,(环状、圆外、圆内:有三种收敛域:双边序列的收敛域为:特殊情况有:左边序列的收敛域为:因果序列的收敛域为:右边序列的收敛域为:特殊情况有:有限长序列的收敛域为 0 0 , , 0 0 , , 0 , 0 0 , 0 , 0 22 11 212 1∞==<<≤≤<≤<<≥≥∞≤<≥∞<<≤∞<≤≥∞≤<≤≤∞<<+ -++--z z R z R n n R z n n R z n n z R n n z R n z n z n n n z x x x x x x

解:对X (Z )的分子和分母进行因式分解得 )43 1 )(21 1)(211(2111111----+-+- =Z jZ jZ Z X (Z )的零点为:1/2,极点为:j/2,-j/2,-3/4 ∴ X (Z )的收敛域为: (1) 1/2 < | Z | < 3/4,为双边序列,见图一 (2) | Z | < 1/2,为左边序列,见图二 (3) | Z | > 3/4,为右边序列,见图三 图一 图二 图三 )431)(211)(411()211)(211()(11211-----++++- =Z Z Z Z Z Z X

? Z 反变换 【习题】 2. 有一右边序列 )(n x ,其 z 变换为)1)(211(1 )(11----=z z z X (a) 将上式作部分分式展开(用 1-z 表示),由展开式求 )(n x 。 (b) 将上式表示成 z 的多项式之比,再作部分分式展开,由展开式求 )(n x ,并说明所得到的序列 与(a)所得的是一样的。 【注意】不管哪种表示法最后求出 x (n ) 应该是相同的。 解:(a) 因为11122 111)(---+--=z z z X 且x(n)是右边序列 所以 )()212()(n u n x n ?? ? ??-= (b) 122 1211 )1)(2 1(21231 )1)(2 1()(2 -+--+=---+=--=z z z z z z z z z X )()212( )1(2)1(21)()( n u n u n u n n x n n ??? ??-=-+-?? ? ??-=δ则

数字信号处理实验

数字信号处理实验 报告

实验一 信号、系统及系统响应 一.实验目的 (1) 熟悉连续信号理想采样前后的频谱变化关系,加深对时域采样定理的理解; (2) 熟悉时域离散系统的时域特性; (3) 利用卷积方法观察分析系统的时域特性; (4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离 散信号及系统响应进行频域分析。 二.实验原理与方法 采样时连续信号数字处理的第一个关键环节。对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。 对一个连续信号 () a x t 进行理想采样的过程可用下式表示: ?()()()a a x t x t p t = 其中 ?()a x t 为 () a x t 的理想采样,()p t 为周期脉冲,即 ()() m p t t nT δ∞ =-∞ = -∑ ?()a x t 的傅里叶变换为 10 ()()k k N jw jw n n X e x m e --==∑ 其中, 10 2()()k k N jw jw n k n X e x m e w k M π --=== ∑ ,k=0,1, M-1 时域离散线性非时变系统的输入输出关系为 ()()*()()() m y n x n h n x m h n m ∞ =-∞ == -∑ 卷积运算也可在频域实现 ()()()jw jw jw Y e X e H e = 三.实验内容及步骤 (1)分析采样序列的特性

(2)时域离散系统响应分析N=10 3.卷积定理的验证

数字信号处理上机实验答案完整版

数字信号处理上机实验 答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

第十章上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 functiontstem(xn,yn) %时域序列绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) n=0:length(xn)-1; stem(n,xn,'.');boxon xlabel('n');ylabel(yn); axis([0,n(end),min(xn),*max(xn)]) 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可

数字信号处理上机实验答案(全)1

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一 系统响应及系统稳定性。 实验二 时域采样与频域采样。 实验三 用FFT 对信号作频谱分析。 实验四 IIR 数字滤波器设计及软件实现。 实验五 FIR 数字滤波器设计与软件实现 实验六 应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 10.1 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握 求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞→n 时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n 的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤 (1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter 函数或conv 函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。 (2)给定一个低通滤波器的差分方程为

相关主题
文本预览
相关文档 最新文档