DSP实验报告 南邮Word下载.docx
《DSP实验报告 南邮Word下载.docx》由会员分享,可在线阅读,更多相关《DSP实验报告 南邮Word下载.docx(69页珍藏版)》请在冰豆网上搜索。
n=0:
1:
3;
n;
stem(n,C);
(D)
stem(D);
D:
D=
-2-2-2-2
(E)
stem(E);
E:
E=A.*B
E=
381524
(F)
stem(F);
F:
F=A./B
F=
0.33330.50000.60000.6667
(G)
stem(G);
G=A.^B
G=
1162434096
(2)用MATLAB实现下列序列:
①
clear;
n=0:
15;
x1=0.8.^n;
n;
stem(n,x1);
②
a=(0.2+3*j)*n;
x2=exp(a);
figure;
stem(n,x2);
③
x3=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);
stem(n,x3);
d)将(c)中的x(n)扩展为以16为周期的函数
绘出四个周期。
④
63;
x4=3*cos(0.125*pi*rem(n,16)+0.2*pi)+2*sin(0.25*pi*rem(n,16)+0.1*pi);
stem(n,x4);
e)将(c)中的x(n)扩展为以10为周期的函数
,绘出四个周期。
⑤
39;
x5=3*cos(0.125*pi*rem(n,10)+0.2*pi)+2*sin(0.25*pi*rem(n,10)+0.1*pi);
stem(n,x5);
(3)
产生并绘出下列序列的样本:
x=[1-135]
x1=circshift(x,[0,-2]);
x2=circshift(x,[0,1]);
x3=2*x1-x2-2*x;
stem(n,x3);
x=[1-135];
x1=zeros(1,4);
x2=zeros(1,4);
fork=1:
5
forn=0:
3
x3=circshift(x,[0,-k])
t=n.*x3;
x1=x1+t;
end
x2=x2+x1;
stem(x2);
(4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注
t=0:
0.001:
10;
x=sin(2*pi*t);
plot(t,x)
title('
x=sin(2*pi*t)'
);
xlabel('
x'
ylabel('
t'
0.01:
plot(t,x);
plot(t,x,'
r_'
sin'
x(t)'
4;
x1=cos(100*pi*t);
x2=sin(pi*t);
x=x1.*x2;
x=cos(100*pi*t)*sin(pi*t)'
(5)编写函数
实现
,绘出该函数的图形,起点为n1,终点为n2。
functionstepshift(n0,n1,n2);
%单位阶跃序列,n0为时移量
n=n1:
n0-1;
%n1、n2为序列的起止序列号
nn=length(n);
x=zeros(1,nn);
%n0前信号赋值为0
stem(n,x,'
fill'
)%绘出n1~n0-1的波形(0值)
holdon
k=n0:
n2;
kk=length(k);
x=ones(1,kk);
%n0后信号赋值为1
stem(k,x,'
)%绘出n1~n0-1的波形(1值)
holdoff
axis([n1,n2,0,1.1])
单位阶跃序列'
)
运行程序后,在CommondWindows中输入stepshift(6,-3,24)
则得到平移后序列图形如下:
(6)给定一因果系统
求出并绘制H(z)的幅频响应与相频响应。
clearall;
k=64;
b=[1sqrt
(2)];
a=[1-0.670.9];
w=0:
pi/k:
pi;
h=freqz(b,a,w);
subplot(2,1,1);
plot(abs(h))
gridon
subplot(2,1,2);
plot(angle(h))
(7)计算序列
和序列
的离散卷积,并作图表示卷积结果。
A=[8-2-123]
B=[23-1-1];
C=conv(A,B)
plot(C)
(8)求以下差分方程所描述系统的单位脉冲响应
clearall;
N=50;
a=[1-2];
b=[10.1-0.06];
x1=[1zeros(1,N-1)];
N-1;
h=filter(a,b,x1);
stem(n,h)
axis([-153-2.51.2])
三:
思考题
(1)对于有限长序列,如何用MATLAB计算其DTFT?
fs=1000;
1/fs:
0.6;
f1=100;
f2=300;
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
subplot(711)
plot(x);
title(‘f1(100hz)\f2(300hz)的正弦信号,初相0’)
xlabel(‘序列(n)’)
gridon
number=512
y=fft(x,number);
length(y)-1;
f=fs*n/length(y);
subplot(713)
plot(f,abs(y));
f1\f2的正弦信号的fft(512点)'
)
频率hz'
x=x+randn(1,length(x));
subplot(715)
原f1\f2的正弦信号(含随机噪声)'
序列(n)'
subplot(717)
原f1\f2的正弦信号(含随机噪声)的fft(512点)'
(3)对于由两个子系统级联或并联的系统,如何用MATLAB计算它们的幅频响应与相频响应?
答:
级联转换为直接型:
cas2dir并联转换为直接型:
par2dir然后用freqz()就行了。
实验二快速傅里叶变换(FFT)及其应用
一、实验目的
(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
(2)应用FFT对典型信号进行频谱分析。
(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
(4)应用FFT实现序列的线性卷积和相关。
二、实验内容
实验中用到的信号序列:
a)高斯序列
b)衰减正弦序列
c)三角波序列
d)反三角波序列
上机实验内容:
方法二:
p=8;
q=2;
xa=exp(-(n-p).^2/q);
subplot(3,2,1);
stem(n,xa,'
.'
q=2高斯序列时域特性'
subplot(3,2,2);
stem(fft(xa),'
q=2高斯序列幅频特性'
q=4;
subplot(3,2,3);
q=4高斯序列时域特性'
subplot(3,2,4);
q=4高斯序列幅频特性'
q=8;
subplot(3,2,5);
q=8高斯序列时域特性'
subplot(3,2,6);
q=8高斯序列幅频特性'
p=8高斯序列时域特性'
p=8高斯序列幅频特性'
p=13;
p=13高斯序列时域特性'
p=13高斯序列幅频特性'
p=14;
p=14高斯序列时域特性'
p=14高斯序列幅频特性'
plot(abs(fft(xa)));
p=8高斯序列幅频特性'
p=13高斯序列时域特性'
p=13高斯序列幅频特性'
p=14高斯序列时域特性'
p=14高斯序列幅频特性'
(2)
A=1;
f=0.0625;
a=0.1;
x=exp(-a*n).*sin(2*pi*f*n);
axis([015-22]);
f=0.0625衰减正弦序列时域特性'
stem(fft(x),'
axis([015-52]);
f=0.0625衰减正弦序列幅频特性'
f=0.4375;
f=0.4375衰减正弦序列时域特性'
f=0.4375衰减正弦序列幅频特性'
f=0.5625;
f=0.5625衰减正弦序列时域特性'
f=0.5625衰减正弦序列幅频特性'
plot(abs(fft(x)));
axis([02005]);
(3)
forn=1:
xc(n)=n-1;
forn=5:
8;
xc(n)=8-(n-1);
m=0:
7;
subplot(2,3,1);
stem(m,xc,'
三角波序列'
Xc=fft(xc,8);
k=0:
subplot(2,3,2);
stem(k,abs(Xc),'
三角波序列8点FFT'
Xc=fft(xc,32);
31;
subplot(2,3,3);
三角波系列32点FFT'
xc(n)=4-(n-1);
xc(n)=(n-1)-4;
subplot(2,3,4);
反三角波序列'
subplot(2,3,5);
反三角波序列8点FFT'
subplot(2,3,6);
反三角波序列32点FFT'
(4)N=16,△f=1/16时,其频谱:
N=16;
x=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/16)*n);
plot(n,x,'
grid;
连续时间信号'
axis([020010]);
连续时间信号频谱'
N=16,△f=1/64时,其频谱:
x=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/64)*n);
N=128,△f=1/16时,其频谱:
N=128,△f=1/64时,其频谱:
(5)循环卷积:
xa波形'
Xa=fft(xa,16);
stem(abs(Xa),'
Xa(k)=FFT[xa(n)]的波形'
xb=exp(-a*n).*sin(2*pi*f*n);
stem(n,xb,'
xb波形'
Xb=fft(xb,16);
stem(abs(Xb),'
Xb(k)=FFT[xb(n)]的波形'
Y=Xa.*Xb;
y=ifft(Y,16);
stem(abs(Y),'
Y(k)=Xa(k)Xb(k)的波形);
stem(y,'
y=IFFT[Y(k)]的波形'
线性卷积:
N1=length(xa);
N2=length(xb);
N=N1+N2-1;
xa=[xazeros(1,N2-1)];
xb=[xbzeros(1,N1-1)];
n=1:
N;
k=n;
Xa=fft(xa);
Xb=fft(xb);
Y=Xa.*Xb;
subplot(2,3,3);
stem(abs(Y),'
title('
Y(k)=Xa(k).*Xb(k)的波形'
y=ifft(Y(k));
y=ifft[Y(k)]的波形'
六.
xe=rand(1,512);
fori=1:
4
n(i)=i-1;
xc(i)=n(i);
fori=5:
8
xc(i)=8-n(i);
%重叠相加法
yn=zeros(1,519);
forj=0:
7
xj=xe(64*j+1:
64*(j+1));
xak=fft(xj,71);
xck=fft(xc,71);
yn1=ifft(xak.*xck);
temp=zeros(1,519);
temp(64*j+1:
64*j+71)=yn1;
yn=yn+temp;
end;
518;
figure
(1)
subplot(211);
stem(n,yn);
n'
y(n)'
重叠相加法:
xc(n)与xe(n)的线性卷积的时域波形'
subp