华工 数字信号处理实验报告

华工 数字信号处理实验报告
华工 数字信号处理实验报告

数字信号处理实验报告

班级:

姓名:

组号:第九组

日期:二零一四年十一月

实验1 常见离散信号产生和实现

一、实验目的

1、加深对常用离散信号的理解;

2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。

二、实验原理

1、单位抽样序列

在MATLAB中可以利用函数实现。

2、单位阶越序列

在MATLAB中可以利用函数实现:

3、正弦序列

在MATLAB中实现过程如下:

4、复指数序列

在MATLAB中实现过程如下:

5、指数序列

在MATLAB中实现过程如下:

三、预习要求

1、预先阅读实验讲义(MATLAB基础介绍);

2、讨论正弦序列、复指数序列的性质。

A.绘出信号,当、时、、

时的信号实部和虚部图;当时呢?此时信号周期为多少?

程序dsp1.m如下:

titlez1=-1/12+j*pi/6;

titlez2=1/12+j*pi/6;

z3=1/12;

z4=2+j*pi/6;

z5=j*pi/6;

n=0:20;

x1=exp(titlez1*n);

x2=exp(titlez2*n);

x3=exp(z3*n);

x4=exp(z4*n);

x5=exp(z5*n);

subplot(5,2,1);

stem(n,real(x1));

xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2);

stem(n,imag(x1));

xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3);

stem(n,real(x2));

xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时')

subplot(5,2,4);

stem(n,imag(x2));

xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时')

subplot(5,2,5);

stem(n,real(x3));

xlabel('n');ylabel('real(x3)'); title('z3=1/12时')

subplot(5,2,6);

stem(n,imag(x3));

xlabel('n');ylabel('image(x3)');

title('z3=1/12时')

subplot(5,2,7);

stem(n,real(x4));

xlabel('n');ylabel('real(x4)'); title('z4=2+j*pi/6时')

subplot(5,2,8);

stem(n,imag(x4));

xlabel('n');ylabel('image(x4)'); title('z4=2+j*pi/6时')

subplot(5,2,9);

stem(n,real(x5));

xlabel('n');ylabel('real(x5)'); title('z5=j*pi/6时')

subplot(5,2,10);

stem(n,imag(x5));

xlabel('n');ylabel('image(x5)'); title('z5=j*pi/6时')

运行结果如下:

结论:当Z=pi/6时,序列周期为12。

B.绘出信号的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。

(1)当x1=1.5*sin(2*pi*0.1*n)时

程序dsp2.m如下:

n=-20:20;

x=1.5*sin(2*pi*0.1*n);

stem(n,y)

xlabel('时间序号');

ylabel('幅度');

title('x1=1.5*sin(2*pi*0.1*n)')

程序运行结果如下:

由图可知,x1的周期为10,频率为0.1. (2)当x2=1.5*sin(0.9*pi*0.1*n)时

程序dsp3.m如下:

n=-20:20;

x2=1.5*sin(0.9*n);

stem(n,x2)

xlabel('时间序号');

ylabel('幅度');

title('x2=1.5*sin(0.9*pi*0.1*n)')

程序运行结果如下:

由图可知,x2为非周期函数,由理论分析可得,0.9不是π的倍数,所以不是周期函数。

3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。

程序如下:

(1)方波程序dsp4.m:

%%%%%%%%%%%%%%%%%%%%

n=-2*pi:0.0001:2*pi

y=square(n);

plot(n,y)

xlabel('时间序号');

ylabel('幅度');

title('square')

方波结果:

%%%%%%%%%%%%%%%%%%%(2)锯齿波程序dsp5.m:n=-10:0.0001:10;

y=sawtooth(n);

plot(n,y)

xlabel('时间序号'); ylabel('幅度');

title('sawtooth') 锯齿波结果:

%%%%%%%%%%%%%%%%%%%%%(3)sinc函数程序dsp6.m:n=-10:0.1:10;

y=sinc(n);

plot(n,y)

xlabel('时间序号'); ylabel('幅度');

title('sinc')

Sinc函数结果:

四、实验内容

编制程序产生上述5种信号,长度可输入确定,函数需要的参数可输入确定,并绘出其图形。(1)单位抽样序列

函数部分fun1.m:

function y=fun1(n)

y=[zeros(1,n-1) 1 zeros(1,n-1)];

调用部分dsp7.m:

n = 3;

y = fun1(n);

stem((-n+1):(n-1),y)

xlabel('时间序号');

ylabel('幅度');

-2

-1.5

-1

-0.5

00.5

1

1.5

2

