数字信号处理实验报告MATLAB
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0.4
0.6
0.8
1
1.2
1.4
再在命令窗口输入:[y,n] = segshift(x,n,n0);n=0:5;n0=3;stem(n,y)按ENTER 键出图如下图1。
2. 在命令窗口输入: m = -fliplr(n);
m1 = min([m,n]); m2 = max([m,n]); m = m1:m2; x1 =[ zeros(1,(length(m)-length(n))),x]; xe = 0.5*(x1 + fliplr(x1)) xo = 0.5*(x1 - fliplr(x1)) subplot(1,2,1),stem(m,xe),ylabel(xe),
subplot(1,2,2),stem(m,xo),ylabel(xo), 得下图二,
图二
图
一
3.将如下文件另存为:sigadd.m 文件 function [y,n] = sigadd(x1,n1,x2,n2)
% 实现 y(n) = x1(n)+x2(n) % ----------------------------- % [y,n] = sigadd(x1,n1,x2,n2)
% y = 在包含n1 和 n2 的n 点上求序列和, % x1 = 在 n1上的第一序列
% x2 = 在 n2上的第二序列(n2可与 n1不等)
n = min(min(n1),min(n2)):max(max(n1),max(n2)); % y(n)的长度 y1 = zeros(1,length(n)); y2 = y1; % 初始化
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % 具有y 的长度的 x1 y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % 具有y 的长度的x2 y = y1+y2; 在命令窗口输入:x1=[1,0.5,0.3,0.4];n1=-1:2;x2=[0.2,0.3,0.4,0.5,0.8,1];n2=-2:3; [y,n] = sigadd(x1,n1,x2,n2) 得:y =
0.2000 1.3000 0.9000 0.8000 1.2000 1.0000 n =
-2 -1 0 1 2 3 再在命令窗口输入:
x1=[1,0.5,0.3,0.4];n1=-1:2;x2=[0.2,0.3,0.4,0.5,0.8,1];n2=-2:3;[y,n]=sigadd(x1,n1,x2,n 2) ;stem(n,y),得到下图: 4. 将如下文件另存为.m 文件
n=-1:10;
x=sin(0.4*pi*n);
y=fliplr(x);
n1=-fliplr(n);
subplot(2,1,1),stem(n,x) subplot(2,1,2),stem(n1,y
在命令窗口键入:
n=-1:10; x=sin(0.4*pi*n);
研究DFT的点数与混叠的关系,并用stem(n,y)画出相应的图形。
3.讨论序列补零及增加数据长度对信号频谱的影响
(1)求出序列x(n)=cos(0.48 n)+cos(0.52 n)基于有限个样点n=10的频谱
(2)求n=100时,取x(n)的前10个,后90个设为零,得到x(n)的频谱
(3)增加x(n)有效的样点数,取100个样点得到x(n)的频谱
实验地点:4305
实验结果:1.(1)在命令窗口输入:
tic; [am,pha]=dft1(x)
N=length(x);
w=exp(-j*2*pi/N);
for k=1:N
sum=0;
for n=1:N
sum=sum+x(n)*w^((k-1)*(n-1));
end
am(k)=abs(sum);
pha(k)=angle(sum);
end
;toc
得到如下结果:
am =
Columns 1 through 11
120.0000 41.0066 20.9050 14.3996 11.3137 9.6215 8.6591 8.1567 8.0000 8.1567 8.6591
Columns 12 through 16
9.6215 11.3137 14.3996 20.9050 41.0066
pha =
Columns 1 through 11
0 1.7671 1.9635 2.1598 2.3562 2.5525 2.7489 2.9452 3.1416 -2.9452 -2.7489
Columns 12 through 16
-2.5525 -2.3562 -2.1598 -1.9635 -1.7671
Elapsed time is 0.047000 seconds.
(2)在命令窗口输入:
tic;[am,pha]=dft2(x)
N=length(x);
n=[0:N-1];
k=[0:N-1];
w=exp(-j*2*pi/N);
nk=n’*k;
wnk=w.^(nk);
Xk=x*wnk;
am= abs(Xk);
pha=angle(Xk);
toc
subplot(2,1,2);stem(w1/pi,magY1);title(‘10点DFT');
xlabel('w/pi'),axis([0,1,0,10])
得到下图:figure(1)
00.10.20.30.40.50.60.70.80.91
subplot(2,1,1);stem(n3,y3);title('signal x(n), 0 <= n <= 9 + 90 zeros');xlabel('n')
axis([0,100,-2.5,2.5])
Y3=fft(y3);magY3=abs(Y3(1:1:51));
k3=0:1:50;w3=2*pi/100*k3;
subplot(2,1,2);stem(w3/pi,magY3);title('100点DFT');xlabel('w/pi')
axis([0,1,0,10])
得到下图figure(2)
(3)在命令窗口键入:
n=[0:1:99];
x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(2,1,1);stem(n,x);title('signal x(n), 0 <= n <= 99');xlabel('n')
axis([0,100,-2.5,2.5])
X=fft(x);magX=abs(X(1:1:51));
k=0:1:50;w=2*pi/100*k;
subplot(2,1,2);stem(w/pi,magX);title('100点DFT);xlabel('w/pi')
axis([0,1,0,60])