当前位置:文档之家› Matlab数字信号处理实验报告

Matlab数字信号处理实验报告

subplot(2,1,2); plot(n,X); grid title('FFT|X|'); xlabel('f(pi)');
实验 2-3
n=0:30;%输入x(n)和冲激响应 h(n) x=zeros(1,length(n)); h=zeros(1,length(n)); x([find((n>=0)&(n<=4))] ) =1; h([find((n>=0)&(n<=8))] ) =0.5; subplot(3,1,1); stem(x); title('x(n)'); axis([0,30,0,2]); subplot(3,1,2); stem(h); title('h(n)'); axis([0,30,0,2]); X=fft(x); H=fft(h); Y=X.*H; y=ifft(Y); subplot(3,1,3);
运行结果
xlabel('w(pi)'); ylabel('H'); axis([0,1,-40,5]); set(gca,'XTickmode','manual','XTic k',[0,0.2,0.35,1.1]); set(gca,'YTickmode','manual','YTic k',[-50,-15,-1,0]); grid;
subplot(3,1,2); stem(n,h); axis([0,30,0,2]); title('冲激响应序列'); xlabel('n'); ylabel('h(n)');
%输出响应 y=conv(x,h); subplot(3,1,3); n=0:length(y)-1; stem(n,y); title('输出响应'); xlabel('n'); ylabel('y(n)');
数字信号处理实验报告
基础实验篇
实验一 离散时间系统及离散卷积
一、 实验原理 利用 Matlab 软件计算出系统函数的零极点分布、单位脉冲响应和系统
频率响应等的图像并于笔算结果进行比较,找出异同。编译合适程序能计 算取值范围不同的离散卷积。 二、 实验目的 (1)熟悉 MATLAB 软件的使用方法。 (2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。 (3)利用 MATLAB 绘制系统函数的零极点分布图、系统频率响应和单位脉冲 响应。 三、实验步骤 (1)自编并调试实验程序,并且,给实验程序加注释; (2)按照实验内容完成笔算结果; (3)验证计算程序的正确性,记录实验结果。 (4)至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚 实验结果对应的系统,并对实验结果进行解释说明。 四、实验源程序及实验结果
实验二 离散傅立叶变换与快速傅立叶变换
一、 实验原理
对有限长序列使用离散 Fouier 变换(DFT)可以很好的反映序列的频谱特性, 而且易于用快速算法在计算机上实现,当序列 x(n)的长度为 N 时,它的 DFT 定 义为
X
k


DFT
xn

N 1
x n
W
nk Nn0Fra bibliotek0 k N 1
1、调试实验程序,并且,给参考程序加注释; 2、利用编制的计算卷积的计算程序,分别给出一下三组函数的卷积结果
三、 实验源程序及结果
实验 2-1
运行结果
b=[0.0181,0.0543, 0.0543,0.0181]; a=[1.000,-1.76, 1.1829,-0.2781]; w=pi*freqspace(500); H=freqz(b,a,w); MH=abs(H); AH=angle(H); subplot(2,1,1); plot(w/pi,MH); grid; axis([0,1,0,1]); xlabel('w(pi)'); ylabel('|H|'); title('幅度、相位响应'); subplot(2,1,2); plot(w/pi,AH); grid; xlabel('w(pi)'); ylabel('angle(H)');
2、 编制计算设计的数字滤波器幅度特性和相位特性的程序,并进行实验 验证。
3、 编制实现该数字滤波器程序并且实现数字滤波 (1) 分别让满足所设计的滤波器的通带、过渡带、阻带频率特性的 正弦波通过滤波器,验证滤波器性能; (2) 改变正弦抽样时间,验证数字低通滤波器的模拟截止频率实抽 样时间的函数。
实验 1-1
xlabel('n'); ylabel('h(n)'); figure(2) [z,p,g]=tf2zp(b,a); zplane(z,p) title('零极点'); function [x,n]=chongji(n1,n2) n=[n1:n2]; x=[n==0]; function shiyan1()
subplot(3,1,3); plot(wd/pi,-angle(hw2)); title('相位响应'); xlabel('w(pi)'); ylabel('pi unit'); %axis([0,1,0,1.1]); set(gca,'XTickmode','manual','XTic k',[0,0.2,0.35,1.1]); set(gca,'YTickmode','manual','YTic k',[-1,0,1]);
实验 2-2
运行结果
function shiyan22() F=50; N=64; T=0.000625; n=1:N; x=cos(2*pi*F*n*T);
subplot(2,1,1); plot(n,x); hold on title('x(n)'); xlabel('n'); X=fft(x);
二、实验目的
1、 学习模拟-数字变换滤波器的设计方法; 2、 掌握双线性变换数字滤波器设计方法; 3、 掌握实现数字滤波器的具体方法。
三、实验步骤
1、 设计一个巴特沃思数字低通滤波器,设计指标如下: 通带内 p 0.2 幅度衰减不大于 1dB;阻带 s 0.35 幅度衰 减不小于 15dB;
subplot(3,1,2); plot(wd/pi,20*log10((abs(hw2)+eps) /abs(hw2(1)))); title('幅度响应(双线性变换法(dB))');
w=[0:1000*2*pi]; [hf,w]=freqs(b,a,1000);
[d,c]=impinvar(b,a,Fs); wd=[0:512]*pi/512; hw1=freqz(d,c,wd); [f,e]=bilinear(b,a,Fs); hw2=freqz(f,e,wd);
N≥N1+N2
对于长度不足 N 的两个序列,分别将他们补零延长到 N。
二、实验目的
1、加深理解离散傅立叶变换及快速傅立叶变换概念; 2、学会应用 FFT 对典型信号进行频谱分析的方法; 3、研究如何利用 FFT 程序分析确定性时间连续信号; 4、熟悉应用 FFT 实现两个序列的线性卷积的方法。
三、实验步骤
运行结果
a=[1,-1,0.9]; b=1; x=chongji(-20,120); n=-20:120; h=filter(b,a,x); figure(1) stem(n,h); title('冲击响应');
实验 1-2
b=[0.0181,0.0543, 0.0543,0.0181]; a=[1.000,-1.76, 1.1829,-0.2781]; w=pi*freqspace(500); H=freqz(b,a,w); MH=abs(H); AH=angle(H); subplot(2,1,1); plot(w/pi,MH); grid; axis([0,1,0,1]); xlabel('w(pi)'); ylabel('|H|'); title('幅度、相位响应'); subplot(2,1,2); plot(w/pi,AH); grid; xlabel('w(pi)'); ylabel('angle(H)');
ylabel('H'); axis([0,1,0,1.1]); set(gca,'XTickmode','manual','XTic k',[0,0.2,0.35,1.1]); set(gca,'YTickmode','manual','YTic k',[0,Attn,Ripple,1]); grid;
p

2 T
tg

p 2
, s

2 tg s T 2

根据Ωp 和Ωs 计算模拟低通原型滤波器的阶数 N,并求得低通原
型的传递函数 Ha(s);
4. 用上面的双线性变换公式代入 Ha(s),求出所设计的传递函数 H(z); 5. 分析滤波器特性,检查其指标是否满足要求。
反变换为
xn
IDFTX k
1 N
N 1
X
k
W nk N
n0
0 n N 1
有限长序列的 DFT 是其 Z 变换在单位圆上的等距采样,或者说是序列 Fourier 变换的等距采样,因此可以用于序列的谱分析。
相关主题