00.10.20.30.40.50.6

0.70.80.91时间序号

幅度

(2)阶跃序列 函数部分fun2.m :

function y=fun2(n)

y=[zeros(1,n-1) ones(1,n)]; 调用部分dsp8.m : n=3;

y = fun2(n);

stem((-n+1):(n-1),y) xlabel('时间序号'); ylabel('幅度');

-2

-1.5

-1

-0.5

00.5

1

1.5

2

00.10.20.30.40.50.6

0.70.80.91时间序号

幅度

(3)正弦序列dsp9.m

n=-20:20; A=2; fai=pi/6; f=10; fs=100;

y=A*sin(2*pi*f*n/fs+fai); clf; stem(n,y)

xlabel('时间序号'); ylabel('幅度'); 图形如下:

-20

-15-10-5

05101520

-2-1.5-1-0.500.5

11.52时间序号

幅度

(4)复指数序列

函数部分fun4.m :

function y=fun4(n,r,w) y=r*exp(j*w*n); subplot(2,1,1); stem(n,real(y)) xlabel('时间序号'); ylabel('幅度'); title('real part') subplot(2,1,2); stem(n,imag(y)); xlabel('时间序号'); ylabel('幅度');

title('imaginary part'); 调用部分dsp10.m :

n=-20:20; r=2; w=5;

图形如下:

-10

-8

-6

-4

-2

024

6

8

10

-2-101

2时间序号幅度

real part

-10

-8

-6

-4

-2

024

6

8

10

-2-101

2时间序号

幅度

imaginary part

(5)指数序列

函数部分fun5.m : function y=fun5(a,n); y=a.^n; stem(n,y)

xlabel('时间序号'); ylabel('幅度'); xlabel('时间序号'); ylabel('幅度'); title('指数序号') 调用部分dsp11.m : n=-5:10; a=2;

图形如下:

-5

510

0200

400

600

800

1000

1200

时间序号

幅度

指数序号

实验2 离散系统的时域分析

一、实验目的

1、熟悉并掌握离散系统的差分方程表示法;

2、加深对冲激响应和卷积分析方法的理解。

二、实验原理

在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:

其输入、输出关系可用以下差分方程描述:

输入信号分解为冲激信号,

记系统单位冲激响应,则系统响应为如下的卷积计算式:

当时,h[n]是有限长度的(),称系统为FIR系统;反之,称系统为IIR系统。

三、预习要求

1、在MATLAB中,熟悉利用函数实现差分方程的仿真;

2、在MATLAB中,熟悉用函数计算卷积,用求系统冲激响应的过程。

四、实验内容

1、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零?

% Program dsp12.m

h = [3 2 1 -2 1 0 -4 0 3]; %impulse response

x = [1 -2 3 -4 3 2 1]; %input sequence

y = conv(h,x);

n = 0:14;

subplot(2,1,1);

stem(n,y);

xlabel('Time index n'); ylabel('Amplitude');

title('Output Obtained by Convolution'); grid;

x1 = [x zeros(1,8)];

y1 = filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('Time index n'); ylabel('Amplitude');

title('Output Generated by Filtering'); grid;

2

4

681012

14

-20-1001020Time index n

A m p l i t u d e Output Obtained by Convolution

2

4

6810

12

14

-20-10010

20Time index n

A m p l i t u d e

Output Generated by Filtering

答:由于filter 的使用方法中,所得矩阵的长度为max{length (A ),length (B )}-1,但真正卷积所得矩阵长度为A+B-1,所以在使用filter 时,先算得两个要卷积的数组的最大长度A+B-1,然后若A 卷积B,则用filter 时要将B 补(A-1)个0,若B 卷积A,则对A 补(B-1)个0.而conv 函数可以直接补零。

2、编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。要求分别用 filter 、conv 、impz 三种函数完成。

,

给出理论计算结果和程序计算结果并讨论。

(1)

①系统的单位冲激响应:

A.使用Filter 函dsp13.m : a=[1,0.75,-.125]; b=[1,-1]; n=0:20;

x=[1,zeros(1,20)]; yfilter=filter(b,a,x); stem(n,yfilter); title('filter'); xlabel('x'); ylabel('y');

2468

101214161820

-2-1.5-1-0.50

0.5

1

1.5

filter

x

y

B.使用Conv 函数dsp14.m:

a=[1,0.75,0.125]; b=[1,-1];

数字信号处理基础实验指导书

《数字信号处理》实验指导书 光电工程学院二○○九年十月

