数字信号处理实验学习通超星课后章节答案期末考试题库2023年_第1页
数字信号处理实验学习通超星课后章节答案期末考试题库2023年_第2页
数字信号处理实验学习通超星课后章节答案期末考试题库2023年_第3页
数字信号处理实验学习通超星课后章节答案期末考试题库2023年_第4页
数字信号处理实验学习通超星课后章节答案期末考试题库2023年_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字信号处理实验学习通超星课后章节答案期末考试题库2023年1.

请用randn/normrnd/rand函数生成四个随机数[a1,a2,a3,a4],并将该四个数作差分方程的系数构成一个三阶的差分方程:y(n)+a1y(n-1)+a2y(n-2)+a3y(n-3)=x(n)+a4x(n-1)(1)

请将运行结果写出:(5分)差分方程:(2)请判断该系统是IIR还是FIR结构?(5分)因为有递归所以y是有反馈的同时是无限长的所以是IIR。

2.

分析题1所产生差分方程的频率响应和系统函数:(90)(1)

请计算并绘制出该差分方程的零极点图(zplane),并通过极点分布情况判断该差分方程是否能表示一个因果稳定系统;代码:零极点图:

(2)

计算并绘制该系统单位脉冲响应h(n)的前50个样本;(impz或者filter函数都可)代码:

h(n)图:

(3)

请计算并写出该差分方程零极点表示的因式分解形式的系统函数H(Z);(tf2zp)代码:因式分解形式:

(4)

请计算并写出该差分方程二阶矩表示的因式分解形式;(zp2sos)代码:sos矩阵:因式形式:因式分解形式:

(5)

请计算出该差分方式的频率响应函数(freqz)并绘制出其实部(real)、虚部(imag)、相位(angle)、幅度(abs),并判断各自的对称性;代码:图:由该图可知频谱的对称性:

(6)

判断该差分方程表示的系统是否线性相位(群延迟是否为常数grpdelay)?该系统为哪一类频选滤波器(低通、高通、带通、带阻)(gain)。代码:群延迟(5分):

滤波器图:由图可知该系统为:

参考答案:

1(1)差分方程:an=[0.5377

1.8339

-2.2588

0.8622]y(n)+0.5377y(n-1)+1.8339y(n-2)+-2.2588y(n-3)=x(n)+0.8622x(n-1)

(2)因此系统存在反馈,所以该系统是IIR系统2(1)程序:den=[10.53771.8339-2.2588];num=[10.8622];zplane(num,den)xlabel('RealPart');ylabel('ImaginaryPart');结果:此系统是因果稳定系统(2)程序:den=[10.53771.8339-2.2588];num=[10.8622];[H,T]=impz(num,den,50);stem(H,T)xlabel('Timeindexn');ylabel('Amplitude');结果:(3)程序:den=[10.53771.8339-2.2588];num=[10.8622];[z,p,k]=tf2zp(num,den)sos=zp2sos(z,p,k)零点:z=-0.8622极点p=[-0.6618+1.5608i

-0.6618-1.5608i

0.7859+0.0000i](4)增益常数:k=1sos=[0

1.0000

0

1.0000

-0.7859

0

0

1.0000

0.8622

1.0000

1.3236

2.8741](5)程序:w=-4*pi:8*pi/511:4*pi;den=[10.53771.8339-2.2588];num=[10.8622];h=freqz(num,den,w);%PlottheDTFTsubplot(2,1,1)

plot(w/pi,real(h));gridtitle('RealpartofH(e^{j\omega})')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,1,2)plot(w/pi,imag(h));gridtitle('ImaginarypartofH(e^{j\omega})')xlabel('\omega/\pi');ylabel('Amplitude');pausesubplot(2,1,1)plot(w/pi,abs(h));gridtitle('MagnitudeSpectrum|H(e^{j\omega})|')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,1,2)plot(w/pi,angle(h));gridtitle('PhaseSpectrumarg[H(e^{j\omega})]')xlabel('\omega/\pi');ylabel('Phase,radians');结果:由图得,实部为偶对称;虚部为奇对称由图得,幅度为偶对称;相位为奇对称(6)程序:clf;w=0:pi/511:pi;den=[10.53771.8339-2.2588];num=[10.8622];[gd,w]=grpdelay(num,den);plot(w,gd)xlabel('w');ylabel('gd');结果:此系统的群延迟不是常数,此系统为非线性相位结果:该系统为低通滤波器

Q.2.15在非零初始条件下重做习题2.12,该系统是时不变系统吗?

参考答案:

不是时不变%ProgramP2_4%Generatetheinputsequencesclf;n=0:40;D=10;a=3.0;b=-2;x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);xd=[zeros(1,D)x];num=[2.24032.49082.2403];den=[1-0.40.75];ic=[1-1];%Setinitialconditions%Computetheoutputy[n]y=filter(num,den,x,ic);%Computetheoutputyd[n]yd=filter(num,den,xd,ic);%Computethedifferenceoutputd[n]d=y-yd(1+D:41+D);%Plottheoutputssubplot(3,1,1)stem(n,y);ylabel('Amplitude');

title('Outputy[n]');grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('Amplitude');title('OutputduetoDelayedInputx[n?,num2str(D),');grid;subplot(3,1,3)stem(n,d);xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q.2.16在非零初始条件下重做习题2.14,该系统是时不变系统吗?

参考答案:

x=a*cos(2*pi*0.4*n)+b*cos(2*pi*0.4*n);

ic=[1-1]不是时不变

x=a*cos(2*pi*0.5*n)+b*cos(2*pi*0.5*n);

