数字信号处理实验一.docx
《数字信号处理实验一.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验一.docx(12页珍藏版)》请在冰点文库上搜索。
数字信号处理实验一
实验一:
熟悉MATLAB环境
一、思考题:
1、比较实验内容第2题中的第4和第5小题的结果,试说明对于周期性信号应当如何采样才能保证周期扩展后与原信号保持一致?
答:
对于周期性信号,在进行采样时,其采样周期必须满足采样定理,即采样频率应该大于信号最高频率的两倍,这样才能避免迭混,以便采样后仍能准确的恢复原信号。
2、对于有限长序列,如何用MATLAB计算其DTFT?
答:
用函数freqz可以计算序列在给定的离散频率点上的DTFT,该变换序列是以形如式
的有理函数来描述的。
这个函数的表达形式有H=freqz(num,den,w)、[H,w]=freqz(num,den,k)。
函数freqz返回的频率响应值为向量H。
在H=freqz(num,den,w)中,0到π之间指定的频率集由向量w给出。
freqz函数的自变量k就是频率点的总数。
3、对于由两个子系统级联或并联的系统,如何用MATLAB计算他们的幅频响应与相频响应?
答:
系统的级联或并联实现涉及到了因式分解。
在MATLAB中,我们可以用函数roots来实现多项式的因式分解。
例如,函数r=roots(h)会返回多项式向量h的根向量。
向量h是以
的升幂表示的多项式的系数。
通过计算所得的根向量,可以求出二次因式的系数。
更简单的方法是用从以给定的传输函数H(z)直接求出二阶因式的函数zp2sos。
函数sos=zp2sos(z,p,k)产生以零—极点形式确定的等效传输函数H(z)的每个二阶部分系数的矩阵sos。
二、实验内容:
第一到四题源程序:
第一题图:
第二题图:
第三题图:
第四题图:
第五题:
%函数命名:
function[x1]=stepshift(n0,n1,n2)
n=[n1:
n2];
x1=[(n-n0)>=0];
%源程序:
>>[x1]=stepshift(2,1,10);
>>n=1:
10;
>>stem(n,x1);
第六题:
>>b=[1,sqrt
(2),1];
>>a=[1,-0.67,0.9];
>>[h,w]=freqz(b,a);
>>am=20*log10(abs(h));%求幅频特性
>>subplot(2,1,1);plot(w,am);
>>xlabel('w');ylabel('am');
>>ph=angle(h);%求相频特性
>>subplot(2,1,2);plot(w,ph);
>>xlabel('w');ylabel('ph');
第七题:
源程序:
>>a=[8-2-123];
>>b=[23-1-3];
>>c=conv(a,b);%求a、b的线性卷积
>>m=length(c)-1;
>>n=0:
1:
m;
>>stem(n,c);
>>xlabel('n');ylabel('幅度');
第八题:
源程序:
>>n=50;
>>a=[1-2];
>>b=[10.1-0.06];
>>x=[1zeros(1,n-1)];
>>k=0:
1:
n-1;
>>y=filter(a,b,x);
>>stem(k,y);
>>xlabel('n');ylabel('幅度');
三、实验总结:
通过本次实验,熟悉并掌握MATLAB的主要命令操作,比如序列的简单运算、矩阵的输入和计算等,能熟练编写绘图程序,在计算卷积和绘制幅频响应和相频响应的过程中,充分地巩固了数字信号处理学的理论知识,总之,收获颇多。