实验一离散时间信号分析 一、实验目的 1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。 5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列来表示,其中代表序列的第n个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反转、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将和的变量换成,变成和,再将以纵轴为对称轴反褶成。 (2)移位:将移位,得。当为正数时,右移位;当为负数时,左

移位。 (3)相乘:将和的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得。 三、主要实验仪器及材料 微型计算机、Matlab软件6.5或更高版本。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB或C语言编程产生和绘制下列有限长序列: (1)单位脉冲序列 (2)单位阶跃序列 (3)矩形序列 (4)正弦型序列 (5)任意序列 3.序列的运算 利用MATLAB编程完成上述两序列的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。 4.卷积运算 利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。 5.上机调试并打印或记录实验结果。 6.完成实验报告。 五、实验报告要求 1. 简述实验原理及目的。 2. 给出上述序列的实验结果。 3. 列出计算卷积的公式,画出程序框图,并列出实验程序清单 (可略)(包括必要的程序说明)。 4. 记录调试运行情况及所遇问题的解决方法。 5. 给出实验结果,并对结果做出分析。 6. 简要回答思考题。 1 如何产生方波信号序列和锯齿波信号序列? 2 实验中所产生的正弦序列的频率是多少?是否是周期序列?

数字信号处理实验报告

数字信号处理作业提交日期:2016年7月15日

实验一 维纳滤波器的设计 第一部分 设计一维纳滤波器。 (1)产生三组观测数据,首先根据()(1)()s n as n w n =-+产生信号()s n ,将其加噪(信噪比分别为20,10,6dB dB dB ),得到观测数据123(),(),()x n x n x n 。 (2)估计()i x n ,1,2,3i =的AR 模型参数。假设信号长度为L ,AR 模型阶数为N ,分析实验结果,并讨论改变L ,N 对实验结果的影响。 1 实验原理 滤波技术是信号分析、处理技术的重要分支,无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。信号分析检测与处理的一个十分重要的内容就是从噪声中提取信号,实现这种功能的有效手段之一是设计一种具有最佳线性过滤特性的滤波器,当伴有噪声的信号通过这种滤波器的时候,它可以将信号尽可能精确地重现或对信号做出尽可能精确的估计,而对所伴随噪声进行最大限度地抑制。维纳滤波器就是这种滤波器的典型代表之一。 维纳(Wiener )是用来解决从噪声中提取信号的一种过滤(或滤波)方法。这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。 设一线性系统的单位样本响应为()h n ,当输入以随机信号()x n ,且 ()() () x n s n v n =+,其中()s n 表示原始信号,即期望信号。()v n 表示噪声,则输出()y n 为()=()()m y n h m x n m -∑,我们希望信号()x n 经过线性系统()h n 后得到的()y n 尽可能接近 于()s n ,因此称()y n 为估计值,用?()s n 表示。 则维纳滤波器的输入-输出关系可用下面表示。 设误差信号为()e n ,则?()()()e n s n s n =-,显然)(n e 可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即 它的平方的统计期望最小:222?[|()|][|()()|][|()()|]E e n E s n s n E s n y n =-=-=min 。而要使均方误差最小,则需要满足2[|()|]j E e n h ?=0. 进一步导出维纳-霍夫方程为:()()()()*(),0,1,2...xs xx xx i R m h i R m i R m h m m =-==∑ 写成矩阵形式为:xs xx R R h =,可知:1xs xx h R R -=。表明已知期望信号与观测数据的互相关函数以及观测信号的自相关函数时,可以通过矩阵求逆运算,得到维纳滤波器的

《数字信号处理》课程研究性学习报告解读

《数字信号处理》课程研究性学习报告 指导教师薛健 时间2014.6

【目的】 (1) 掌握IIR 和FIR 数字滤波器的设计和应用; (2) 掌握多速率信号处理中的基本概念和方法 ; (3) 学会用Matlab 计算小波分解和重建。 (4)了解小波压缩和去噪的基本原理和方法。 【研讨题目】 一、 (1)播放音频信号 yourn.wav ,确定信号的抽样频率,计算信号的频谱,确定噪声信号的频率范围; (2)设计IIR 数字滤波器,滤除音频信号中的噪声。通过实验研究s P ,ΩΩ,s P ,A A 的选择对滤波效果及滤波器阶数的影响,给出滤波器指标选择的基本原则,确定你认为最合适的滤波器指标。 (3)设计FIR 数字滤波器,滤除音频信号中的噪声。与(2)中的IIR 数字滤波器,从滤波效果、幅度响应、相位响应、滤波器阶数等方面进行比较。 【设计步骤】 【仿真结果】

【结果分析】 由频谱知噪声频率大于3800Hz。FIR和IIR都可以实现滤波,但从听觉上讲,人对于听觉不如对图像(视觉)明感,没必要要求线性相位,因此,综合来看选IIR滤波器好一点,因为在同等要求下,IIR滤波器阶数可以做的很低而FIR滤波器阶数太高,自身线性相位的良好特性在此处用处不大。【自主学习内容】 MATLAB滤波器设计 【阅读文献】 老师课件,教材 【发现问题】(专题研讨或相关知识点学习中发现的问题): 过渡带的宽度会影响滤波器阶数N 【问题探究】 通过实验,但过渡带越宽时,N越小,滤波器阶数越低,过渡带越窄反之。这与理论相符合。 【仿真程序】 信号初步处理部分: [x1,Fs,bits] = wavread('yourn.wav'); sound(x1,Fs); y1=fft(x1,1024); f=Fs*(0:511)/1024; figure(1) plot(x1) title('原始语音信号时域图谱'); xlabel('time n'); ylabel('magnitude n'); figure(2) freqz(x1) title('频率响应图') figure(3) subplot(2,1,1); plot(abs(y1(1:512))) title('原始语音信号FFT频谱') subplot(2,1,2); plot(f,abs(y1(1:512))); title(‘原始语音信号频谱') xlabel('Hz'); ylabel('magnitude'); IIR: fp=2500;fs=3500; wp = 2*pi*fp/FS; ws = 2*pi*fs/FS; Rp=1; Rs=15;

dsp数字信号处理实验报告华工

实验1 常见离散信号产生与实现 一、实验目得 1、加深对常用离散信号得理解; 2、熟悉使用MATLAB在时域中产生一些基本得离散时间信号。 二、实验原理 1、单位抽样序列 在MATLAB中可以利用函数实现。 2、单位阶越序列 在MATLAB中可以利用函数实现: 3、正弦序列 在MATLAB中实现过程如下:

4、复指数序列 在MATLAB中实现过程如下: 5、指数序列 在MATLAB中实现过程如下: 三、预习要求 1、预先阅读实验讲义(MATLAB基础介绍); 2、讨论正弦序列、复指数序列得性质。 A.绘出信号,当、时、、 时得信号实部与虚部图;当时呢?此时信号周期为多少?程序如下: titlez1=-1/12+j*pi/6; titlez2=1/12+j*pi/6; z3=1/12; z4=2+j*pi/6; z5=j*pi/6;

n=0:20; x1=exp(titlez1*n); x2=exp(titlez2*n); x3=exp(z3*n); x4=exp(z4*n); x5=exp(z5*n); subplot(5,2,1); stem(n,real(x1)); xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2); stem(n,imag(x1)); xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3); stem(n,real(x2)); xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时') subplot(5,2,4); stem(n,imag(x2)); xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时') subplot(5,2,5); stem(n,real(x3)); xlabel('n');ylabel('real(x3)'); title('z3=1/12时') subplot(5,2,6); stem(n,imag(x3)); xlabel('n');ylabel('image(x3)'); title('z3=1/12时')