ic=[1-1]不是时不变x=a*cos(2*pi*1*n)+b*cos(2*pi*1*n);

ic=[1-1]不是时不变

Q1.10命令subplot的作用是什么?

参考答案:

分割绘图区域

Q1.12x=k-*a.^n指数序列中,那个参数控制该序列的增长或者衰减?哪个参数控制该序列的振幅?

参考答案:

a;k

Q1.13运算符^和.^的区别是什么?

参考答案:

^:矩阵运算.^:矩阵内部运算

Q1.15该序列的长度是多少?怎样才能改变它?

参考答案:

36,改变n

Q1.18

n=0:40;f=0.1;phase=0;A=1.5;序列x=A*cos(2*pi*f*n-phase)的频率是多少?怎样可以改变它?哪个参数控制该序列的相位?哪个参数控制该序列的振幅?该序列的周期是多少?

参考答案:

频率:0.1

Q1.19该序列的长度是多少?怎样改变它?

参考答案:

41调整n

Q1.2命令clf,axis,title,xlable,ylable的作用是什么?

参考答案:

clf:清除图形和数据axis:限定图形坐标的范围title:在图形的上方标注图名xlable:在横坐标的下方标注说明ylable:在纵坐标的左侧标注说明

Q1.21axis和grid命令的作用是什么?

参考答案:

axis:限定图形坐标范围grid:

显示或者隐藏坐标区网格线

Q1.26编写一个MATLAB程序,产生长度为100,在[-2,2]之间均匀分布。

参考答案:

x=4.*rand(1,100)-2

Q1.27

编写一个MATLAB程序,产生一个长度为75,均值为0,方差为3的正态随机信号。

参考答案:

x2=normrnd(0,3,1,75)

Q1.30未污染的信号s[n]是什么样的形式?加性噪声d[n]是什么样的形式?

参考答案:

未污染的信号s【n】是先2m占主导振幅呈现递增的形式再有0.9……m占主导呈现指数衰减的形式加性噪声d【n】是随机序列的形式

Q1.31语句x=s+d能产生被噪声污染的信号吗?若不能,为什么?

参考答案:

不能。因为只有行和列相同的行列式才能相加,如果不转置d直接相加MATLAB就会报错。

Q1.32信号x1,x2,x3和x之间的关系是什么?

参考答案:

(1)x1是时刻n的前一个时刻的含有噪声的信号(2)x2是时刻n的含有噪声的信号(3)x3是时刻n的后一个时刻的含有噪声的信号

Q1.35运算符*和.*之间的区别是什么?

参考答案:

a*b表示矩阵a与矩阵b进行矩阵相乘,a.*b表示矩阵a中的元素与矩阵b中的元素按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素

Q1.37该序列最小频率是多少?最大频率是多少?

参考答案:

0,π

Q1.38

如何修改上面的程序才能产生一个最小频率为0.1,最大频率为0.3的扫频正弦信号。

参考答案:

(1)将b改为0.1,将a改为0.001(2)将n序列改为10/π,30/π

Q1.39在命令窗口键入who,此时在窗口中会显示上面信息?

参考答案:

在命令窗口中键入who。此时在命令窗口中会显示变量名并且按照字母顺序排列。

Q1.40在命令窗口键入whos,此时在窗口中会显示上面信息?

参考答案:

在命令窗口中键入whos。此时在命令窗口中会显示所有变量及这些变量的大小、存储大小、数据类型、属性。同时变量的排序方式比一定按照字母排序。

Q1.7x=k*exp(c*n)指数序列中,那个参数控制该序列的增长或者衰减?哪个参数控制该序列的振幅?

参考答案:

c,k

Q1.9函数real和imag的作用是什么?

参考答案:

real:取复数的实部imag:取复数的虚部

Q2.1对M=2运行程序P2.1,生成输入x[n]=s1[n]+s2[n]的输出信号。输入x[n]的哪个分量被该离散时间系统抑制?

参考答案:

图中输出信号是将高平信号过滤,相当于一个低通滤波器,所以被抑制%ProgramP2_1%SimulationofanM-pointMovingAverageFilter%Generatetheinputsignaln=0:100;s1=cos(2*pi*0.05*n);%Alow-frequencysinusoids2=cos(2*pi*0.47*n);%Ahighfrequencysinusoidx=s1+s2;%ImplementationofthemovingaveragefilterM=input('Desiredlengthofthefilter=');num=ones(1,M);y=filter(num,1,x)/M;%Displaytheinputandoutputsignalsclf;subplot(2,2,1);plot(n,s1);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#1');subplot(2,2,2);plot(n,s2);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#2');subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('InputSignal');subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('OutputSignal');axis;

Q2.10

当初始条件非零时重新做Q2.8。

参考答案:

a=1b=-1

ic=[1,-1]a=2b=-1

ic=[1,-1]a=3b=-2

ic=[1,-1]

Q2.12运行程序P2.4并比较输出序列y[n],yd[n-10],这两个序列之间有什么关系?该系统是时不变系统吗?

参考答案:

y[n-10]是y[n]后移,是时不变系统。%ProgramP2_4%Generatetheinputsequencesclf;n=0:40;D=10;a=3.0;b=-2;x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);xd=[zeros(1,D)x];num=[2.24032.49082.2403];den=[1-0.40.75];ic=[00];%Setinitialconditions%Computetheoutputy[n]y=filter(num,den,x,ic);%Computetheoutputyd[n]yd=filter(num,den,xd,ic);%Computethedifferenceoutputd[n]d=y-yd(1+D:41+D);%Plottheoutputssubplot(3,1,1);stem(n,y);ylabel('Amplitude');

