MATLAB数字信号处理小实验
MATLAB数字信号处理小实验
1、常见离散信号的MATLAB产生和图形显示
1.程序
(1) 单位抽样序列
如果
在时间轴上延迟了k个单位,得到
即:
程序如下:
N=20;
k=9;
x=zeros(1,N);
x(10)=1;
n=[k-9:N+k-10];
stem(n,x);
(2) 单位阶跃序列
程序如下:
N=20;
x=ones(1,N);
x(1:3)=0;
n=[-3:N-4];
stem(n,x);
title(‘单位阶跃序列’);
(3) 正弦序列
程序如下:
N=50;
n=0:N-1;
A=1;
f=50;
Fs=f*N;
fai=0.5*pi;
x=A*sin(2*pi*f*n/Fs+fai);
stem(n,x);
(4) 复正弦序列
程序如下:
N=50;
n=0:N-1;
w=2*pi/N;
x=exp(j*w*n);
plot(x,’*‘);
复指数序列
或
,它具有实部与虚部,
是复正弦的数字域频率。对第一种表示形式,可以写成
。
如果用极坐标表示,则
,
若
,则x(n)为衰减的复正弦,其实部和虚部分别为衰减振荡的正弦分量;若实部
,则实部和虚部分别为增大的正弦分量;若
,则实部和虚部分别为等幅振荡。本实验中使用的信号为
时的情况,即等幅振荡信号。实验图示为极坐标下的复指数序列图。横坐标表示实部,纵坐标表示虚部。从图中明显看出,序列各点幅值相等,只有相角的周期性变化。
(5) 指数序列
程序如下:
N=50;
a=1.1;
n=0:N-1;
x=a.^n;
plot(n,x,’*‘);
实验2 离散系统的差分方程、冲激响应和卷积分析
实验目的:加深对离散系统的差分方程、单位脉冲响应和卷积分析方法的理解。
实验原理:离散系统
其输入、输出关系可用以下差分方程描述:
输入信号分解为单位脉冲序列,
。
记系统单位脉冲响应
,则系统响应为如下的卷积计算式:
当
时,h[n]是有限长度的(n:[0,M]),称系统为FIR系统;反之,称系统为IIR系统。在MATLAB中,可以用函数y=Filter(p,d,x)求解差分方程,也可以用函数y=Conv(x,h)计算卷积。
- IIR的冲激响应和阶跃响应:
- FIR的冲激响应和阶跃响应:
1.程序
N=20;
p1=[1,-1];
d1=[1,0.6,0.08];
p2=[0,0.2,0.2,0.2,0.2,0.2];
d2=1;
delta=[1,zeros(1,N-1)];
u=ones(1,N);
labelx=0:N-1;
h1=filter(p1,d1,delta);
y1=filter(p1,d1,u);
h2=filter(p2,d2,delta);
y2=filter(p2,d2,u);
subplot(2,2,1);
stem(labelx,h1);
title(‘系统1单位冲激响应’,’fontsize’,15);
subplot(2,2,2);
stem(labelx,y1);
title(‘系统1单位阶跃响应’,’fontsize’,15);
subplot(2,2,3);
stem(labelx,h2);
title(‘系统2单位冲激响应’,’fontsize’,15);
subplot(2,2,4);
stem(labelx,y2);
title(‘系统2单位阶跃响应’,’fontsize’,15);
2.程序计算结果
计算结果精确到小数点后四位,只计算前20个点。
1)系统1
单位冲激响应:
1 -1.6 0.88 -0.4 0.1696 -0.0698 0.0283 -0.0114 0.0046 -0.0018 0.0007 -0.0003 0.0001 0 0 0 0 0 0 0
单位阶跃响应:
1 -0.6 0.28 -0.12 0.0496 -0.0202 0.0081 -0.0033 0.0013 -0.0005 0.0002 -0.0001 0 0 0 0 0 0 0 0
2)系统2
单位冲激响应:
0 0.2 0.2 0.2 0.2 0.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
单位阶跃响应:
0 0.2 0.4 0.6 0.8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3.两系统单位冲激响应和单位阶跃响应图形
4.理论计算结果
求取单位冲激响应时,
求取单位阶跃响应时,
系统为因果系统,有
1)对系统1:
,
单位冲激响应:
单位阶跃响应:
2)对系统2:
单位冲激响应:
单位阶跃响应:
对比理论计算结果和计算机程序计算结果,两者保持一致。对不同的系统,因其系统函数不同和收敛域不同,单位冲激响应和单位阶跃响也不同。
实验3 离散系统的频率响应分析和零、极点分布
求
的零、极点和幅度频率响应。
1.程序
num=[0.0528,0.797,0.1295,0.1295,0.797,0.0528];
den=[1,-1.8107,2.4947,-1.8801,0.9537,-0.2336];
subplot(2,1,1);
zplane(num,den);
title(‘系统零极点图’);
[h,w]=freqz(num,den,’whole’);
h=abs(h);
subplot(2,1,2);
plot(w,h);
title(‘系统幅度频率响应’);
实验4 离散信号的DTFT和DFT
分别计算16点序列
的16点和32点DFT,绘出幅度谱图形,并绘出该序列的DTFT图形
1.程序
N1=16;
n1=0:N1-1;
N2=32;
n2=0:N2-1;
x=cos(5*pi*n1/16);
x1=fft(x,N1);
x2=fft(x,N2);
subplot(2,2,1);
stem(n1,abs(x1));
title(‘16点DFT幅度谱图’);
subplot(2,2,2);
stem(n2,abs(x2));
title(‘32点DFT幅度谱图’);
num=x;
den=1;
[h,w]=freqz(num,den,’whole’);
subplot(2,2,3);
plot(w,abs(h));
title(‘DTFT幅度谱图’);
subplot(2,2,4);
plot(w,angle(h)*180/pi);
title(‘DTFT相位谱图’);
3.讨论
若
为N点有限长序列,其DTFT及DFT分别是:
,
显然,当
时,两者是相等的,这说明DFT是对离散时间序列在频域以
的整数倍频率上的抽样。即DFT是对DTFT的频率离散化的结果,从图中可以看出,实验结果与理论分析一致。从实验还可以看出:在时域内增加序列的长度(“补零”以增大周期),相当于在频域序列进行插值。这也就是实验现象产生的原因。
实验5 FFT算法的应用
- 2N点实数序列
N=64。用一个64点的复数FFT程序,一次算出
,并绘出
。
(2) 已知某序列
在单位圆上的N=64等分样点的Z变换为
。用N点IFFT程序计算
,绘出和
。
1.程序
1)N=64;
n=[0:2*N-1];
xn1=cos(2*pi/N*7*n)+1/2*cos(2*pi/N*19*n);
xk1=fft(xn1);
xk2=abs(xk1);
stem(n,xk2);
xlabel(‘k’);
ylabel(‘x(k)’)
2)
N=64;
n=[0:N-1];
xk=1./(1-0.8.*exp(-j*2*pi*n/N));
xn=fft(xk,N);
stem(n,xn);
xlabel(‘k’);
ylabel(‘x(n)’)
3.讨论
从2N点FFT结果可以看出,频域序列X(k)含有4条谱线,但事实上只对应有两个不同的频率(根据奈奎斯特采样定理,另外两条谱线没有实际意义),即f=7Hz和f=19Hz,但从图1中却观察到,|X(k)|在f=14Hz和f=38Hz处有不为零频谱分量,且为给出的离散时间信号x(n)所含的对应频率的两倍。另外,虽然序列x(n)总共有2N=128点,但实际上从n=64到127这N点是对上一个周期的重复,由于计算FFT时只需要一个完整周期的信号即可,而2N点的FFT用的序列x(n)在时域却有两个周期,因此出现了“频谱移动”的现象。从而实际的不为零的频率分量应为f=14/2=7Hz,f=38/2=19Hz。
实验6 基于MATLAB的数字滤波器设计
利用MATLAB编程设计一个数字带通滤波器,指标要求如下:
通带边缘频率:
,
,通带峰值起伏:
。
阻带边缘频率:
,
,最小阻带衰减:
。分别用IIR和FIR两种数字滤波器类型进行设计。给出IIR数字滤波器参数和FIR数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
1.程序
1)IIR滤波器设计
Wp1=0.4*pi;
Wp2=0.7*pi;
Ws1=0.3*pi;
Ws2=0.8*pi;
Wp=[Wp1 Wp2];
Ws=[Ws1,Ws2];
rp=1;rs=40;
Fs=1;
[N,wn]=buttord(Wp/pi,Ws/pi,rp,rs);
[b,a]=butter(N,Wp/pi);
[H,w]=freqz(b,a,500,1000);
subplot(2,1,1);
plot(w*2/Fs,20*log10(abs(H)));
ylabel(‘模值’)
subplot(2,1,2);
plot(w*2/Fs,angle(H)*180/pi);
ylabel(‘角度’);
2)FIR滤波器设计
delta_w=Wp1-Ws1;
N=floor(6.2*pi/delta_w);
Window=hann(N+1);
b=fir1(N,[0.4 0.7],Window);
freqz(b,1);
3.讨论说明
1)实现形式
IIR滤波器的形式
IIR滤波器具有如下形式的系统函数:
其中存在k使得
从上式中可以看出,IIR滤波器输出不仅与输入有关,还与前N项输出有关。
FIR滤波器的形式
FIR滤波器的系统函数为:
同样,从上式中可以看出,FIR滤波器的输出只与输入有关。
2)特点
IIR滤波器特点:
(1)h(n)无限长,极点位于有限z平面(
)任意位置;
(2)和具有相同性能的FIR滤波器相比,IIR滤波器的阶次较低;
(3)具有非线性相位,这一点从图中可以看出;
(4)递归结构实现,不能用FFT计算;
(5)可借用模拟滤波器丰富的公式和经验设计,这是IIR滤波器最大的优点;
(6)用于设计规格化的选频滤波器。
FIR滤波器特点:
(1)h(n)有限长,极点固定在原点;
(2)和具有相同性能的IIR滤波器相比,阶次高得多;
(3)可严格的线性相位,从图中可以观察到这一结论;
(4)一般采用非递归结构,但有时也采用零极点相互抵消的方式采用递归结构实现;
(5)可用FFT计算,设计借助于计算机;
(6)可设计各种幅频特性和相频特性的滤波器,可以从时域和频域设计(分别对应窗函数法和频率抽样设计法)。
还没有评论,来说两句吧...