数字信号处理实验报告
姓名:蔡由卫 学号:0702100202 班级:通信1102
实验一:系统响应及系统稳定
1.给定一个低通滤波器的差分方程为y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1),输入信号 x1(n)=R8(n), x2(n)=u(n)
(1)分别求出x1(n)=R8(n)和x2(n)=u(n)的系统响应,并画出其波形。
(2)求出系统的单位脉冲响应,画出其波形。
clc
clear all
close all
ys=0
x1=[ones(1,7) zeros(1,24)];
x2=[ones(1,30)];
x3=[1,zeros(1,29)];
B=[0.05,0.05];A=[1,-0.9];%差分方程系数
xi=filtic(B,A,ys); %由初始条件计算等效初始条件的输入序列xi
y1=filter(B,A,x1,xi);%调用filter解差分方程,求系统输出信号y1(n)
y2=filter(B,A,x2,xi); %调用filter解差分方程,求系统输出信号y2(n)
y3=filter(B,A,x3,xi); %调用filter解差分方程,求系统输出信号y3(n)
n=0:29;
subplot(3,1,1);stem(y1,'.');xlabel('n');ylabel('y_1(n)');%画y1(n)的波形
subplot(3,1,2);stem(y2,'.');xlabel('n');ylabel('y_2(n)'); %画y2(n)的波形
subplot(3,1,3);stem(y3,'.');xlabel('n');ylabel('h(n)'); %画h(n)的波形
2.给定系统的单位脉冲响应为 h1 (n)=R10(n)
h2(n)= +2.5+2.5(n-2)+(n-3)
用线性卷积法求x1(n)=R8(n)分别对系统h1(n)和h2(n)的输出响应并画出波形。
clc
clear all
close all
h1n=[ones(1,9)];
h2n=[1 2.5 2.5 1];
xn=[ones(1,7)];
y1n=conv(xn,h1n); %y1n为xn与h1n的线性卷积
y2n=conv(xn,h2n); %y2n为xn与h2n的线性卷积
subplot(2,1,1);stem(0:length(y1n)-1,y1n,'.');xlabel('n');ylabel('y_1(n)');title('y_1(n)=x(n)*h_1(n)'); %画y1n的波形
subplot(2,1,2);stem(0:length(y2n)-1,y2n,'.');xlabel('n');ylabel('y_2(n)');title('y_2(n)=x(n)*h_2(n)'); %画y2n的波形
3.给定一谐振器的差分方程为
y(n)=1.8237y(n-1)-0.9801y(n-2)+b0x(n)-b0x(n-2)
令b0=1/100.49,谐振器的谐振频率为0.4rad。
(1)用实验方法检查系统是否稳定。输入信号为u(n)时,画出系统输出波形。
(2)给定输入信号为 x(n)=sin(0.014n)+sin(0.4n)
求出系统的输出响应,并画出其波形。
clc
close all
clear all
un=ones(1,256);%输入un
n=0:255;
xn=sin(0.014*n)+sin(0.4*n); %输入xn
A=[1 -1.8237 0.9801];%查分方程系数
B=[1/100.49 -1/100.49];%查分方程系数
y1n=filter(B,A,un); %调用filter解差分方程,求系统输出信号y1(n)
y2n=filter(B,A,xn); %调用filter解差分方程,求系统输出信号y2(n)
subplot(2,1,1);stem(0:length(y1n)-1,y1n,'.');xlabel('n');ylabel('y_1(n)');title('输入u
(n)输出波形');%画输出波形y1n
subplot(2,1,2);stem(0:length(y2n)-1,y2n,'.');xlabel('n');ylabel('y_2(n)');title('输入x(n)输出波形');% 画输出波形y2n
4.思考题:
(1)如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可以用分段线性卷积法求系统的响应。
(2)如果信号经过低通滤波器,则信号的高频分量被滤掉,时域信号的变化减缓,在阶跃处附近产生过渡变化时间。
实验三:用FFT对信号作频谱分析
1.对以下序列进行FFT分析:
x1(n)=R4(n)
x2(n)=
x3(n)=
选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。
程序:
x1n=[ones(1,4)];
x2n=[1 2 3 4 4 3 2 1];
x3n=[4 3 2 1 1 2 3 4];
X1k8=fft(x1n,8);%计算x1n的8点DFT
X1k16=fft(x1n,16); %计算x1n的16点DFT
X2k8=fft(x2n,8); %计算x2n的8点DFT
X2k16=fft(x2n,16); %计算x2n的16点DFT
X3k8=fft(x3n,8); %计算x3n的8点DFT
X3k16=fft(x3n,16); %计算x3n的16点DFT
subplot(3,2,1);stem(0:length(X1k8)-1,abs(X1k8),'.'); title('x1n的8点DFT幅频特性图');xlabel('k');ylabel('幅度'); %绘制8点DFT的幅频特性图
subplot(3,2,2);stem(0:length(X1k16)-1,abs(X1k16),'.'); title('x1n的16点DFT幅频特性图');xlabel('k');ylabel('幅度'); %绘制16点DFT的幅频特性图
subplot(3,2,3);stem(0:length(X2k8)-1,abs(X2k8),'.'); title('x2n的8点DFT幅频特性图');xlabel('k');ylabel('幅度'); %绘制8点DFT的幅频特性图
subplot(3,2,4);stem(0:length(X2k16)-1,abs(X2k16),'.'); title('x1n的16点DFT幅频特性图');xlabel('k');ylabel('幅度'); %绘制16点DFT的幅频特性图
subplot(3,2,5);stem(0:length(X3k8)-1,abs(X3k8),'.'); title('x3n的8点DFT幅频特性图');xlabel('k');ylabel('幅度'); %绘制8点DFT的幅频特性图
subplot(3,2,6);stem(0:length(X3k16)-1,abs(X3k16),'.'); title('x3n的16点DFT幅频特性图');xlabel('k');ylabel('幅度'); %绘制16点DFT的幅频特性图
2.对以下周期序列进行谱分析:
x4(n)=cos[(π/4)*n]
x5(n)= cos[(π/4)*n]+ cos[(π/8)*n]
选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。
clc
close all
clear all
n=0:1:20;
x4n=cos(pi*n/4);
x5n=cos(pi*n/4)+cos(pi*n/8);
X4k8=fft(x4n,8); %计算x4n的8点DFT
X4k16=fft(x4n,16); %计算x4n的16点DFT
X5k8=fft(x5n,8); %计算x5n的8点DFT
X5k16=fft(x5n,16); %计算x5n的16点DFT
subplot(2,2,1);stem(0:length(X4k8)-1,abs(X4k8),'.'); title('x4n的8点DFT幅频特性图');xlabel('k');ylabel('幅度'); % x4n的8点DFT幅频特性图
subplot(2,2,2);stem(0:length(X4k16)-1,abs(X4k16),'.'); title('x4n的16点DFT幅频特性图');xlabel('k');ylabel('幅度'); % x5n的16点DFT幅频特性图
subplot(2,2,3);stem(0:length(X5k8)-1,abs(X5k8),'.'); title('x5n的8点DFT幅频特性图');xlabel('k');ylabel('幅度'); % x5n的8点DFT幅频特性图
subplot(2,2,4);stem(0:length(X5k16)-1,abs(X5k16),'.'); title('x5n的16点DFT幅频特性图');xlabel('k');ylabel('幅度'); % x5n的16点DFT幅频特性图
(3)对模拟周期信号进行频谱分析:
x6(n)= cos(8πt)+ cos(16πt)+ cos(20πt)
选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。
clc
close all
clear all
Fs=64;T=1/Fs;
n=0:1:70;
x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);
X6k16=fft(x6nT,16);%计算x6nT的16点DFT
X6k32=fft(x6nT,32); %计算x6nT的16点DFT
X6k64=fft(x6nT,64); %计算x6nT的16点DFT
subplot(3,1,1);stem(0:length(X6k16)-1,abs(X6k16),'.'); title('x_6(nT)的16点DFT幅频特性图');xlabel('k');ylabel('幅度');%x6nT的16点DFT幅频特性图
subplot(3,1,2);stem(0:length(X6k32)-1,abs(X6k32),'.'); title('x_6(nT)的32点DFT幅频特性图');xlabel('k');ylabel('幅度'); %x6nT的32点DFT幅频特he
subplot(3,1,3);stem(0:length(X6k64)-1,abs(X6k64),'.'); title('x_6(nT)的64点DFT幅频特性图');xlabel('k');ylabel('幅度'); %x6nT的64点DFT幅频特性图
4思考题:
(1) 周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求.
(2) 一、对于非周期信号:有频谱分辨率F,而频谱分辨率直接和FFT的变换区间有关,因为FFT能够实现的频率分辨率是2π/N...因此有最小的N>2π/F。就可以根据此式选择FFT的变换区间。二、对于周期信号,周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。
(3)当N=8时,x2(n)和x3(n)的幅频特性相同,因为x3(n)=x2((n+3))8R8(n), x2(n)与x3(n)满足循环移位特性。当N=16时,x2(n)和x3(n)的幅频特性不相同,因为x2(n)与x3(n)不满足循环移位特性。
第二篇:数字信号处理实验报告一
西南大学学生实验报告
姓名:杨剑 学号:222009322072058 班级:1班 专业:电科 实验日期:20xx年9月29日 实验学时:2学时
实验名称:基本信号的产生和序列的基本运算。
实验目的:学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。
实验原理: MATLAB提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。这些基本信号是信号处理的基础。 实验内容:
1,用matlab产生下列连续信号并作图
⑴ x(t)??2u(t?1),?1?t?5;
t=-1:0.01:5;
x=-2.*(t>=1);
plot(t,x);
axis([-1,5,-2.4,0.4]);
-0.5
-1
-1.5
-2
-1012345
⑵x(t)?e?0.1tsin(2
3t),0?t30
t=0:0.001:30;
x1=exp(-0.1*t);
w0=2/3;
x2=sin(w0*t);
x=x1.*x2;
plot(t,x);
1
0.5
-0.5
0102030 ⑶x(t)?cos(100t)?cos(3000t),?0.1?t?0.1 t=-0.1:0.001:0.1;
w0=100;
w1=3000;
x=cos(w0*100)+cos(w1*t);
plot(t,x);
0.5
-0.5
-1
-1.5
-2-0.1
2,利用MATLAB产生下列离散序列并作图 ⑴x[k]?{1,?5?k?5
0,其他-0.0500.050.1 设-15?k?15
k=-15:15;
x=[zeros(1,10),ones(1,11),zeros(1,10)]; stem(k,x);
⑵x[k]?(0.9)k[sin(o.25?k)?cos(0.25?k)],设-20?k?20 k=-20:20;
omega=0.25*pi;
x1=sin(omega*k)+cos(omega*k); x2=(0.9).^k;
x=x1.*x2;
stem(k,x);
-20
3,已知序列: -15-10-505101520
X[k]=[1,2,0,-1,3,2;k=-2,-1,0,1,2,3], H[k]=[1,-1,1;k=0,1,2]
⑴ 计算序列的卷积和,y[k]?x[k]?h[k]并绘出波形 ⑵ 计算序列的互相关函数并绘出其波形 x=[1,2,0,-1,3,2];
nx=[-2:3];
h=[1,-1,1];
nh=[0:2];
ny1=nx(1)+nh(1);
ny_end=nx(end)+nh(end);
ny=[ny1:ny_end];
y=conv(x,h);
subplot(2,1,1);
stem(ny,y);
title('conv(x,y)');
xlabel('n');
r=xcorr(x,h);
subplot(2,1,2);
m=(length(r)-1)/2;
stem([-m:m],r);
title('Rxy[n]');
xlabel('n');
n
4,数字信号处理的应用之一是从含有加性噪声的信号中去除噪声。现有被噪声
污染的信号:x[k]?s[k]?d[k]其中s[k]?cos(0.08?k)
(1)分别产生50点的序列s[k]和白噪声序列d[k],将二者叠加生成x[k],并在同一n长图上绘出s[k],d[k]和x[k]的序列波形。
(2)均值滤波可以有效去除叠加在低频信号上的噪声。已知3点滑动平均数字滤波器的单位脉冲响应为h[k]=[1,1,1;k=0,1,2]计算y[k]=x[k]*]h[k],在同一张图上绘出前50点s[k]、 y[k]和x[k]的序列波形,比较序列s[k],y[k]。
n=50;
k=0:n-1;
omega=0.08*pi; s=cos(omega*k); subplot(3,1,1); stem(k,s);
title('s[k]'); d=rand(1,n); subplot(3,1,2); stem(k,d);
title('d[k]'); x=s+d;
subplot(3,1,3); stem(k,x);
title('x[k]');
n=50;
k=0:n-1;
omega=0.08*pi; s=cos(omega*k); subplot(3,1,1); stem(k,s);
title('s[k]'); d=rand(1,n); x=s+d;
subplot(3,1,2); stem(k,x);
title('x[k]'); h=[1,1,1];
y=conv(x,h); subplot(3,1,3);
stem([0:length(y)-1],y);
title('y[k]');
结论:比较s[k]和y[k]知:均值滤波可有效去除加在低频信号上的噪声。
x[k]
y[k]0102030405060 实验感想:通过本实验学会了利用matlab产生一些基本信号如:阶跃信号,脉冲信号,指数信号,正弦信号等 并实现信号的卷积和互相关等简单的运算,能够按照要求顺利的完成实验,达到预期的效果。