title('Outputy[n]');grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('Amplitude');title(['OutputduetoDelayedInputx[n

,num2str(D),']']);grid;subplot(3,1,3);stem(n,d);xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q2.13采用三个不同的延时变量D重新做Q2.12。

参考答案:

D=3时不变D=5时不变D=10时不变

Q2.14采用三个不同的输入频率重新做Q2.13。

参考答案:

x=a*cos(2*pi*0.4*n)+b*cos(2*pi*0.4*n);是时不变;x=a*cos(2*pi*0.5*n)+b*cos(2*pi*0.5*n);是时不变;x=a*cos(2*pi*1*n)+b*cos(2*pi*1*n);是时不变。

Q2.17考虑另一个系统:y[n]=nx[n]+x[n-1],修改程序P2.4,仿真上面的系统并判断是否为时不变系统?

参考答案:

%ProgramP2_4%Generatetheinputsequencesclf;x1=[0x];x1=x1(1:41);x2=[x0];x2=x2(1:41);y=n.*x1+x2;xd1=[zeros(1,D)x0];xd1=xd1(1+D:41+D);xd2=[zeros(1,D+1)x];xd2=xd2(1+D:41+D);yd=(n+D).*xd1+xd2;d=y-yd;%Plottheoutputssubplot(3,1,1)stem(n,y);ylabel('Amplitude');

title('Outputy[n]');grid;subplot(3,1,2)stem(n,yd(1:41));ylabel('Amplitude');title('OutputduetoDelayedInputx[n?,num2str(D),');grid;subplot(3,1,3)stem(n,d);xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q2.19修改程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。

参考答案:

%ProgramP2_5%Computetheimpulseresponseyclf;N=40;num=[2.24032.49082.2403];den=[1-0.40.75];y=impz(num,den,N);%Plottheimpulseresponsestem(y);xlabel('Timeindexn');ylabel('Amplitude');title('ImpulseResponse');grid;

Q2.2若LTI系统y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1]),对输入信号x[n]=s1[n]+s2[n]有什么影响?

参考答案:

图中输出信号是将低频信号过滤,相当于一个高通滤波器,所以s1被抑制%ProgramP2_1%SimulationofanM-pointMovingAverageFilter%Generatetheinputsignaln=0:100;s1=cos(2*pi*0.05*n);%Alow-frequencysinusoids2=cos(2*pi*0.47*n);%Ahighfrequencysinusoidx=s1+s2;%ImplementationofthemovingaveragefilterM=input('Desiredlengthofthefilter=');num=[1,1];y=filter(num,1,x)/M;%Displaytheinputandoutputsignalsclf;subplot(2,2,1);plot(n,s1);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#1');subplot(2,2,2);plot(n,s2);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#2');subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('InputSignal');subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('OutputSignal');axis;

Q2.20修改程序P2.5,产生如下因果LTI系统的冲激响应前45个样本。y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3]=0.9x[n]-0.45x[n-1]+0.35x[n-2]+0.002x[n-3]

参考答案:

Q2.20喕改喀啠P2.5,产生喗下喖果LTI系统的冲激啔应喔45个样本。y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3]=0.9x[n]-0.45x[n-1]+0.35x[n-2]+0.002x[n-3]%ProgramP2_5%Computetheimpulseresponseyclf;N=40;num=[0.9-0.450.350.002];den=[10.71-0.46-0.62];y=impz(num,den,N);%Plottheimpulseresponsestem(y);xlabel('Timeindexn');ylabel('Amplitude');title('ImpulseResponse');grid;

Q2.21利用filter命令编写一个MATLAB程序,写出式2.17的因果LTI系统的冲激响应的前40个样本,并和Q2.20比较。

参考答案:

%ProgramP2_5%Computetheimpulseresponseyclf;N=40;num=[2.24032.49082.2403];den=[1-0.40.75];y=impz(num,den,N);ic=[00];x=ones(1,40);y1=dstep(num,den,N);y2=filter(num,den,x,ic);d=y1-y2;%Plottheimpulseresponsestem(y);xlabel('Timeindexn');ylabel('Amplitude');title('ImpulseResponse');grid;

Q2.22利用filter命令编写一个MATLAB程序,写出式2.11的因果LTI系统的阶跃响应的前40个样本,用该程序计算并画出式(2.15)的因果LTI系统的前40个样本。

参考答案:

%ProgramP2_5%Computetheimpulseresponseyclf;u=ones(1,39);num=[2.24032.49082.2403];den=[1-0.40.75];y=filter(num,den,u);stem(y);xlabel('Timeindexn');ylabel('Amplitude');title('ImpulseResponse');grid;

Q2.24将输入改成一个正弦序列,重新做2.23题。

参考答案:

%ProgramP2_6%CascadeRealizationclf;x=sin(2*pi*n);%Generatetheinputn=0:40;%Coefficientsof4thordersystemden=[11.62.281.3250.68];num=[0.06-0.190.27-0.260.12];%Computetheoutputof4thordersystemy=filter(num,den,x);%Coefficientsofthetwo2ndordersystemsnum1=[0.3-0.20.4];den1=[10.90.8];num2=[0.2-0.50.3];den2=[10.70.85];%Outputy1[n]ofthefirststageinthecascadey1=filter(num1,den1,x);%Outputy2[n]ofthesecondstageinthecascadey2=filter(num2,den2,y1);%Differencebetweeny[n]andy2[n]d=y-y2;%Plotoutputanddifferencesignalssubplot(3,1,1);stem(n,y);ylabel('Amplitude');title('Outputof4thorderRealization');grid;subplot(3,1,2);stem(n,y2)ylabel('Amplitude');title('OutputofCascadeRealization');grid;subplot(3,1,3);stem(n,d)xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q2.25用任意的非零初始向量ic1,ic2,ic,重新做2.23题。