数字信号处理实验报告

实验一MATLAB语言的基本使用方法 实验类别:基础性实验 实验目的: (1)了解MATLAB程序设计语言的基本方法,熟悉MATLAB软件运行环境。 (2)掌握创建、保存、打开m文件的方法,掌握设置文件路径的方法。 (3)掌握变量、函数等有关概念,具备初步的将一般数学问题转化为对应计算机模型并进行处理的能力。 (4)掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理。 实验内容和步骤: 1、打开MATLAB,熟悉MATLAB环境。 2、在命令窗口中分别产生3*3全零矩阵,单位矩阵,全1矩阵。 3、学习m文件的建立、保存、打开、运行方法。 4、设有一模拟信号f(t)=1.5sin60πt,取?t=0.001,n=0,1,2,…,N-1进行抽样,得到 序列f(n),编写一个m文件sy1_1.m,分别用stem,plot,subplot等命令绘制32 点序列f(n)(N=32)的图形,给图形加入标注,图注,图例。 5、学习如何利用MATLAB帮助信息。 实验结果及分析: 1)全零矩阵 >> A=zeros(3,3) A = 0 0 0 0 0 0 0 0 0 2)单位矩阵 >> B=eye(3) B = 1 0 0 0 1 0 0 0 1 3)全1矩阵 >> C=ones(3) C = 1 1 1 1 1 1 1 1 1 4)sy1_1.m N=32; n=0:N-1; dt=0.001; t=n*dt; y=1.5*sin(60*pi*t); subplot(2,1,1), plot(t,y); xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('正弦函数'); title('二维图形'); subplot(2,1,2), stem(t,y) xlabel('t'); ylabel('y=1.5*sin(60*pi*t)'); legend('序列函数'); title('条状图形'); 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 二维图形 00.0050.010.0150.020.0250.030.035 t y = 1 . 5 * s i n ( 6 * p i * t ) 条状图形

