dsp数字信号处理实验报告华工.docx
- 文档编号:25695711
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:42
- 大小:871.06KB
dsp数字信号处理实验报告华工.docx
《dsp数字信号处理实验报告华工.docx》由会员分享,可在线阅读,更多相关《dsp数字信号处理实验报告华工.docx(42页珍藏版)》请在冰豆网上搜索。
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时')
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)时
程序如下:
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)时
程序如下:
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)方波程序:
%%%%%%%%%%%%%%%%%%%%
n=-2*pi:
0、0001:
2*pi
y=square(n);
plot(n,y)
xlabel('时间序号');
ylabel('幅度');
title('square')
方波结果:
%%%%%%%%%%%%%%%%%%%
(2)锯齿波程序:
n=-10:
0、0001:
10;
y=sawtooth(n);
plot(n,y)
xlabel('时间序号');
ylabel('幅度');
title('sawtooth')
锯齿波结果:
%%%%%%%%%%%%%%%%%%%%%
(3)sinc函数程序:
n=-10:
0、1:
10;
y=sinc(n);
plot(n,y)
xlabel('时间序号');
ylabel('幅度');
title('sinc')
Sinc函数结果:
四、实验内容
编制程序产生上述5种信号,长度可输入确定,函数需要得参数可输入确定,并绘出其图形。
(1)单位抽样序列
函数部分:
functiony=fun1(n)
y=[zeros(1,n-1)1zeros(1,n-1)];
调用部分:
n=3;
y=fun1(n);
stem((-n+1):
(n-1),y)
xlabel('时间序号');
ylabel('幅度');
(2)阶跃序列
函数部分:
functiony=fun2(n)
y=[zeros(1,n-1)ones(1,n)];
调用部分:
n=3;
y=fun2(n);
stem((-n+1):
(n-1),y)
xlabel('时间序号');
ylabel('幅度');
(3)正弦序列
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('幅度');
图形如下:
(4)复指数序列
函数部分:
functiony=fun4(n,r,w)
y=r*exp(j*w*n);
subplot(2,1,1);
stem(n,real(y))
xlabel('时间序号');
ylabel('幅度');
title('realpart')
subplot(2,1,2);
stem(n,imag(y));
xlabel('时间序号');
ylabel('幅度');
title('imaginarypart');
调用部分:
n=-20:
20;
r=2;
w=5;
y=fun4(n,r,w);
图形如下:
(5)指数序列
函数部分:
functiony=fun5(a,n);
y=a、^n;
stem(n,y)
xlabel('时间序号');
ylabel('幅度');
xlabel('时间序号');
ylabel('幅度');
title('指数序号')
调用部分:
n=-5:
10;
a=2;
y=fun5(a,n);
图形如下:
实验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完成卷积功能,需要如何补零?
%ProgramP2_7
clf;
h=[321-210-403];%impulseresponse
x=[1-23-4321];%inputsequence
y=conv(h,x);
n=0:
14;
subplot(2,1,1);
stem(n,y);
xlabel('Timeindexn');ylabel('Amplitude');
title('OutputObtainedbyConvolution');grid;
x1=[xzeros(1,8)];
y1=filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Timeindexn');ylabel('Amplitude');
title('OutputGeneratedbyFiltering');grid;
答:
由于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函数:
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');
B、使用Conv函数:
a=[1,0、75,0、125];
b=[1,-1];
x=[1zeros(1,10)];
[h]=impz(b,a,10);
yconv=conv(h,x);
n=0:
19;
stem(n,yconv);
title('conv');
xlabel('x');
ylabel('y');
C、使用Impz函数:
a=[1,0、75,0、125];
b=[1,-1];
c=impz(b,a,21);
stem(c)
②系统得阶跃响应:
A.使用Filter函数:
a1=[1,0、75,0、125];
b1=[1,-1];
n=0:
20;
x2=ones(1,21);
y1filter=filter(b1,a1,x2);
stem(n,y1filter);
title('阶跃响应');
xlabel('x');
ylabel('y');
B、使用Impz函数:
a=[1,0、75,0、125];
b=1;
impz(b,a)
(2)
①冲击响应:
A、使用filter函数:
a=[1];
b=[0,0、25,0、25,0、25,0、25];
n=0:
20;
x=[1,zeros(1,20)];
yfilter=filter(b,a,x);
stem(n,yfilter);
title('filter');
xlabel('x');
ylabel('y')
B、使用Impz函数:
a=[1];
b=[0,0、25,0、25,0、25,0、25];
c=impz(b,a,21);
stem(c)
②阶跃响应:
A.使用Filter函数:
a1=[1];
b1=[0,0、25,0、25,0、25,0、25];
n=0:
20;
x2=ones(1,21);
y1filter=filter(b1,a1,x2);
stem(n,y1filter);
title('阶跃响应');
xlabel('x');
ylabel('y')
B、使用Impz函数:
n=0:
20;
b=[0,0、25,0、5,0、75,ones(1,17)];
a=1;
impz(b,a,21)
若用y=filter(p,d,x)用来实现差分方程,d表示差分方程输出y得系数,p表示输入x得系数,而x表示输入序列。
输出结果函数得长度即为x得长度。
而y=conv(x,h)就是用来实现卷积得,对x序列与h序列进行卷积,输出得结果个数等于x得长度与h得长度之与减去1。
y=impz(p,d,N)就是用来实现冲击响应得,d表示输入x得系数,d表示输出y得长度,N就是x得长度。
作业题
M2、7
程序如下:
t=0:
0、001:
1;
f0=cos(6*pi*t);%三个信号频率分别为3、7、13Hz
f1=cos(14*pi*t);
f2=cos(26*pi*t);
plot(t,f0,t,f1,t,f2);
hold
n=0:
1:
10;
fn=cos(0、6*pi*n);%抽样函数频率为0、3Hz
plot(n/10,fn,'o');
holdoff
实验结果如下:
结论:
如图所示,蓝色虚线,绿色虚线与红色实线相交于抽样点(蓝色圆圈),所以对于这三个信号抽样结果就是相同得。
M2、9
程序如下:
N=10;
n=0:
N-1;
y=cos(2*n);
x=rand(1,N)+y-0、5;%产生随机函数rand从零到N来模拟信号x得噪声
r=conv(x,fliplr(x));%自相关序列
n1=length(x)-1;
k=-n1:
n1
stem(k,r);%画出自相关离散图像
xlabel('Lagindex');ylabel('Amplitude');
实验结果如下:
结论:
如图所示,当n=0得时候序列得自相关序列呈现尖峰。
M41
程序如下:
%Program4_1
%SignalSmoothingbyaMoving-AverageFilter
R=50;
d=rand(R,1)-0、5;
m=0:
1:
R-1;
s=2*m、*(0、9、^m);
x=s+d';
plot(m,d,'r-',m,s,'b--',m,x,'g:
')
xlabel('Timeindexn');ylabel('Amplitude')
legend('d[n]','s[n]','x[n]');
pause
M=input('Numberofinputsamples=');
b=ones(M,1)/M;
y=filter(b,1,x);
plot(m,s,'r-',m,y,'b--')
legend('s[n]','y[n]');
xlabel('Timeindexn');ylabel('Amplitude')
实验结果如下:
M=5
M=7
M=9
结论:
如图,红色实线就是平滑后得输出,蓝色虚线就是含噪输出。
由图可知随着滤波器长度得增加,曲线得平滑度上升,但就是平滑后输出与含噪输出之间得延迟也增加了。
M4、2
程序如下:
a=9;%设定x[n]得系数alpha
y0=1;%设定初始值y[-1]=-1
y1=0、5*(y0+(a/y0));%得到递归方程
whileabs(y1-y0)>0、00001%当相邻两个y值接近时(收敛)得时候
y2=0、5*(y1+(a/y1));%停止运算与赋值
y0=y1;
y1=y2;
end
实验结果如下:
1)若a=9
此时,变量结果如图:
2)若a=100
此时,变量结果如图:
可证y[n]收敛于
。
M4、5
程序如下:
h=[-4、87889、5631-4、8788];
[H,w]=freqz(h,1);%求出冲激响应与频率范围
m=abs(H);%求出频响幅值
plot(w/pi,m);
grid;
实验结果如下:
声音处理题
课前每人录制一段自己得拼音字母“a、o、e、b、p、t”、以及“a、o、e”四个声调得声音(采样率8kHz,单声道,16bit量化)
利用文献中得方法编程求解出各自声音信号得基音周期,观察不同字母、声调得基音变化
语音信号需分帧处理,20ms一帧(160个样点),每一帧求一个周期
程序:
举例a得一声a1、wav程序如下:
a1=wavread('a1、wav');
subplot(3,1,1);
stem(a1(6000:
11200));%查瞧波形
title('声音波形');
beg=6000;%声音开始位置
n=20;%帧数
fl=160;%每帧长度
subplot(3,1,2);
fori=1:
n
s=a1((beg+fl*(i-1)):
(beg+fl*i));%截取一帧
x=xcorr(s);%计算自相关
stem(x)
title('自相关');
[M,I1]=max(x);%找最大值位置
[M,I2]=max(x(1:
I1-10));%找最大值附近极大值位置
d(i)=I1-I2%计算周期
end
subplot(3,1,3);
stem(d)
dm=mode(d)%求基音周期众数dm
fd=8000/dm%求声音频率fd
xlabel('帧数n');ylabel('d');
title('基音周期')
运行结果:
1.“a”
(1)一声时
d=[2929292929292828282828292929292929292929];
基音周期众数:
dm=29
频率:
fd=275、8621
(2)二声时
d=[4140404079793978773838383838373737363636];
基音周期众数:
dm=38
频率fd=210、5263
(3)三声时
d=[3940414141424242434343444444454545454545]
基音周期众数:
dm=45
频率:
fd=177、7778
(4)四声时
d=[1010172121222222222222232323232324242424]
基音周期众数:
dm=22
频率:
fd=363、6364
(5)四个声调对比:
初步结论:
由对比图可得后三种音调得波形图不如a得一声平稳,因为二三四声都经过了变调。
而从基音周期瞧,四种声调基音周期与频率各不相同,其中,四声基音周期最小,频率最大。
2.清音与浊音得对比
(1)a音一声
d=[2929292929292828282828292929292929292929];
基音周期众数:
dm=29
频率:
fd=275、8621
(2)o音一声:
d=[2627272727272727272726262626262626262626]
基音周期众数:
dm=26
频率:
fd=307、6923
(2)e音一声
d=[1028161615292928282728282828282828281429]
基音周期众数dm=28
频率fd=285、7143
(3)b音
d=[1411101016212324242424242424241212252525]
基音周期众数dm=24
频率fd=333、3333
(4)P音
d=[2424242424242525252424242424241212252525]
基音周期众数dm=24
频率fd=333、3333
(5)T音
d=[2223242425262626262627272726262626262626]
基音周期众数dm=26
频率fd=307、6923
初步结论:
由图像对比可得,浊音得频率低于清音,也就就是基音周期长于清音。
而清音与清音之间与浊音与浊音之间得频率差异也存在,但并不算大。
此次实验由于录音设备与软件得局限,录音时长并不相同,在代码运行时要注意修改stem(a1(6000:
11200))语句得两个采样点得位置,以确保使画出后声音波形能观察得到较明显得波形变化。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dsp 数字信号 处理 实验 报告 华工
![提示](https://static.bdocx.com/images/bang_tan.gif)