参考答案:

%CascadeRealizationclf;x=[1zeros(1,40)];%Generatetheinputn=0:40;x=cos(2*pi*0.03*n);%Coefficientsof4thordersystemden=[11.62.281.3250.68];num=[0.06-0.190.27-0.260.12];ic=[1234];%Computetheoutputof4thordersystemy=filter(num,den,x,ic);%Coefficientsofthetwo2ndordersystemsnum1=[0.3-0.20.4];den1=[10.90.8];num2=[0.2-0.50.3];den2=[10.70.85];ic1=[12];%Outputy1[n]ofthefirststageinthecascadey1=filter(num1,den1,x,ic1);ic2=[34];%Outputy2[n]ofthesecondstageinthecascadey2=filter(num2,den2,y1,ic2);%Differencebetweeny[n]andy2[n]d=y-y2;%Plotoutputanddifferencesignalssubplot(3,1,1);stem(n,y);ylabel('Amplitude');title('Outputof4thorderRealization');grid;subplot(3,1,2);stem(n,y2)ylabel('Amplitude');title('OutputofCascadeRealization');grid;subplot(3,1,3);stem(n,d)xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q2.26将两个二阶系统顺序颠倒并在零初始条件下重复此过程。两个输出之间有差别吗?

参考答案:

%CascadeRealizationclf;x=[1zeros(1,40)];%Generatetheinputn=0:40;x=cos(2*pi*0.03*n);%Coefficientsof4thordersystemden=[11.62.281.3250.68];num=[0.06-0.190.27-0.260.12];%Computetheoutputof4thordersystemy=filter(num,den,x);%Coefficientsofthetwo2ndordersystemsnum1=[0.3-0.20.4];den1=[10.90.8];num2=[0.2-0.50.3];den2=[10.70.85];%Outputy1[n]ofthefirststageinthecascadey1=filter(num2,den2,x);%Outputy2[n]ofthesecondstageinthecascadey2=filter(num,den1,y1);%Differencebetweeny[n]andy2[n]d=y-y2;%Plotoutputanddifferencesignalssubplot(3,1,1);stem(n,y);ylabel('Amplitude');title('Outputof4thorderRealization');grid;subplot(3,1,2);stem(n,y2)ylabel('Amplitude');title('OutputofCascadeRealization');grid;subplot(3,1,3);stem(n,d)xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q2.27用任意非零初始向量ic,ic1,ic2重做习题

Q2.26.

参考答案:

%CascadeRealizationclf;x=[1zeros(1,40)];%Generatetheinputn=0:40;x=cos(2*pi*0.03*n);%Coefficientsof4thordersystemden=[11.62.281.3250.68];num=[0.06-0.190.27-0.260.12];ic=[1234];%Computetheoutputof4thordersystemy=filter(num,den,x,ic);%Coefficientsofthetwo2ndordersystemsnum1=[0.3-0.20.4];den1=[10.90.8];num2=[0.2-0.50.3];den2=[10.70.85];ic1=[12];ic2=[34];%Outputy1[n]ofthefirststageinthecascadey1=filter(num2,den2,x,ic1);%Outputy2[n]ofthesecondstageinthecascadey2=filter(num1,den1,y1,ic2);%Differencebetweeny[n]andy2[n]d=y-y2;%Plotoutputanddifferencesignalssubplot(3,1,1);stem(n,y);ylabel('Amplitude');title('Outputof4thorderRealization');grid;subplot(3,1,2);stem(n,y2)ylabel('Amplitude');title('OutputofCascadeRealization');grid;subplot(3,1,3);stem(n,d)xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');grid;

Q2.28运行程序P2.7,对序列h[n]和x[n]求卷积,生成y[n],并用FIR滤波器h[n]对输入x[n]滤波,求得y1[n]。y[n],y1[n]有差别吗?为什么要使用对x[n]补零后得到的x1[n]作为输入来产生y1[n].

参考答案:

%ProgramP2_7clf;h=[321-210-403];

%impulseresponsex=[1-23-4321];

%inputsequencey=conv(h,x);n=0:14;subplot(2,1,1);stem(n,y);xlabel('Timeindexn');ylabel('Amplitude');title('OutputObtainedbyConvolution');grid;x1=[xzeros(1,8)];y1=filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Timeindexn');ylabel('Amplitude');title('OutputGeneratedbyFiltering');grid;y[n],y1[n]没有差别长度一样才能产生

Q2.29修改程序P2.7,计算长度为15的序列h[n]和长度为10的序列x[n]的卷积,重做习题Q2.28。其中h[n]和x[n]的样本值自定。

参考答案:

%ProgramP2_7clf;h=[3141592654-3-1-4-1-5];%impulseresponsex=[01210-1-2-101];%inputsequencey=conv(h,x);n=0:length(h)+length(x)-2;subplot(2,1,1);stem(n,y);xlabel('Timeindexn');ylabel('Amplitude');title('OutputObtainedbyConvolution');grid;x1=[xzeros(1,length(h)-1)];y1=filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Timeindexn');ylabel('Amplitude');title('OutputGeneratedbyFiltering');grid;

Q2.3对滤波器长度M和正弦s1[n]和s2[n]的频率取其他值,运行程序是P2.1,算出结果。

参考答案:

