数字信号处理实验答案同名15633.docx
- 文档编号:11010425
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:65
- 大小:1.25MB
数字信号处理实验答案同名15633.docx
《数字信号处理实验答案同名15633.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验答案同名15633.docx(65页珍藏版)》请在冰豆网上搜索。
数字信号处理实验答案同名15633
实验一熟悉Matlab环境
一、实验目的
1.熟悉MATLAB的主要操作命令。
2.学会简单的矩阵输入和数据读写。
3.掌握简单的绘图命令。
4.用MATLAB编程并学会创建函数。
5.观察离散系统的频率响应。
二、实验内容
认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。
在熟悉了MATLAB基本命令的基础上,完成以下实验。
上机实验内容:
(1)数组的加、减、乘、除和乘方运算。
输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
clearall;
a=[1234];
b=[3456];
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([05]);ylabel('A');
subplot(4,2,2);stem(n,b);
xlabel('n');xlim([05]);ylabel('B');
subplot(4,2,3);stem(n,c);
xlabel('n');xlim([05]);ylabel('C');
subplot(4,2,4);stem(n,d);
xlabel('n');xlim([05]);ylabel('D');
subplot(4,2,5);stem(n,e);
xlabel('n');xlim([05]);ylabel('E');
subplot(4,2,6);stem(n,f);
xlabel('n');xlim([05]);ylabel('F');
subplot(4,2,7);stem(n,g);
xlabel('n');xlim([05]);ylabel('G');
(2)用MATLAB实现下列序列:
a)x(n)=0.8n0≤n≤15
b)x(n)=e(0.2+3j)n0≤n≤15
c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15
d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。
e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。
clearall;
N=0:
15;
%a)x(n)=0.8n0≤n≤15
xa=0.8.^N;
figure;subplot(2,1,1);stem(N,xa);xlabel('n');xlim([016]);ylabel('xa');
%b)x(n)=e(0.2+3j)n0≤n≤15
xb=exp((0.2+3*j)*N);
subplot(2,1,2);stem(N,xb);
xlabel('n');xlim([016]);ylabel('xb');figure;
%c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15
xc=3*cos(0.125*pi*N+0.2*pi)+2*sin(0.25*pi*N+0.1*pi);
subplot(3,1,1);stem(N,xc);xlabel('n');xlim([016]);ylabel('xc');
%d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。
k=0:
3;m=0;
fori=1:
4
forj=1:
16
m=m+1;
n(m)=N(j)+16*k(i);
x16(m)=3*cos(0.125*pi*n(m)+0.2*pi)+2*sin(0.25*pi*n(m)+0.1*pi);
end
end
subplot(3,1,2);stem(n,x16);xlabel('n');ylabel('x16');
%e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。
forj=1:
10
x10(j)=x16(j);
end
fori=1:
3
form=1:
10
x10(i*10+m)=x10(m);
end
end
n=1:
40;
subplot(3,1,3);stem(n,x10);xlabel('n');ylabel('x10');
(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本:
a)x1(n)=2x(n+2)-x(n-1)-2x(n)
b)
clearall
n=1:
4;
T=4;
x=[1-135];
x(5:
8)=x(1:
4);
subplot(2,1,1);stem(1:
8,x);grid;
fori=1:
4
ifi-1<0
x1(i)=2*x(i+2)-x(i-1)-2*x(i);
else
x1(i)=2*x(i+2)-x(i-1+T)-2*x(i);
end
end
x1(5:
8)=x1(1:
4);
subplot(2,1,2);stem(1:
8,x1);grid;
(4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注:
a)x(t)=sin(2πt)0≤t≤10s
b)x(t)=cos(100πt)sin(πt)0≤t≤4s
ta=0:
0.05:
10;
xa=sin(2*pi*ta);
subplot(2,1,1);plot(ta,xa);
xlabel('t');ylabel('幅度');
tb=0:
0.01:
4;
xb=cos(100*pi*tb).*sin(pi*tb);
subplot(2,1,2);plot(tb,xb);
xlabel('t');ylabel('幅度');
(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1 n0=5;ns=1;nf=10;%ns为起点;nf为终点;在=n=n0处生成单位阶跃序列 n=[ns: nf]; x=[(n-n0)>=0]; stem(n,x); (6)给一定因果系统 求出并绘制H(z)的幅频响应与相频响应。 clearall; 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); ph=angle(h); subplot(2,1,2);plot(w,ph); (7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。 clearall; a=[8-2-123]; b=[23-1-3]; c=conv(a,b);%计算卷积 M=length(c)-1; n=0: 1: M; stem(n,c); xlabel('n');ylabel('幅度'); (8)求以下差分方程所描述系统的单位脉冲响应h(n),0≤n≤50 y(n)+0.1y(n-1)-0.06y(n-2)=x(n)-2x(n-1) clearall; 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('幅度'); 实验二信号的采样与重建 一,实验目的 (1)通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。 (2)通过实验,了解数字信号采样转换过程中的频率特征。 (3)对实际的音频文件作内插和抽取操作,体会低通滤波器在内插和抽取中的作用。 二,实验内容 (1)采样混叠,对一个模拟信号Va(t)进行等间采样,采样频率为200HZ,得到离散时间信号V(n).Va(t)由频率为30Hz,150Hz,170Hz,250Hz,330Hz的5个正弦信号的加权和构成。 Va(t)=6cos(60pi*t)+3sin(300pi*t)+2cos(340pi*t)+4cos(500pi*t)+10sin(660pi*t)观察采样后信号的混叠效应。 程序: clear, closeall, t=0: 0.1: 20; Ts=1/2; n=0: Ts: 20; V=8*cos(0.3*pi*t)+5*cos(0.5*pi*t+0.6435)-10*sin(0.7*pi*t); Vn=8*cos(0.3*pi*n)+5*cos(0.5*pi*n+0.6435)-10*sin(0.7*pi*n); subplot(221) plot(t,V), gridon, subplot(222) stem(n,Vn,'.'), gridon, (2)输入信号X(n)为归一化频率f1=0.043,f2=0.31的两个正弦信号相加而成,N=100,按因子M=2作抽取: (1)不适用低通滤波器; (2)使用低通滤波器。 分别显示输入输出序列在时域和频域中的特性。 程序: clear; N=100; M=2; f1=0.043; f2=0.31; n=0: N-1; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); y1=x(1: 2: 100); y2=decimate(x,M,'fir'); figure (1); stem(n,x(1: N)); title('inputsequence'); xlabel('n');ylabel('fudu'); figure (2); n=0: N/2-1; stem(n,y1); title('outputsequencewithoutLP'); xlabel('n');ylabel('fudu'); figure(3); m=0: N/M-1; stem(m,y2(1: N/M)); title('outputsequencewithLP'); xlabel('n');ylabel('fudu'); figure(4); [h,w]=freqz(x); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheinputsequence'); xlabel('w');ylabel('fudu'); figure(5); [h,w]=freqz(y1); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequencewithoutLP'); xlabel('w');ylabel('fudu'); figure(6); [h,w]=freqz(y2); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequencewithoutLP'); xlabel('w');ylabel('fudu'); (3)输入信号X(n)为归一化频率f1=0.043,f2=0.31的两个正弦信号相加而成,长度N=50,内插因子为2. (1)不适用低通滤波器; (2)使用低通滤波器。 分别显示输入输出序列在时域和频域中的特性。 程序: clear, closeall, N=50; L=2; f1=0.043; f2=0.31; n=0: N-1; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); figure (1); stem(n,x(1: N)); title('inputsequence'); xlabel('n');ylabel('fudu'); y1=zeros(1,N*2); y1(1: 2: N*2)=x; figure (2); m=0: N*L-1; stem(m,y1(1: N*L)); title('outputsequence'); xlabel('n');ylabel('fudu'); y2=interp(x,L); figure(3); m=0: N*L-1; stem(m,y2(1: N*L)); title('outputsequence'); xlabel('n');ylabel('fudu'); figure(4); [h,w]=freqz(x); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheinputsequence'); xlabel('w');ylabel('fudu'); figure(5); [h,w]=freqz(y1); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); figure(6); [h,w]=freqz(y2); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); 2.(3)令x(n)=cos(2*pi*f*n/fs),其中f/fs=1/16,即每个周期内有16个点。 试用MATLAB编程实现: 1).作M=4倍的抽取,使每个周期变成4点。 程序: clear, closeall, N=100; M=4; n=0: N-1; x=cos(2*pi*n*(1/16)); stem(n,x(1: N)); title('inputsequence'); xlabel('n');ylabel('fudu'); y1=x(1: 4: 100); y2=decimate(x,M,'fir'); figure (2); m=0: N/4-1; stem(m,y1); title('outputsequence'); xlabel('n');ylabel('fudu'); figure(3); m=0: N/M-1; stem(m,y2(1: N/M)); title('outputsequence'); xlabel('n');ylabel('fudu'); figure(4); [h,w]=freqz(x); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheinputsequence'); xlabel('w');ylabel('fudu'); figure(5); [h,w]=freqz(y1); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); figure(6); [h,w]=freqz(y2); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); 2).作L=3倍的插值,使每个周期变成48点。 程序: clear, closeall, N=50; L=3; n=0: N-1; x=cos(2*pi*n*(1/16)); figure (1); stem(n,x(1: N)); title('inputsequence'); xlabel('n');ylabel('fudu'); y1=zeros(1,N*3); y1(1: 3: N*3)=x; figure (2); m=0: N*3-1; stem(m,y1(1: N*3)); title('outputsequence'); xlabel('n');ylabel('fudu'); y2=interp(x,L); figure(3); m=0: 5: N*L-1; stem(m,y2(1: 5: N*L)); title('outputsequence'); xlabel('n');ylabel('fudu'); figure(4); [h,w]=freqz(x); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheinputsequence'); xlabel('w');ylabel('fudu'); figure(5); [h,w]=freqz(y1); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); figure(6); [h,w]=freqz(y2); plot(w(1: 64),abs(h(1: 64))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); (4).输入信号x(n)为归一化频率分别是f1=0.04,f2=0.3的正弦信号相加而成,N=50,内插因子为5,抽取因子为3,给出按有理因子5/3做采样率转换的输入输出波形。 程序: clear, closeall, N=50; M=3; L=5; f1=0.04; f2=0.3; n=0: N-1; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); y=resample(x,L,M); figure (1); stem(n,x(1: N)); title('inputsequence'); xlabel('n');ylabel('fudu'); figure (2); m=0: N-1; stem(m,y(1: N)); title('outputsequence'); xlabel('n');ylabel('fudu'); figure(3); [h,w]=freqz(x); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheinputsequence'); xlabel('w');ylabel('fudu'); figure(4); [h,w]=freqz(y); plot(w(1: 512),abs(h(1: 512))); title('frequencyspectrumoftheoutputsequence'); xlabel('w');ylabel('fudu'); 实验三快速Fourier变换(FFT)及其应用 一、实验目的 1. 在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉FFT子程序。 2. 熟悉应用FFT对典型信号进行频谱分析的方法。 3. 了解应用FFT进行信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT。 4. 熟悉应用FFT实现两个序列的线性卷积的方法。 5. 初步了解用周期图法作随机信号谱分析的方法。 二、实验原理与方法 在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使 用离散Fouier变换(DFT)。 这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为: 反变换为: 有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。 FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。 它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。 常用的FFT是以2为基数的,其长度 。 它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。 (一)、在运用DFT进行频谱分析的过程中可能产生三种误差: (1) 混叠 序列的频谱时被采样信号的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。 避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。 (2) 泄漏 实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。 泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。 为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。 (3) 栅栏效应 DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏来观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点或谷点被“尖桩的栅栏”所拦住,不能别我们观察到。 减小栅栏效应的一个方法就是借助于在原序列的末端填补一些零值,从而变动DFT的点数,这一方法实际上是人为地改变了对真实频谱采样的点数和位置,相当于搬动了每一根“尖桩栅栏”的位置,从而使得频谱的峰点或谷点暴露出来。 (二)、用FFT计算线性卷积 用FFT可以实现两个序列的圆周卷积。 在一定的条件下,可以使圆周卷积等于线性卷积。 一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度 N≥N1+N2 对于长度不足N的两个序列,分别将他们补零延长到N。 当两个序列中有一个序列比较长的时候,我们可以采用分段卷积的方法。 有两种方法: 重叠相加法。 将长序列分成与短序列相仿的片段,分别用FFT对它们作线性卷积,再将分段卷积各段重叠的部分相加构成总的卷积输出。 重叠保留法。 这种方法在长序列分段时,段与段之间保留有互
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 答案 同名 15633
![提示](https://static.bdocx.com/images/bang_tan.gif)