数字信号处理实验报告MATLAB

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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])

相关文档
最新文档