%ProgramP2_1%SimulationofanM-pointMovingAverageFilter%Generatetheinputsignaln=0:100;s1=cos(2*pi*0.05*n);%Alow-frequencysinusoids2=cos(2*pi*0.47*n);%Ahighfrequencysinusoidx=s1+s2;%ImplementationofthemovingaveragefilterM=input('Desiredlengthofthefilter=');num=[1,1];y=filter(num,1,x)/M;%Displaytheinputandoutputsignalsclf;subplot(2,2,1);plot(n,s1);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#1');subplot(2,2,2);plot(n,s2);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#2');subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('InputSignal');subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('OutputSignal');axis;

Q2.30程序中为什么要使用for,end命令?

参考答案:

1.程序中使用命令for是为了将h[n]进行迭代求和,以此能够判断S(k)是否是绝对可和的。2.程序中使用命令end是表示循环体到此结束或if判断语句到此结束。

Q2.31使用break命令的目的是什么?

参考答案:

让for或while循环停止

Q2.32程序P2.8确定的冲激响应所对应的离散时间系统是什么?生成该冲激响应,该系统稳定吗?若|h[k]|≥10^-6,且图形显示了一个衰减的冲激响应,用一个较大的N值重新运行程序P2.8。

参考答案:

%ProgramP2_8%Stabilitytestbasedonthesumoftheabsolute

%valuesoftheimpulseresponsesamplesclf;num=[1-0.8];den=[11.5

0.9];N=300;h=impz(num,den,N+1);parsum=0;fork=1:N+1;parsum=parsum+abs(h(k));ifabs(h(k))<10^(-6),break,endend%Plottheimpulseresponsen=0:N;stem(n,h)xlabel('Timeindexn');ylabel('Amplitude');%Printthevalueofabs(h(k))

disp('Value=');disp(abs(h(k)));

Q2.33考虑用差分方程y[n]=x[n]-4x[n-1]+3x[n-2]+1.7y[n-1]-y[n-2]描述的离散时间系统。修改程序P2.8,计算并画出上述系统的冲激响应。该系统稳定吗?

参考答案:

%ProgramP2_8%Stabilitytestbasedonthesumoftheabsolute

%valuesoftheimpulseresponsesamplesclf;num=[1-43];den=[1-1.71.0];N=200;h=impz(num,den,N+1);parsum=0;fork=1:N+1;parsum=parsum+abs(h(k));ifabs(h(k))<10^(-6),break,endend%Plottheimpulseresponsen=0:N;stem(n,h)xlabel('Timeindexn');ylabel('Amplitude');%Printthevalueofabs(h(k))

disp('Value=');disp(abs(h(k)));

Q2.34运行程序P2.9。在该程序中,两个滤波器都是低通滤波器,在阻带中,尤其是在输入信号的频点上,有不同的衰减。哪个滤波器能更好的抑制输入信号x[n]的高频分量?

参考答案:

%ProgramP2_9%Generatetheinputsequenceclf;n=0:299;x1=cos(2*pi*10*n/256);x2=cos(2*pi*100*n/256);x=x1+x2;%Computetheoutputsequencesnum1=[0.50.270.77];y1=filter(num1,1,x);%OutputofSystem#1den2=[1-0.530.46];num2=[0.450.50.45];y2=filter(num2,den2,x);%OutputofSystem#2%Plottheoutputsequencessubplot(2,1,1);plot(n,y1);axis([0300-22]);ylabel('Amplitude');title('OutputofSystem#1');grid;subplot(2,1,2);plot(n,y2);axis([0300-22]);xlabel('Timeindexn');ylabel('Amplitude');title('OutputofSystem#2');grid;System#2更好

Q2.35修改程序P2.9,将输入改成扫频正弦信号(长度为301,最低频率为0,最高频率为0.5),哪个滤波器能更好的抑制输入信号x[n]的高频分量。

参考答案:

%ProgramP2_9%Generatetheinputsequenceclf;n=0:300;a=pi/600;b=0;arg=a*n.*n+b*n;x=cos(arg);%Computetheoutputsequencesnum1=[0.50.270.77];y1=filter(num1,1,x);%OutputofSystem#1den2=[1-0.530.46];num2=[0.450.50.45];y2=filter(num2,den2,x);%OutputofSystem#2%Plottheoutputsequencessubplot(2,1,1);plot(n,y1);axis([0300-22]);ylabel('Amplitude');title('OutputofSystem#1');grid;subplot(2,1,2);plot(n,y2);axis([0300-22]);xlabel('Timeindexn');ylabel('Amplitude');title('OutputofSystem#2');grid;System#2能更好的抑制输入信号x[n]的高频分量

Q2.4修改程序P2.1,用长度为101,最低频率为0,最高频率是0.5的扫频正弦信号为输入,计算其输出。尝试用该系统对扫频信号的响应来解释习题Q2.1和Q2.2.

参考答案:

%ProgramP2_1%SimulationofanM-pointMovingAverageFilter%Generatetheinputsignaln=0:100;s1=cos(2*pi*0.05*n);%Alow-frequencysinusoids2=cos(2*pi*0.47*n);%Ahighfrequencysinusoidx=s1+s2;%ImplementationofthemovingaveragefilterM=input('Desiredlengthofthefilter=');num=ones(1,M);y=filter(num,1,x)/M;%Displaytheinputandoutputsignalsclf;subplot(2,2,1);plot(n,s1);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#1');subplot(2,2,2);plot(n,s2);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('Signal#2');subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('InputSignal');subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);xlabel('Timeindexn');ylabel('Amplitude');title('OutputSignal');axis;

Q2.6用x[n]=sin(w0n)+k的正弦信号作为输入求其输出,输出信号y[n]如何收到输入DC值k的影响?

参考答案:

y[n]的第一个值和第二百个值发生改变,并不再是1,且中间的值的大小存在波动。%ProgramP2_2%Generateasinusoidalinputsignalclf;n=0:200;k=1;x=cos(2*pi*0.05*n)+k;%Computetheoutputsignalx1=[x00];%x1[n]=x[n+1]

x2=[0x0];%x2[n]=x[n]x3=[00x];%x3[n]=x[n-1]y=x2.*x2-x1.*x3;y=y(2:202);%Plottheinputandoutputsignalssubplot(2,1,1)plot(n,x)xlabel('Timeindexn');ylabel('Amplitude');title('InputSignal')subplot(2,1,2)plot(n,y)xlabel('Timeindexn');ylabel('Amplitude');itle('Outputsignal');

Q2.7运行程序P2.3,将y[n]和yt[n]进行比较,判断这两个序列是否相等?该系统是否是线性系统?

参考答案:

%ProgramP2_3%Generatetheinputsequencesclf;n=0:40;a=2;b=-3;x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;num=[2.24032.49082.2403];den=[1-0.40.75];ic=[00];%Setzeroinitialconditionsy1=filter(num,den,x1,ic);%Computetheoutputy1[n]y2=filter(num,den,x2,ic);%Computetheoutputy2[n]y=filter(num,den,x,ic);%Computetheoutputy[n]yt=a*y1+b*y2;

d=y-yt;%Computethedifferenceoutputd[n]%Plottheoutputsandthedifferencesignalsubplot(3,1,1)stem(n,y);ylabel('Amplitude');title('OutputDuetoWeightedInput:a\cdotx_{1}[n]+b\cdotx_{2}[n]');subplot(3,1,2)stem(n,yt);ylabel('Amplitude');title('WeightedOutput:a\cdoty_{1}[n]+b\cdoty_{2}[n]');subplot(3,1,3)stem(n,d);xlabel('Timeindexn');ylabel('Amplitude');title('DifferenceSignal');

Q2.8用三组不同的权系数a,b和三组不同的输入频率重新做Q2.7。

参考答案:

a=1b=-1a=2b=-1

3.a=3b=2

Q2.9当初始条件非零时重新做Q2.7。

参考答案:

将ic=[00]改为ic=[1-1]

Q3.1在程序P3.1,计算离散时间傅里叶变换的原始序列是什么?MATLAB命令pause的作用是什么?

参考答案:

H(e^jw)=(2+z^(-1))/1-0.6*z^(-1)

pause命令用于暂时中止程序的运行。当程序运行到此命令时,程序暂时中止,然后等待用户按任意键继续进行。若有参数,则暂停参数的秒数

Q3.10通过加入合适的注释和程序语句修改程序P3.3,对程序生成图形的两个轴加标记,哪个参数控制频移量?

参考答案:

%ProgramP3_3%Frequency-ShiftingPropertiesofDTFTclf;w=-pi:2*pi/255:pi;wo=0.4*pi;num1=[1357911131517];L=length(num1);h1=freqz(num1,1,w);n=0:L-1;num2=exp(wo*i*n).*num1;h2=freqz(num2,1,w);subplot(2,2,1)plot(w/pi,abs(h1));gridtitle('MagnitudeSpectrumofOriginalSequence')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,2,2)plot(w/pi,abs(h2));gridtitle('MagnitudeSpectrumofFrequency-ShiftedSequence')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,2,3)plot(w/pi,angle(h1));gridtitle('PhaseSpectrumofOriginalSequence')xlabel('\omega/\pi');ylabel('Phaseinradians');subplot(2,2,4)plot(w/pi,angle(h2));gridtitle('PhaseSpectrumofFrequency-ShiftedSequence')xlabel('\omega/\pi');ylabel('Phaseinradians');

Q3.11运行修改后的程序并讨论结果。

参考答案:

幅值和相位右移了wo

Q3.12选取不同的频移值,重新做习题3.11.

参考答案:

幅值和相位右移了wo

Q3.13

选取不同的频移值和不同的序列长度,重新做习题3.11.

参考答案:

wo=pi;num1=[1357];wo=-0.3*pi;num1=[1357911131517192123252729];

Q3.14通过加入合适的注释语句和程序语句,修改程序P3.4对程序生成图形中的两个轴加标记。

参考答案:

%ProgramP3_4%ConvolutionPropertyofDTFTclf;w=-pi:2*pi/255:pi;x1=[1357911131517];x2=[1-23-21];y=conv(x1,x2);h1=freqz(x1,1,w);h2=freqz(x2,1,w);hp=h1.*h2;h3=freqz(y,1,w);subplot(2,2,1)plot(w/pi,abs(hp));gridtitle('ProductofMagnitudeSpectra')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,2,2)plot(w/pi,abs(h3));gridtitle('MagnitudeSpectrumofConvolvedSequence')xlabel('\omega/\pi');ylabel('Amplitude');xlabel('\omega/\pi');ylabel('Phaseinradians');subplot(2,2,3)plot(w/pi,angle(hp));gridtitle('SumofPhaseSpectra')subplot(2,2,4)plot(w/pi,angle(h3));gridtitle('PhaseSpectrumofConvolvedSequence')xlabel('\omega/\pi');ylabel('Phaseinradians');

Q3.15运行修改后的程序并讨论你的结果。

参考答案:

验证了DTFT的卷积特性

Q3.16选取两个改变了长度的序列重新做习题3.15。

参考答案:

x1=[135791113151719212325];x2=[1331];

Q3.17通过加入合适的注释和程序语句修改程序P3.5,对生成的两个轴加标记。

参考答案:

