数字信号处理实验三.docx
《数字信号处理实验三.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验三.docx(20页珍藏版)》请在冰豆网上搜索。
数字信号处理实验三
实验三
Q3-1
计算离散时间傅立叶变换的原始序列是
Matlab中pause的作用是暂停当前任务,回车后继续执行。
Q3-2
clf;
w=-4*pi:
8*pi/511:
4*pi;
num=[21];den=[1-0.6];
h=freqz(num,den,w);
subplot(2,1,1)
plot(w/pi,real(h));grid
title('H(e^{j\omega})的实部')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('ofH(e^{j\omega})的虚部')
xlabel('\omega/\pi');
ylabel('振幅');
pause
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('|H(e^{j\omega})|幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('相位谱arg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
离散时间傅里叶变换是w的周期函数,周期为2
,实部为偶对称,虚部为奇对称,幅度为偶对称,相位为奇对称。
Q3-3
clf;
w=0:
pi/500:
pi;
num=[0.7-0.50.31];den=[10.3-0.50.7];
h=freqz(num,den,w);
subplot(2,1,1)
plot(w/pi,real(h));grid
title('H(e^{j\omega})的实部')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('ofH(e^{j\omega})的虚部')
xlabel('\omega/\pi');
ylabel('振幅');
pause
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('|H(e^{j\omega})|幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('相位谱arg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
相位谱中的跳变是因为相位出现了频移.
添加P=angle(h);
Q=unwrap(P);
plot(w/pi,Q);grid移除跳变
Q3-6
clf;
w=-pi:
2*pi/255:
pi;wo=0.4*pi;D=10;
num=[123456789];
h1=freqz(num,1,w);
h2=freqz([zeros(1,D)num],1,w);
subplot(2,2,1)
plot(w/pi,abs(h1));grid
title('原序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('时移后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('时移后序列的相位谱')
xlabel('以弧度为单位的相位'');
ylabel('振幅');
参数D控制时移量。
Q3-10
clf;
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));grid
title('原序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('时移后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('时移后序列的相位谱')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
参数n控制频移量
Q3-14
clf;
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));grid
title('幅度谱的乘积')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h3));grid
title('卷积后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(hp));grid
title('相位谱的和')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
subplot(2,2,4)
plot(w/pi,angle(h3));grid
title('卷积后序列的相位谱')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
时域卷积=频域相乘。
Q3-17
clf;
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));grid
title('第一个序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(3,1,2)
plot(w/pi,abs(h2));grid
title('第二个序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(3,1,3)
plot(w/pi,abs(h3));grid
title('乘积序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
时域相乘=频域卷积/
。
Q3-20
clf;
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));grid
title('原序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h3));grid
title('时间反转后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
subplot(2,2,4)
plot(w/pi,angle(h3));grid
title('时间反转后序列的相位谱')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
程序利用fliplr(num)进行反转然后进行反转计算。
Q3-23
\clf
L=6;
N=5
x=[ones(1,N)]
X=fft(x,L)
subplot(2,2,1)
stem(abs(X))
subplot(2,2,2)
Y=ifft(X,L)
stem(Y)
L影响变换后的结果,即频率抽样点个数。
Q3-26
在函数circshift中,命令rem的作用是Remainderafterdivision求余数,且符号与被除数相同
Q3-30
clf;
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('原序列');
xlabel('时间序号n');
ylabel('振幅');
subplot(2,1,2);
stem(n,b);axis([0,L,min(a),max(a)]);
title(['圆周移位',num2str(M),'个样本得到的序列']);
xlabel('时间序号n');
ylabel('振幅');
参数M决定时移量
若时移量大于序列长度,如下图所示,所得序列与原序列相同。
Q3-32
clf;
x=[0246810121416];
N=length(x)-1;n=0:
N;
y=circshift(x,5);
XF=fft(x);
YF=fft(y);
subplot(2,2,1)
stem(n,abs(XF));grid
title('原序列的离散傅立叶变换的幅度');
xlabel('时间序号n');
ylabel('振幅');
subplot(2,2,2)
stem(n,abs(YF));grid
title('圆周移位后的序列的离散傅立叶变换的幅度');
xlabel('时间序号n');
ylabel('振幅');
subplot(2,2,3)
stem(n,angle(XF));grid
title('原序列的离散傅立叶变换的相位');
xlabel('时间序号n');
ylabel('振幅');
subplot(2,2,4)
stem(n,angle(YF));grid
title('圆周移位后的序列的离散傅立叶变换的相位');
xlabel('时间序号n');
ylabel('振幅');
时移量是5.
Q3-36
g1=[123456];g2=[1-233-21];
ycir=circonv(g1,g2);
disp('圆周卷积的结果=');disp(ycir)
G1=fft(g1);G2=fft(g2);
yc=real(ifft(G1.*G2));
disp('离散傅立叶变换乘积的离散傅立叶逆变换的结果=');disp(yc)
圆周卷积的结果=
12281401614
离散傅立叶变换乘积的离散傅立叶逆变换的结果=
12281401614
Q3-38
g1=[12345];g2=[22011];
g1e=[g1zeros(1,length(g2)-1)];
g2e=[g2zeros(1,length(g1)-1)];
ylin=circonv(g1e,g2e);
disp('通过圆周卷积的线性卷积=');disp(ylin);
y=conv(g1,g2);
disp('直接线性卷积=');disp(y)
通过圆周卷积的线性卷积=
2610152115795
直接线性卷积=
2610152115795
Q3-41
序列x1[n]和x[n]的关系是序列顺序颠倒。
Q3-42
x=[1242632642zeros(1,247)];
x1=[x
(1)x(256:
-1:
2)];
xe=0.5*(x+x1);
XF=fft(x);
XEF=fft(xe);
clf;
k=0:
255;
subplot(2,2,1);
plot(k/128,real(XF));grid;
ylabel('振幅');
title('Re(DFT\{x[n]\})');
subplot(2,2,2);
plot(k/128,imag(XF));grid;
ylabel('振幅');
title('Im(DFT\{x[n]\})');
subplot(2,2,3);
plot(k/128,real(XEF));grid;
xlabel('时间序号n');ylabel('振幅');
title('Re(DFT\{x_{e}[n]\})');
subplot(2,2,4);
plot(k/128,imag(XEF));grid;
xlabel('时间序号n');ylabel('振幅');
title('Im(DFT\{x_{e}[n]\})');
验证周期序列的偶数部分的离散傅立叶变换是原序列的XEF部分,XEF的虚部应该为零。
仿真结果由于是对每个点进行采集所以有误差而导致虚部不为零。
属于正常的实验误差。
Q3-47
clf;
%ComputethefrequencysamplesoftheDTFT
w=-4*pi:
8*pi/511:
4*pi;
num=[25953];den=[545211];
zplane(num,den)
系统的极点都在圆内