数字信号处理课程实验报告4

数字信号处理课程实验报告 实验名称FIR数字滤 班级姓名 波器设计 教师姓名实验地点实验日期 一、实验内容 1、设计一个最小阶次的低通FIR数字滤波器,性能指标为:通带0Hz~1500Hz,阻带截 止频率2000Hz,通带波动不大于1%,阻带波动不大于1%,采样频率为8000Hz; 2、用一个仿真信号来验证滤波器的正确性(注意:要满足幅度要求和线性相位特性)。 二、实验目的 1、利用学习到的数字信号处理知识解决实际问题; 2、了解线性相位滤波器的特殊结构; 3、熟悉FIR数字滤波器的设计方法。 三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况) 计算机一台(安装MATLAB6.5版本或以上版本) 四、实验记录(以下1~5项必须完成,第6项为选择性试做) 1.原理基础 令希望设计的滤波器的传输函数是H(ejw,hd(n)是与其对应的单位脉冲响应。一般情况下,由Hd(ejw)求出hd(n),然后由Z变换求出滤波器的系统函数。但是通常Hd(ejw)在边界频率处有不连续点,这使得hd(n)是无限长的非因果序列,所以实际是不能实现的。为了构造一个长度为N的线性相位滤波器,可以将hd(n)截取一段来近似,并且根据线性相位的特点,需要保证截取后的序列关于(N-1)/2对称。设截取的一段为h(n),则 Wr(n)称为矩形窗函数。 当hd(n的对称中心点取值为(N-1)/2时,就可以保证所设计的滤波器具有线性相位。 2 实验流程

1.信号的谱分析 2.信号的采样 3.信号的恢复 3源程序代码 clc; clear all; close all; fs=700;%采样频率 f=[30 40];%截止频率 a=[1 0]; dev=[0.01 0.1]; % dev纹波 [n,fo,ao,w]=remezord(f,a,dev,fs);%n滤波器阶数fo过渡带起止频率ao频带内幅度————firpmord b=remez(n,fo,ao,w);%firpm b=b.*blackman(length(b))'; b=b; a=1; figure(1) % [H,W]=freqz(b,1,1024,Fs); % plot(W,20*log10(abs(H))); freqz(b,1,1024,fs);grid title('滤波器') grid %%%%%%%%%%%%%%%% fc=28; fcl1=50; fcl2=100; fcl3=150; N=1024; n=1:N; % x=2*cos(2*pi*fc/fs*n)+j*2*sin(2*pi*fc/fs*n)+cos(2*pi*fcl/fs*n)+j*sin(2*pi*fcl/fs*n)+1*r and(1,N); xc=2*cos(2*pi*fc/fs*n); x=2*cos(2*pi*fc/fs*n)+2*cos(2*pi*fcl1/fs*n)+2*cos(2*pi*fcl2/fs*n)+0.1*rand(1,N); % x=2*cos(2*pi*fc/fs*n); xfft=abs(fft(x,N));

华南理工大学数字信号处理第三四次试验答案

实验3 FFT算法的应用 一、实验目的 1、加深对离散信号的DFT的理解; 2、在MATLAB中实现FFT算法。 二、实验内容 1、2N点实数序列 N=64。用一个64点的复数FFT程序,一次算出,并绘出的图形。

程序代码如下: N=64; n1=0:2:(2*N-1);n2=1:2:(2*N-1); x1=cos(2*pi*7*n1/N)+1/2*cos(2*pi*9*n1/N); x2=cos(2*pi*7*n2/N)+1/2*cos(2*pi*9*n2/N); X1=fft(x1,N);X2=fft(x2,N); X=X1+X2; Y=abs(X); stem(Y); 10203040506070

2、已知某序列在单位圆上的N=64等分样点的Z 变换为: 。 用N 点IFFT 程序计算出和。 程序代码如下: N=64; k=0:1:N-1; X=1./(1-0.8*exp(-j*2*pi*k/N)); x=ifft(X,N); stem(abs(x)); 0.20.40.60.811.21.4

三、利用至少两种频率估计方法编程求给定信号的频率(要求运算 过程中使用小于等于128点的FFT) 无噪声、20dB、15dB、10dB、5dB、0dB、-5dB 已知信号的采样率Fs= 4000 Hz 方法一:谱峰检测法 程序代码如下: function f=wxk3 load signal; N=128; Fs=4000; f=zeros(1,7); y=abs(fft(x,N)); [m,n]=max(y); f(1)=(n-1)*Fs/N; SNR=[20 15 10 5 0 -5]; for i=1:6 x=awgn(x,SNR(i)); y=abs(fft(x,N)); [m,n]=max(y); f(i+1)=(n-1)*Fs/N; end plot(f);hold;

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02

一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分

实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');

实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');

正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');

随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],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。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

2018华工嵌入式控制系统随堂作业

随堂练习 随堂练习提交截止时间:2017-06-25 00:00:00 当前页有10题,你已做10题,已提交10题,其中答对10题。 1.最早的单片机是Intel公司的(),它出现在1976年。 A.8088 B.8048 C.8058 D.8068 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 2.下面哪种操作系统不属于商用操作系统。() A. Windows 7 B. Linux C. VxWorks D. WinCE 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 3.下面哪点不是嵌入式操作系统的特点。() A. 内核精简 B. 专用性强 C. 功能强大 D. 高实时性 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 4.迄今为止,()系列的单片机仍然是最为成功的单片机芯片之一,在各种产品中有着非常广泛的应用。 A.8088 B.8048 C.8058 D.8051 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 5.嵌入式系统的核心是()和嵌入式操作系统。 A.嵌入式微处理器 B.存储器 C.单片机 D.内部总线 答题: A. B. C. D. (已提交)

参考答案:A 问题解析: 6.下面哪种嵌入式系统是属于软实时系统。() A.WinCE B.VxWorks C.Nucleus D.eCOS 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 7.下面哪种嵌入式系统是属于硬实时系统。() A.WinCE B.RTLinux C.Windows XP D.eCOS 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 8. Embedded Visual Studio是() A.嵌入式硬件开发工具 B.嵌入式软件开发工具 C.嵌入式调试工具 D.嵌入式编译工具 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 9.下面哪些不属于嵌入式控制系统的典型应用。() A.智能家居 B. 智能手机 C. 智能控制 D. 智能数据挖掘 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 10.下面哪个系统属于嵌入式系统()。 A.“天河一号”计算机系统 B.IBMX200笔记本电脑 C.联想S10上网本 D.Iphone手机 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 随堂练习提交截止时间:2017-06-25 00:00:00

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

实验一 基于Matlab的数字信号处理基本

实验一 基于Matlab 的数字信号处理基本操作 一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离 散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容: (一) 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0() 0(0 1)(≠=?? ?=n n n δ 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1]) 程序运行结果如图1-1所示。 图1-1 单位冲激序列