%ProgramP3_5%ModulationPropertyofDTFTclf;w=-pi:2*pi/255:pi;x1=[1357911131517];x2=[1-11-11-11-11];y=x1.*x2;h1=freqz(x1,1,w);h2=freqz(x2,1,w);h3=freqz(y,1,w);subplot(3,1,1)plot(w/pi,abs(h1));gridtitle('MagnitudeSpectrumofFirstSequence')xlabel('\omega/\pi');ylabel('Amplitude');subplot(3,1,2)plot(w/pi,abs(h2));gridtitle('MagnitudeSpectrumofSecondSequence')xlabel('\omega/\pi');ylabel('Amplitude');subplot(3,1,3)plot(w/pi,abs(h3));gridtitle('MagnitudeSpectrumofProductSequence')xlabel('\omega/\pi');ylabel('Amplitude');

Q3.18运行修改后的程序并讨论你的结果。

参考答案:

从这些图中,我们得到以下观察结果:如预期的那样,乘积序列y的DTFT是1/2pi乘以两个序列x1和x2的DTFT的卷积。

Q3.19选取两个改变了长度的序列,重新做习题Q3.18.

参考答案:

x1=[1357];x2=[1-2-21];

Q3.2运行程序P3.1,求离散时间傅里叶变换的实部、虚部以及幅度和相位谱。离散时间傅里叶变换是w的周期函数吗?若是,周期是多少?描述这四个图形表示的对称性。

参考答案:

实部是周期2π偶对称,虚部是周期2π中心对称,幅度是周期2π偶对称,相位是周期2π中心对称

Q3.20通过加入合适的注释和程序语句修改程序P3.6,对程序生成的两个轴加标记,试解释程序是怎样进行时间反转计算。

参考答案:

%ProgramP3_6%TimeReversalPropertyofDTFTclf;w=-pi:2*pi/255:pi;num=[1234];L=length(num)-1;h1=freqz(num,1,w);h2=freqz(fliplr(num),1,w);h3=exp(w*L*i).*h2;subplot(2,2,1)plot(w/pi,abs(h1));gridtitle('MagnitudeSpectrumofOriginalSequence')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,2,2)plot(w/pi,abs(h3));gridtitle('MagnitudeSpectrumofTime-ReversedSequence')xlabel('\omega/\pi');ylabel('Amplitude');subplot(2,2,3)plot(w/pi,angle(h1));gridtitle('PhaseSpectrumofOriginalSequence')xlabel('\omega/\pi');ylabel('Phaseinradians');subplot(2,2,4)plot(w/pi,angle(h3));gridtitle('PhaseSpectrumofTime-ReversedSequence')xlabel('\omega/\pi');ylabel('Phaseinradians');

Q3.21运行修改后的程序并讨论结果。

参考答案:

原始的和时间反转的序列都是实值的,因此都具有共轭对称的DTFT

Q3.22选取两个不同的序列长度,重新做习题Q3.21。

参考答案:

num=[210.50.250.125]num=[1-35-79]

Q3.23编写一个MATLAB程序,计算并画出长度为N的L点离散傅里叶变换X[k]的值,其中L≥N,然后计算并画出L点离散傅里叶逆变换X[k]。对不同长度N和不同的DFT变换长度L运行程序。讨论结果。

参考答案:

clearall;N=10;L=10;w1=-pi:2*pi/L:pi;n=1:L;fori=1:Lw(i)=w1(i);endfori=1:N

x(i)=i;endxx=[xzeros(1,L-N)];y=fft(xx,L);xk=ifft(y,L);subplot(3,1,1)plot(w/pi,abs(y));gridxlabel('\omega/\pi');ylabel('振幅');title('幅度谱')subplot(3,1,2)plot(w/pi,angle(y));gridxlabel('iomega/pi');ylabel('以弧度为单位的相位');title('相位谱')subplot(3,1,3)stem(n,xk);

gridxlabel('n');ylabel('振幅');title('原始序列')N=10,L=10N=10,L=20N=10,L=50N=50,L=50

Q3.24

编写一个MATLAB程序,用一个N点复数离散傅里叶变换计算并画出两个长度为N的实数序列的N点离散傅里叶变换,并将结果同直接使用两个N点离散傅里叶变换得到的结果进行比较(见R3.13)

参考答案:

clc;closeall;clearall;clf;N=256;nn=[0:N-1];ntime=[-N/2:N/2-1];g=(0.75).^abs(ntime);h=(-0.9).^ntime;GF=fft(g);HF=fft(h);x=g+i*h;XF=fft(x);XFstar=conj(XF);XFstarmod=[XFstar(1)fliplr(XFstar(2:N))];GF2=0.5*(XF+XFstarmod);HF2=-i*0.5*(XF-XFstarmod);abs(max(GF-GF2))abs(max(HF-HF2))figure(1);clf;subplot(2,2,1);grid;plot(nn,real(GF));grid;title('TwoN-pointDFT''s');xlabel('Frequencyindexk');ylabel('Re\{[G[K]\}');subplot(2,2,2);plot(nn,imag(GF));grid;title('TwoN-pointDFT''s');xlabel('Frequencyindexk');ylabel('Im\{G[k]\}');subplot(2,2,3);grid;plot(nn,real(GF2));grid;title('SingleN-pointDFT');xlabel('Frequencyindexk');ylabel('Re\{[G[K]\}');subplot(2,2,4);plot(nn,imag(GF2));grid;title('SingleN-pointDFT');xlabel('Frequencyindexk');ylabel('Im\{G[k]\}');figure(2);clf;subplot(2,2,1);grid;plot(nn,real(HF));grid;title('TwoN-pointDET''s');xlabel('Freqindexk');ylabel('Re\{[H[K]\}');subplot(2,2,2);grid;plot(nn,imag(HF));grid;title('TwoN-pointDET''s');xlabel('Freqindexk');ylabel('Im\{H[k]\}');subplot(2,2,3);grid;plot(nn,real(HF2));grid;title('TwoN-pointDET''s');xlabel('Freqindexk');ylabel('Re\{[H[K]\}');subplot(2,2,4);grid;plot(nn,imag(HF2));grid;title('TwoN-pointDET''s');xlabel('Freqindexk');ylabel('Im\{H[k]\}');

