DSP实验报告经容1903.docx
《DSP实验报告经容1903.docx》由会员分享,可在线阅读,更多相关《DSP实验报告经容1903.docx(37页珍藏版)》请在冰豆网上搜索。
DSP实验报告经容1903
南京邮电大学
实验报告
实验名称熟悉MATLAB环境
快速傅里叶变换(FFT)及其应用
IIR数字滤波器的设计
FIR数字滤波器的设计
课程名称数字信号处理A
班级学号______12006903___________________
姓名_______经容__________________
开课时间2014/2015学年,第二学期
实验一熟悉MATLAB环境
一、实验目的
(1)熟悉MATLAB的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。
(5)观察离散系统的频率响应。
二、实验内容
(1)数组的加、减、乘、除和乘方运算。
输入A=[1234],B=[3,4,5,6],求
C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B。
并用stem语句画出A、B、C、D、
E、F、G。
(2)用MATLAB实现下列序列:
a)
b)
c)
(4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注:
a)
b)
(6)给定一因果系统,求出并绘制H(z)的幅频响应和相频响应。
(7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。
(8)求以下差分方程所描述系统的单位脉冲响应h(n),
每一小题均给出实验过程与结果(含实验程序、运行的数据结果和图形);
实验程序:
%
(1)提示
clear
n=0:
1:
3;
A=[1234];
subplot(3,3,1)
stem(n,A)
xlabel('n')
ylabel('A')
B=[3,4,5,6];
subplot(3,3,2)
stem(n,B)
xlabel('n')
ylabel('B')
C=A+B;
subplot(3,3,3)
stem(n,C)
xlabel('n')
ylabel('C')
D=A-B;
subplot(3,3,4)
stem(n,D)
xlabel('n')
ylabel('D')
E=A.*B;
subplot(3,3,5)
stem(n,E)
xlabel('n')
ylabel('E')
F=A./B;
subplot(3,3,6)
stem(n,F)
xlabel('n')
ylabel('F')
G=A.^B;
subplot(3,3,7)
stem(n,G)
xlabel('n')
ylabel('G')
%
(2)提示
%(a)
n=0:
1:
15;
x1=0.8.^n;
stem(n,x1)
xlabel('n')
ylabel('x(n)')
title('2(a)')
n=0:
1:
15;
i=sqrt(-1);
a=0.2+3*i;
x2=exp(a*n);
figure
subplot(1,2,1)
stem(n,real(x2))
xlabel('n')
ylabel('x(n)实部')
subplot(1,2,2)
stem(n,imag(x2))
xlabel('n')
ylabel('x(n)虚部')
title('2(b)')
n=0:
1:
15;
x3=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);
stem(n,x3)
xlabel('n')
ylabel('x(n)')
title('2(c)')
(4)提示
%(a)
t=0:
0.001:
10;
x=sin(2*pi*t);
plot(t,x,'r-')
xlabel('t'),ylabel('x(t)'),title('sin(2\pit)')
%(a)
t=0:
0.001:
10;
x=sin(pi*t)*cos(100*pi*t);
plot(t,x,'r-')
xlabel('t'),ylabel('x(t)'),title('cos(100\pit)')
(6)
%a
k=512;
num=[0.8-0.440.360.02];
den=[10.7-0.45-0.6];
w=0:
pi/k:
pi;
h=freqz(num,den,w);
subplot(2,2,1);
plot(w/pi,real(h));grid
title('实部')
xlabel('\omega/\pi');ylabel('幅度')
subplot(2,2,2);
plot(w/pi,imag(h));grid
title('虚部')
xlabel('\omega/\pi');ylabel('幅度');
subplot(2,2,3);
plot(w/pi,abs(h));grid;
title('幅度谱');
xlabel('\omega/\pi');ylabel('幅度');
subplot(2,2,4);
plot(w/pi,angle(h));grid
title('相位谱');
xlabel('\omega/\pi');ylabel('相位(rad)');
(7)
%a
%输入x(n)及其下标
x=[1,0,-1,1,0,1];
kx=-2:
3;
%输入h(n)及其下标
h=[1,0,2,-1,1];
kh=-2:
2;
y=conv(x,h);%计算卷积
k=kx
(1)+kh
(1):
kx(end)+kh(end);%计算结果的下标
%计算结果作图
stem(k,y);
xlabel('n');ylabel('y(n)');
(8)
%a
N=50;
a=[0.8-0.580.30.42];
b=[10.7-0.45-0.6];
x=[1zeros(1,N-1)];
k=0:
1:
N-1
y=filter(a,b,x);
stem(k,y);
xlabel('n');ylabel('幅度');
实验结果:
(1)
(2)
(4)
(6)
(7)
(8)
实验总结:
对于实验还有好多不理解的部分,对MATLAB不陌生,但是把他最为DSP的学习工具还是需要时间去摸索的。
实验二快速傅里叶变换(FFT)及其应用
一、实验目的
(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
(2)应用FFT对典型信号进行频谱分析。
(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
(4)应用FFT实现序列的线性卷积和相关。
二、实验内容
实验中用到的信号序列
a) 高斯序列
b) 衰减正弦序列
c) 三角波序列
d) 反三角波序列
(1)观察高斯序列的时域和幅频特性,固定信号中参数p=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,
混叠是否也随之出现?
记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
(3)观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列和的幅频特性,观察两者的序列形状和频谱曲线有什么异同?
绘出两序列及其幅频特性曲线。
在和末尾补零,用N=32点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?
两种情况的FFT频谱还有相同之处吗?
这些变化说明了什么?
(5)用FFT分别实现(p=8,q=2)和(a=0.1,f=0.0625)的16点循环卷积和线性卷积。
每一小题均给出实验过程与结果(含实验程序、运行的数据结果和图形);
实验程序:
functiongauss(p,q)
n=0:
1:
15;
N=length(n);
xa=exp(-(n-p).^2/q);
M=10000;
w=2*pi/M*(0:
1:
M-1);
Xa=zeros(1,M);
fork=1:
M
Xa(k)=sum(xa*(exp(-j*w(k)*(0:
N-1)')));
end
subplot(2,1,1);
stem(n,xa);
xlabel('n'),ylabel('x_a(n)')
subplot(2,1,2);
plot(w,abs(Xa))
xlabel('\omega'),ylabel('幅度谱')
在指令窗中调用gauss(8,2)等
(1)三角波
clear;
forn=1:
4
xc(n)=n-1;
end;
forn=5:
8;
xc(n)=8-(n-1);
end;
%xc=[0,1,2,3,4,3,2,1];
n=0:
1:
7;
subplot(2,1,1)
stem(n,xc)
N=8;%fft点数
%N=32;%%改变fft点数
Xc=fft(xc,N);
k=0:
1:
N-1;
subplot(2,1,2)
plot(k,abs(Xc))
(2)%反三角波序列
n1=0:
3;
y1=4-n1;
n2=4:
7;
y2=n2-3;
subplot(211);
stem([n1,n2],[y1,y2],'.');
title('反三角波序列')
n=[n1n2];
y=[y1y2];
subplot(212);
stem(abs(fft(y,8)),'.');
title('N=8点的反三角波序列幅频特性')
衰减的正弦序列
A=50;
a=100;
f0=62.5;
T=1/1000;
n=1:
50;
t=n*T;
x1=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
subplot(321);
stem(n,x1,'.');
title('衰减的正弦序列时域特性')
x2=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
X2=fft(x2);
subplot(322);
stem(n,X2,'.');
title('衰减的正弦序列幅频特性')
T=1/300;
x3=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
X3=fft(x3);
subplot(323);
stem(n,X3,'.');
title('fs=300hz衰减的正弦序列频谱')
T=1/100;
x3=A*exp(-1*a*n*T).*sin(2*pi*f0*n*T);
X3=fft(x3);subplot(324);stem(n,X3,'.');
title('fs=100hz衰减的正弦序列频谱')
(5)循环卷积
clear
closeall;
clc;
n=0:
1:
15;
p=8;
q=2;
xa=exp(-(n-p).^2/q);
M=64;
N=16
a=0.1;
f=0.0625;
xb=exp(-a*n).*sin(2*pi*f*n);
xa1=[xa,zeros(1,M-N)];
xb1=[xb,zeros(1,M-N)];
xa_fft=fft