数字信号处理实验指导书

更新时间:2023-09-21 07:02:02 阅读量: 自然科学 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

皖西学院

实 验 指 导 书

数字信号处理

机电学院电子工程教研室

二零一二年三月修订 (第三版)

皖西学院实验指导书

实验一:信号及系统的响应

一、实验目的

(1) 熟悉离散时间信号的时域特性。

(2) 利用卷积的方法观察分析系统的时域特性。

(3) 利用filter和freqz(b,a,w)分析系统的时域和频域响应。 (4) 熟悉DSP实验系统使用 二、 实验原理和方法

(5) 利用卷积方法分析离散LTI系统时域特性

若已知LTI系统的单位脉冲响应h[k],可求出系统对任意输入信号x[k]零状态响应y[k]。y[k]可表示为:

y[k]?x[k]?h[k]

且y[k]的长度等于x[k]和h[k]的长度之和减1,起点等于x[k]和h[k]的起点之和,终点等于他们的终点之和。

(6) 离散LTI系统的时域和和频域分析 a.时域分析

离散系统通常可描述为如下的常系数差分方程:

?an?0Nny[k?n]??bnx[k?n] (1-1)

n?0M其中x[k]、y[k]分别表示系统的输入和输出。在已知差分方程N个初始状态y[k], ?N?k??1和输入x[k],就可以由迭代计算出系统的输出。

y[k]???(an/a0)y[k?n]??(bn/a0)x[k?n] (1-2)

n?1n?0NMb.频域分析

系统h[k]序列的DTFT的有理多项式H(ej?)可写成:

Y(ej?)B(ej?)b0?b1e?j????bMe?j? (1-3) H(e)???j?j??j??j?X(e)A(e)a0?a1e???aNej?另外H(ej?)可用幅度相位的形式给出:

H(ej?)?H(ej?)ej?(?) (1-4) 其中H(ej?)和?(?)分别为h[k]的相位和幅度响应。

三、实验内容及步骤

(1) matlab可以用conv(x,h)来计算序列x[k]和h[k]的卷积,编制一个M函数y=conv1(x,kx,h,kh),其中x,h分别是输入序列,kx和kh为非零范围。并计算书上的例1-22和x[k]、h[k]的卷积。

(2)用matlab信号处理工具箱提供的freqz函数计算DTFT的抽样值 x=freqz(b,a,w) b,a分别为式1-3分子和分母多项式。

1

数字信号处理

编制程序画出。IIR带通滤波器的幅度响应程序清单如下:先编制M函数iirbp(x,y),文件名为iirbp。

function m=iirbp(x,y) b=[1 0 -1];

a=[1 -y*(1+x) x]; b=0.5*(1-x)*b;

w=linspace(0,pi,512); h=freqz(b,a,w);

c=(0:round(512*0.4))*pi/512; d=h(1:round(512*0.4)+1);

w1=interp1(abs(d),c,0.707); %%interp1(x,y,c)为线性插值%% c1=(round(512*0.4)+1:511)*pi/512; %%求截频与带宽%% d1=h(round(512*0.4)+2:512); w2=interp1(abs(d1),c1,0.707); B=w2-w1; hold on

plot(w,abs(h)) xlabel('频率') ylabel('幅度')

set(gca,'xtick',[0 0.2*pi 0.4*pi 0.6*pi 0.8*pi pi]); set(gca,'xticklabel','0|0.2π|0.4π|0.6π|0.8π|π'); disp('a=');disp(x'); disp('截频为');

disp(w1');disp(w2'); disp('带宽为'); disp(B')

再编制M文件iirrun调用该函数: b1=cos(0.4*pi); iirbp(0.1,b1);

text(0.7*pi,0.7,'a=0.1') iirbp(0.5,b1);

text(0.68*pi,0.4,'a=0.5') iirbp(0.9,b1);

text(0.6*pi,0.15,'a=0.9')

(2) 认真完成书上例1-23、例1-24、例1-25

四、 CCS 入门实验

熟悉CCS 集成开发环境,掌握工程的生成方法, 熟悉SEED-DEC643 实验环境;掌握CCS 集成开发环境的调试方法。 五、实验报告书写要求

(1)简述实验目的及原理

(2)给出实验中的程序清单,及有关仿真波形,并对结果进行解释。

2

皖西学院实验指导书

实验二:用DFT作谱分析

一、实验目的:

(1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质) (2) 熟悉FFT算法和FFT子程序的应用。 (3) 学习FFT对连续信号进行谱分析的方法,了解可能出现的误差及原 因。

(4) 掌握用DSP进行实际信号的谱分析 二、 实验步骤及内容: 1、matlab实验

(1)有限长序列x[k]的离散傅立叶变换X[m]是离散时间傅立叶变换

X[ej?]在[0 2π]上的等间隔采样。即

X[m]?DFT{x[k]}?X(ej?)|??2?mN m=0,1,???,N-1 (2-1)

a.令x[k]={2,3,3,2;k=0,1,2,3}求它的DTFT并用matlab画出它的幅度响应|X[ej?]|,并用FFT计算它的DFT幅值|X[m]|,将|X[ej?]|和|X[m]|画在同一张图上,验证式2-1的结论。

b.将x[k]补4个和个样点值之间插4个零再重复a中的步骤进行,来分析补零和插零对x[k]谱分析有何影响。程序如下:

syms w

f1=sym('4*cos(1.5*w)+6*cos(0.5*w)'); subplot(311)

ezplot(abs(f1),[0 2*pi]) axis([0 2*pi 0 10]) x=[2 3 3 2]; f2=fft(x);

k=0:0.5*pi:1.5*pi; hold on

stem(k,abs(f2))

set(gca,'xtick',[0 0.5*pi pi 1.5*pi 2*pi]); set(gca,'xticklabel','0|0.5π|π|1.5π|2π'); subplot(312)

ezplot(abs(f1),[0 2*pi]) axis([0 2*pi 0 10]) f3=fft(x,8);

k=0:0.25*pi:1.75*pi; hold on

stem(k,abs(f3))

set(gca,'xtick',[0 0.5*pi pi 1.5*pi 2*pi]); set(gca,'xticklabel','0|0.5π|π|1.5π|2π');

3

本文来源:https://www.bwwdw.com/article/aa6h.html

Top