Q3.25

编写一个MATLAB程序,用两个N点复数离散傅里叶变换计算并画出一个长度为2N的实数序列的2N点离散傅里叶变换,并将结果同直接使用一个2N点离散傅里叶变换得到的结果进行比较(见R3.14)

参考答案:

clf;N=128;TwoN=2*N;W2N=exp(-i*pi/N);k=[0:TwoN-1];v=(-0.7.^k);g=downsample(v,2);h=downsample(v,2,1);

x=g+i*h;XF=fft(x);XFstar=conj(XF);XFstarmod=[XFstar(1)fliplr(XFstar(2:N))];GF=0.5*(XF+XFstarmod);HF=-i*0.5*(XF-XFstarmod);VF=[GFGF]+(W2N.^k).*[HFHF];VF2=fft(v);abs(max(VF-VF2))subplot(2,2,1)plot(k,real(VF));grid;title('ComplexN-pointDFT');xlabel('Frequencyindexk');ylabel('Re\{V[k]\}');subplot(2,2,2);plot(k,imag(VF));grid;title('ComplexN-pointDFT');xlabel('Frequencyindexk');ylabel('Im\{V[k]\})');subplot(2,2,3);plot(k,real(VF2));grid;title('Real2N-pointDFT');xlabel('Frequencyindexk');ylabel('Re\{V[k]\}');subplot(2,2,4);plot(k,imag(VF2));grid;title('Real2N-pointDFT');xlabel('Frequencyindexk');ylabel('Im\{V[k]\})');

Q3.26在函数cirshift中,命令rem的作用是什么?

参考答案:

取余

Q3.27解释函数cirshift,怎样实现圆周移位运算。

参考答案:

输入序列x左移m个位置。若m>0,则从x中移除最左边的m个元素并将它们附加到剩余元素的右侧;若m<0,先将x长度补m,再从x中去掉最右边的x-m个样本,并追加到剩余m个样本右侧。

Q3.28在函数circonv,运算符~=的作用是什么?

参考答案:

不等于

Q3.29解释函数circonv怎样实现圆周卷积运算。

参考答案:

翻折、移位、相乘、相加

Q3.30通过加入合适的注释和程序语句修改程序P3.7,对程序生成的两个轴加标记,哪个参数控制时移量?若时移量大于序列长度将会发生什么?

参考答案:

%ProgramP3_7%IllustrationofCircularShiftofaSequenceclf;M=6;a=[0123456789];b=circshift(a,M);L=length(a)-1;n=0:L;subplot(2,1,1);stem(n,a);axis([0,L,min(a),max(a)]);title('OriginalSequence');xlabel('timeindexn');ylabel('a[n]');subplot(2,1,2);stem(n,b);axis([0,L,min(a),max(a)]);title(['SequenceObtainedbyCircularlyShiftingby',num2str(M),'Samples']);xlabel('timeindexn');ylabel('b[n]');M控制时移量;若时移量大于序列长度,实现的循环移动是剩余的rem(M,length(a))位。

Q3.32通过加入合适的注释和程序语句修改程序P3.7,对生成的图形的两个轴加标记,时移量是多少?

参考答案:

%ProgramP3_7%IllustrationofCircularShiftofaSequenceclf;M=6;a=[0123456789];b=circshift(a,M);L=length(a)-1;n=0:L;subplot(2,1,1);stem(n,a);axis([0,L,min(a),max(a)]);title('OriginalSequence');xlabel('timeindexn');ylabel('a[n]');subplot(2,1,2);stem(n,b);axis([0,L,min(a),max(a)]);title(['SequenceObtainedbyCircularlyShiftingby',num2str(M),'Samples']);xlabel('timeindexn');ylabel('b[n]');时移量是M

Q3.33运行修改后的程序并验证离散时间傅里叶变换的圆周时移性质。

参考答案:

序列样本为10,M=12,可以看为不止一次的左12位循环移动,左12-10=2位的循环移动。

Q3.34选取两个不同的时移量重新做习题Q3.33。

参考答案:

M=10M=3

Q3.35选取两个不同的序列长度程序做习题Q3.33。

参考答案:

a=[012345];a=[012345678910111213];

Q3.39选取两组长度不相等序列重新做习题Q3.38.

参考答案:

clcclearg1=[543210]g2=[-21234]

Q3.3修改程序P3.1,在范围0≤w≤π内计算如下序列的离散时间傅里叶变换:U(e^jw)=(0.7-0.5e^-jw+0.3e^j-2w+e^j-3w)/(1+0.3e^-jw-0.5e^j-2w+0.7e^j-3w),重做习题Q3.2。解释相位中的跳变?MATLAB中unwrap可以移除跳变,试求跳变移除后的相位谱。

参考答案:

%ProgramP3_1%EvaluationoftheDTFT

clf;%ComputethefrequencysamplesoftheDTFTN=512;num=[0.7-0.50.31];den=[10.3-0.50.7];%PlottheDTFT[h,w]=freqz(num,den,N);%PlottheDTFTsubplot(2,1,1)plot(w/pi,real(h));gridtitle('RealpartofH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论