2012数字信号处理实验

实验1 常见离散信号产生和实现 一、实验目的 1、加深对常用离散信号的理解; 2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。 二、实验原理 1、单位抽样序列 在MATLAB中可以利用函数实现。 2、单位阶越序列 在MATLAB中可以利用函数实现: 3、正弦序列 在MATLAB中实现过程如下: 4、复指数序列

在MATLAB中实现过程如下: 5、指数序列 在MATLAB中实现过程如下: 三、预习要求 1、预先阅读实验讲义(MATLAB基础介绍); 2、讨论正弦序列、复指数序列的性质。 A.绘出信号,当、时、、 时的信号实部和虚部图;当时呢?此时信号周期为多少? B.绘出信号的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。 3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。 四、实验内容 编制程序产生上述5种信号,长度可输入确定,函数需要的参数可输入确定,并绘出其图形。

实验2 离散系统的时域分析 一、实验目的 1、熟悉并掌握离散系统的差分方程表示法; 2、加深对冲激响应和卷积分析方法的理解。 二、实验原理 在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下: 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应,则系统响应为如下的卷积计算式: 当时,h[n]是有限长度的(),称系统为FIR系统;反之,称系统为IIR系统。 三、预习要求

1、在MATLAB中,熟悉利用函数实现差分方程的仿真; 2、在MATLAB中,熟悉用函数计算卷积,用求系统冲激响应的过程。 四、实验内容 1、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零? % Program P2_7 clf; h = [3 2 1 -2 1 0 -4 0 3]; %impulse response x = [1 -2 3 -4 3 2 1]; %input sequence y = conv(h,x); n = 0:14; subplot(2,1,1); stem(n,y); xlabel('Time index n'); ylabel('Amplitude'); title('Output Obtained by Convolution'); grid; x1 = [x zeros(1,8)]; y1 = filter(h,1,x1); subplot(2,1,2); stem(n,y1); xlabel('Time index n'); ylabel('Amplitude'); title('Output Generated by Filtering'); grid; 2、编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。要求分别用 filter、conv、impz三种函数完成。 , ,

