当前位置:文档之家› 数字信号处理Matlab课后实验(吴镇扬)

数字信号处理Matlab课后实验(吴镇扬)

数字信号处理实验报告实验一熟悉MATLAB环境实验二信号的采样与重建实验三快速变换及其应用实验四 IIR数字滤波器的设计实验五 FIR数字滤波器的设计实验一熟悉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。

实验程序:A=[1 2 3 4];B=[3 4 5 6];n=1:4;C=A+B;D=A-B;E=A.*B;F=A./B;G=A.^B;subplot(4,2,1);stem(n,A,'fill');xlabel ('时间序列n');ylabel('A');subplot(4,2,2);stem(n,B,'fill');xlabel ('时间序列n ');ylabel('B');subplot(4,2,3);stem(n,C,'fill');xlabel ('时间序列n ');ylabel('A+B');subplot(4,2,4);stem(n,D,'fill');xlabel ('时间序列n ');ylabel('A-B');subplot(4,2,5);stem(n,E,'fill');xlabel ('时间序列n ');ylabel('A.*B');subplot(4,2,6);stem(n,F,'fill');xlabel ('时间序列n ');ylabel('A./B');subplot(4,2,7);stem(n,G,'fill');xlabel ('时间序列n ');ylabel('A.^B');运行结果:(2)用MATLAB实现以下序列。

a)x(n)=0.8n0≤n≤15实验程序:n=0:15;x=0.8.^n;stem(n,x,'fill'); xlabel ('时间序列n ');ylabel('x(n)=0.8^n');b)x(n)=e(0.2+3j)n0≤n≤15实验程序:n=0:15;x=exp((0.2+3*j)*n);stem(n,x,'fill'); xlabel ('时间序列n ');ylabel('x(n)=exp((0.2+3*j)*n)'); 运行结果:a)的时间序列 b)的时间序列c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π) 0≤n≤15实验程序:n=0:1:15;x=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi);stem(n,x,'fill'); xlabel('时间序列n ');ylabel('x(n)=3*cos(0.125*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi)');运行结果:d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期实验程序:n=0:1:63;x=3*cos(0.125*pi*rem(n,16)+0.2*pi)+2*sin(0.25*pi*rem(n,16)+0.1*pi); stem(n,x,'fill'); xlabel ('时间序列n ');ylabel('x16(n)');e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期实验程序:n=0:1:39;x=3*cos(0.125*pi*rem(n,10)+0.2*pi)+2*sin(0.25*pi*rem(n,10)+0.1*pi); stem(n,x,'fill'); xlabel ('时间序列n ');ylabel('x10(n)');运行结果:d )的时间序列e )的时间序列(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。

a )x 1(n)=2x(n+2)-x(n-1)-2x(n)实验程序: n=0:3; x=[1 -1 3 5];x1=circshift(x,[0 -2]);x2=circshift(x,[0 1]);x3=2*x1-x2-2*x;stem(x3,'fill'); xlabel ('时间序列n ');ylabel('x1(n)=2x(n+2)-x(n-1)-2x(n)');b )∑=-=51k 2)k n (nx (n) x实验程序: n=0:3; x=[1 -1 3 5];x1=circshift(x,[0 1]);x2=circshift(x,[0 2]);x3=circshift(x,[0 3]); x4=circshift(x,[0 4]);x5=circshift(x,[0 5]); xn=1*x1+2*x2+3*x3+4*x4+5*x5;stem(xn,'fill'); xlabel('时间序列n ');ylabel('x2(n)=x(n-1)+2x(n-2)+3x(n-3)+4x(n-4)+5x(n-5)'); 运行结果:a)的时间序列b)的时间序列(4)绘出时间函数的图形,对x轴、y轴图形上方均须加上适当的标注。

a) x(t)=sin(2πt) 0≤t≤10s b) x(t)=cos(100πt)sin(πt) 0≤t≤4s实验程序:clc;t1=0:0.001:10;t2=0:0.01:4;xa=sin(2*pi*t1);xb=cos(100*pi*t2).*sin(pi*t2);subplot(2,1,1);plot(t1,xa);xlabel ('t');ylabel('x(t)');title('x(t)=sin(2*pi*t)');subplot(2,1,2);plot(t2,xb);xlabel ('t');ylabel('x(t)');title('x(t)=cos(100*pi*t2).*sin(pi*t2)'); 运行结果:(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。

实验程序: clc;n1=input('请输入起点:'); n2=input('请输入终点:'); n0=input('请输入阶跃位置:'); n=n1:n2; x=[n-n0>=0];stem(n,x,'fill');xlabel('时间序列n');ylabel('u(n-n0)'); 请输入起点:2 请输入终点:8 请输入阶跃位置:6 运行结果:(5)运行结果(6)运行结果(6)给一定因果系统)0.9z 0.67z-1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。

实验程序:a=[1 -0.67 0.9]; b=[1 sqrt(2) 1]; [h w]=freqz(b,a); fp=20*log(abs(h)); subplot(2,1,1);plot(w,fp);xlabel('时间序列t');ylabel('幅频特性'); xp=angle(h); subplot(2,1,2);plot(w,xp);xlabel('时间序列t');ylabel('相频特性'); 运行结果:(右上图)实验二 信号的采样与重建一、 实验目的⑴ 学习本章内容的基础上,通过实验加强有关信号采样与重建的基本概念,熟悉相关的Matlab函数。

⑵通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。

⑶通过实验,了解数字信号采样率转换过程中的频率特征。

⑷对实际的音频文件作内插和抽取操作,体会低通滤波器在内插和抽取中的作用。

二、 实验内容1.一个信号是三个正弦信号的和,正弦信号的频率为50Hz 、500Hz 、1000Hz ,该信号以8kHz 采样。

用适当数量的样本画出该信号。

2.一个信号是三个正弦信号的和,正弦信号的频率为50Hz 、500Hz 、1000Hz ,该信号以800Hz 采样。

用适当数量的样本画出该信号,并讨论信号的混叠状况。

3.令()cos(2)s x n fn f π=,其中116s f f =,即每个周期内有16个点。

试利用MATLAB 编程实现:①作M=4倍的抽取,使每个周期变成4点。

②作L=3倍的差值,使每个周期变成48点。

4.输入信号x (n )为归一化频率分别是120.04,0.3f f ==,的正弦信号相加而成,N=50,内插因子为5,抽取因子为3,给出按有理因子5/3作采样率转换的输入输出波形。

5.常见的音频文件采样率为44.1kHz 。

请找一个wav 格式、采样率为44.1kHz 的音频文件,用MATLAB 编写程序,把它转换成采样率为48kHz 、32kHz 、22.05Khz 、16kHz 和8KHz 的音频文件,用播放器分别进行播放,比较音质的变化,并解释原因。

三、 实验程序和结果分析1.一个信号是三个正弦信号的和,正弦信号的频率为50Hz 、500Hz 、1000Hz ,该信号以8kHz 采样。

用适当数量的样本画出该信号。

答: n=0:99;x=sin(0.00625*2*pi*n)+sin(0.0625*2*pi*n)+sin(0.125*2*pi*n); stem(n,x);title('抽样图像');xlabel('n');ylabel('幅值'); [h,w]=freqz(x); figure(2);plot(w(1:256),abs(h(1:256))); title('幅频响应图像');xlabel('/omega');ylabel('幅度');分析:模拟信号 (A/D) 变换转换为数字信号,每隔一个采样频率 fs=1/8k,为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,该采样频率符合奈奎斯特抽样定理,抽样前后的频谱不会失真。

相关主题