西南交大数字信号处理报告

信息科学与技术学院本科三年级 数字信号处理实验报告 2011 年12 月21日

实验一 序列的傅立叶变换 实验目的 进一步加深理解DFS,DFT 算法的原理;研究补零问题;快速傅立叶变换 (FFT )的应用。 实验步骤 1. 复习DFS 和DFT 的定义,性质和应用; 2. 熟悉MATLAB 语言的命令窗口、编程窗口和图形窗口的使用;利用提供的 程序例子编写实验用程序;按实验内容上机实验,并进行实验结果分析;写出完整的实验报告,并将程序附在后面。 实验内容 1. 周期方波序列的频谱试画出下面四种情况下的的幅度频谱,并分析补零后,对信号频谱的影响。 实验结果: 60 ,7)4(;60,5)3(; 40,5)2(;20,5)1()] (~[)(~,2,1,01 )1(,01,1)(~=========±±=???-+≤≤+-+≤≤=N L N L N L N L n x DFS k X m N m n L m N L m N n m N n x ) 52.0cos()48.0cos()(n n n x ππ+=

2. 有限长序列x(n)的DFT (1) 取x(n)(n=0:10)时,画出x(n)的频谱X(k) 的幅度; (2) 将(1)中的x(n)以补零的方式,使x(n)加长到(n:0~100)时,画出 x(n)的频谱X(k) 的幅度; (3) 取x(n)(n:0~100)时,画出x(n)的频谱X(k) 的幅度。利用FFT 进行谱分析 已知:模拟信号 以t=0.01n(n=0:N-1)进行采样,求N 点DFT 的幅值谱。 请分别画出N=45; N=50;N=55;N=60时的幅值曲线。 实验结果: ) 8cos(5)4sin(2)(t t t x ππ+=

数字信号处理基础实验报告_

本科生实验报告 实验课程数字信号处理基础 学院名称地球物理学院 专业名称地球物理学 学生姓名 学生学号 指导教师王山山 实验地点5417 实验成绩 二〇一四年十一月二〇一四年十二月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm, 左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱 并将信号进行奇偶分解 一、实验原理 单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。用Excel软件绘图显示计算结果。并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。用Excel 软件绘图显示计算结果。 二、实验程序代码 (1)离散抽样 double a,t; a=2*f*f*log(m); int i; for(i=0;i

华南理工大学信号与系统实验,电信学院

实验三 利用DFT 分析连续信号频谱 一、实验目的 应用离散傅里叶变换(DFT),分析模拟信号x (t )的频谱。深刻理解利用DFT 分析模拟信号频谱的原理,分析过程中出现的现象及解决方法。 二、 实验原理 连续周期信号相对于离散周期信号,连续非周期信号相对于离散非周期信号,都可以通过时域抽样定理建立相互关系。因此,在离散信号的DFT 分析方法基础上,增加时域抽样的步骤,就可以实现连续信号的DFT 分析。 三、实验内容 1. 利用FFT 分析信号)(e )(2t u t x t -=的频谱。 (1) 确定DFT 计算的各参数(抽样间隔,截短长度,频谱分辨率等); 答:选取fm=25Hz 为近似的最高频率,则抽样间隔T=)2/(1m f =0.02s 选取6=p T s 进行分析,则截短点数为N==T T p /300 采用矩形窗,确定频域抽样点数为512点。 Matlab 函数如下:%对连续信号x=e(-2t)分析 fsam=50;Tp=6; N=512; T=1/fsam; t=0:T:Tp; x=exp(-2*t); X=T*fft(x,N); subplot(2,1,1);plot(t,x); xlabel('t');title('时域波形 N=512');legend('理论值'); w=(-N/2:N/2-1)*(2*pi/N)*fsam; y=1./(j*w+2); subplot(2,1,2);plot(w,abs(fftshift(X)),w,abs(y),'r-.'); title('幅度谱 N=512');xlabel('w'); legend('理论值','计算值',0); axis([-10,10,0,1.4])

郑州大学数字信号处理课程设计报告

实验一:基于DFT的数字谱分析以及可能出现的问题 一、实验目的: 1.进一步加深对DFT的基本性质的理解。 2.掌握在MATLAB环境下采用FFT函数编程实现DFT的语句用法。 3.学习用DFT进行谱分析的方法,了解DFT谱分析中出现的频谱泄露和栅栏效应现 象,以便在实际中正确应用DFT。 二、实验步骤: 1.复习DFT的定义、物理含义以及主要性质。 2.复习采用DFT进行谱分析可能出现的三个主要问题以及改善方案。 3.按实验内容要求,上机实验,编写程序。 4.通过观察分析实验结果,回答思考题,加深对DFT相关知识的理解。 三、上机实验内容: 1.编写程序产生下列信号供谱分析用: 离散信号: x1=R10(n) x2={1,2,3,4,4,3,2,1},n=0,1,2,3,4,5,6,7 x3={4,3,2,1, 1,2,3,4},n=0,1,2,3,4,5,6,7 连续信号: x4=sin(2πf1t)+sin(2πf2t) f1=100Hz, f2=120Hz,采样率fs=800Hz 2.对10点矩形信号x1分别进行10点、16点、64点和256点谱分析,要求256点 频谱画出连续幅度谱,10点、16点和64点频谱画出离散幅度谱,观察栅栏效应。 3.产生信号x2和x3分别进行8点、16点谱分析,画出离散幅度谱,观察两个信 号的时域关系和幅度谱的关系。 4.对双正弦信号x4以采样率fs=800Hz抽样,生成离散双正弦信号并画出连续波形; 对离散双正弦信号进行时域截断,截取样本数分别为1000、250、50。对不同样本的双正弦信号分别进行1024点谱分析,画出连续幅度谱,观察频谱泄露现象。

数字信号处理基础实验报告 (2)

成都理工大学 《信号处理基础》实验 开设时间:2013—2014学年第2学期

题目1:信号的产生和显示 一、实验目的: 认识基本信号 通过使用MATLAB 设计简单程序, 掌握对MATLAB 的基本使用方法 二、实验原理: 找出下列表达式的信号与:正弦信号、最小相位信号、最大相位信号、零相位信号的对应关系。 1、sin60t 2、e-60t sin60t 3、(1- e-60t)sin60t 4、e60t sin60t 三、实验内容: 产生上述信号的信号并显示 (1)t=[-pi/30:0.001:pi/30]; f=sin(60*t); plot(t,f) 产生图形如下:

(2)t=[0:0.001:pi/30]; f=exp(-60*t).*sin(60*t); plot(t,f) 产生图形如下:

(3)t=[-5*pi/30:0.001:5*pi/30]; f=(1-exp(-60*t)).*sin(60*t); plot(t,f) 产生图形如下: (4) t=[-pi/30:0.001:pi/30]; f=exp(6*t).*sin(60*t); plot(t,f) 产生如下波形:

四、实验结果与讨论: 讨论上述信号的特点 从第一个波形图可以看出,它的波形与正弦函数sin(t)的相像,只是相位上有改变,是一个正弦信号。最大相位信号的能量集中在后面,最小相位能量集中在前面,所以第二个是一个最小相位,第四个是一个最大相位信号。第三个由于波形在t>0时没有,所以是一个零相位信号。 题目2:频谱分析与显示 一、实验目的 初步认识频谱分析

华工信号与系统实验五信工7班

实验五 连续系统分析 一、实验目的 深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。掌握利用MATLAB 分析连续系统的时域响应、频响特性和零极点的基本方法。 二、 实验原理 MATLAB 提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。 1. 连续系统的时域响应 连续时间LTI 系统可用如下的线性常系数微分方程来描述: 。 已知输入信号x (t )以及系统初始状态,就可以求出系统的 响应。MATLAB 提供了微分方程的数值计算的函数,可以计算上述n 阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。 在调用MATLAB 函数时,需要利用连续系统对应的系数函数。对微分方程进行Laplace 变换即可得系统函数: 在MATLAB 中可使用向量和向量分别保存分母多项式和分子多项式的系数: 这些系数均按s 的降幂直至s 0排列。 (1) 连续系统的单位冲激响应h (t )的计算 impulse(sys)计算并画出系统的冲激响应。参数:sys 可由函数tf(b,a)获得。其中: )()( )()(01)1(1)(t y a t y a t y a t y a n n n n ++++-- )()( )()(01)1(1)(t x b t x b t x b t x b m m m m ++++=-- )0(,),0('),0() 1(--- - n y y y 0 11 10 111)()()(a s a s a s a b s b s b s b s X s Y s H n n n n m m m m ++++++++==---- ],,,,[011a a a a a n n -=],,,,[011b b b b b m m -=

相关文档
最新文档