数字信号处理MATLAB实验1
数字信号处理MATLAB实验

(8) 用 FFT 分别计算 xa (n)( p 8, q 2) 和 xb(n) (a=0.1,f=0.0625)的自 相关函数。
三、思考题
(1)实验中的信号序列 xc(n)和 xd(n),在单位圆上的 z 变换频谱
和 一些,为什么?
会相同吗?如果不同,说明哪一个低频分量更多
(2)对一个有限长序列进行 DFT 等价于将该序列周期延拓后进行
五、与本实验有关的 MATLAB 函数 x=sin(2*pi*f/fs*n);生成频率为f,采样频率为fs的正弦信号,式
中,n=[0 1 2 … N]。 sum(X);对于向量X,计算X各元素的和。对于矩阵X,计算X
各列元素之和组成的行向量。 plot(t,y);画出以向量t为坐标的向量y(行或列)的曲线。向
出该信号,并讨论信号的混叠情况。
(3) 令
,其中 f/fs=1/16,即每个周期有 16 个
点。试利用 MATLAB 编程实现:
○1 作 M=4 倍的抽取,使每个周期变成 4 点。
○2 作 L=3 倍的插值,使每个周期变成 48 点。
(4)输入信号 x(n)为归一化频率分别为 f1=0.04,f2=0.3 的正 弦信号相加而成,N=50,插因子为 5,抽取因子为 3,给出 按有理因子 5/3 做采样率变换的输入输出波形。
(1) 简述实验目的及原理。 (2) 按实验步骤附上试验程序。 (3) 按实验容附上有关离散信号的波形或关键样本,对音频信号
给出测听的结果。 (4) 简要回答思考题。 五、 与本实验相关的 MATLAB 函数 y=decimate(x,M);对信号 x 按整数 M 作抽取,抽取前后作抗混叠低 通滤波,结果放在 y 中。 y=interp(x,L); 对信号 x 按整数 L 插零,然后作抗镜像低通滤波, 结果放在 y 中。 y=resample(x,L,M);对信号 x 按有理因子 L/M 作采样率转换,结果 放在 y 中。
数字信号处理 Matlab实验一 Matlab 基本功能和基础知识操作

温州大学物理与电子信息工程学院Matlab 仿真及其应用 实验报告实验一Matlab 基本功能和基础知识操作 [实验目的和要求]1、 熟练掌握Matlab 的启动与退出2、 熟悉Matlab 的命令窗口、常用命令、帮助系统3、 熟悉Matlab 的数据类型、基本矩阵操作、运算符和字符串处理[实验内容]1、 用逻辑表达式球下列分段函数的值 22201112,=0:0.5:2.52123t t y t t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩其中2、 求[100,999]之间能被32整除的数的个数3、 建立一个字符串向量,删除其中的小写字母。
4、 输入矩阵1234514789A ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,求出此矩阵的行列式,逆和特征根,并找出A 中大于5和小于9的元素,用行列式表示。
5、 不采用循环的形式求出和式63230034ii i i S ===+∑∑6、 给定矩阵E=rand (4,4),计算C+E ,C*E ,C\E实验结果及分析:经过Matlab 软件的程序编辑和测试分析,得出以下实验结果: 详见程序代码、注释及屏幕截图:【题1】程序代码:t=0:0.5:2.5y=t.^2.*((t>=0)&(t<1))+(t.^2-1).*((t>=1)&(t<2))+(t.^2-2*t+1).*((t>=2)&(t<3)) 效果截图:【题2】程序代码:p=rem([100:999],32)==0;sum(p)效果截图:【题3】程序代码:ch='dfghjGUIJKVC',k=find(ch>'a'&ch<='z'),ch(k)=[]效果截图:【题4】程序代码:A=[1 2 3;4 5 14;7 8 9];[i,j]=find(A>5&A<9) %定位for n=1:length(i)m(n)=A(i(n),j(n))endDA=det(A) %行列式IA=inv(A) %逆矩阵EA=eig(A) %特征根效果截图:【题5】程序代码:E=rand(4,4); %产生随机数0~1 C=rand(4,4);B1=C+E;B2=C*E;B3=C/E;B1B2B3效果截图:【题6】程序代码:E=rand(4,4); %产生随机数0~1 C=rand(4,4);B1=C+E;B2=C*E;B3=C/E;B1B2B3效果截图:4、心得:通过本次Matlab课程实验,我已熟练Matlab的命令窗口、常用命令、帮助系统,并掌握Matlab的数据类型、基本矩阵操作、运算符和字符串处理。
matlab数字信号处理实验

以 代替上式中的Z,就可以得到序列x(n)的傅里叶变换
X( )= (1-8)
式(1—6)和式(1—8)具有如下关系:
=X( )︱ (1-9)
由式(1—9)可知,在分析一个连续时间信号的频谱时,可以通过取样将有关的计算转换为序列傅里叶变换的计算。
(二)有限长序列分析
一般来说,在计算机上不可能,也不必要处理连续的曲线X(e ),通常,我们只观察、分析X(e )在某些频率点上的值。对于长度为N的有限长序列
(1-5)
作为拉氏变换的一种特例,信号理想采样的傅里叶变换
(1-6)
由式(1—5)和式(1—6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率,根据Shannon取样定理,如果原信号是带限信号,且采样频率高于原信号的最高频率分量2倍,则采样以后不会发生频谱混迭现象。
在计算机处理时,不采用式(1—6)计算信号的频谱,而是利用序列的傅里叶变换计算信号的频谱,可以得到序列x(n)的Z变换为:
信号产生子程序:
1、理想采样信号序列xa(n)
n=0:50;
A=444.128;
a=50*sqrt(2.0)*pi;
T=1/1000;
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T);
close all
subplot(3,1,1);
stem(x);
title('通信学号理想采样信号序列xa(n)');
贴出最后得到的图形
四:思考:系统最高频率是多少?第一个实验中有无频谱混迭,为什么?第二个实验中有无频谱混迭,为什么?
X=x*(exp(-j*pi/12.5)).^(n'*k);
第一次实验 MATLAB的数字信号处理基础

第一次实验MAT1AB的数字信号处理基础一、实验目的1.掌握在MAT1AB中创建和编写脚本程序的步骤,熟悉在MAT1AB中进行基本的矩阵运算2.了解数字信号在计算机系统中的表示和数字信号处理的基本过程3.掌握用MAT1AB产生数字信号的方法二、实验内容1.熟悉在MAT1AB下创建脚本文件编制程序的方法在MAT1AB中,脚本文件时由一系列的命令构成并储存为.m格式的文件。
通常使用m文件来编写一个完整的仿真程序。
脚本文件的创建,可采用以下两种方式:(1)在菜单栏中选择Fi1e下拉框中New选项,可以新建多种MAT1AB文件,我们编辑仿真程序,通常选择第一项BIankM-Fi1e,即新建一个空的MAT1AB文件。
具体参见下图。
图1(2)采用菜单栏中新建按钮即可新建一个空的MAT1AB文件。
Jk MAT1AB7.9.0(R2009b)Fi1eEditDebugParaJ一一J2.MAT1AB中的数据表示MAT1AB中的基本数据单元为数组矩阵,MAT1AB中的数学运算都是基于矩阵的。
掌握了矩阵运算,就掌握了MAT1AB编程的关键。
MAT1AB中使用到的变量无需事先声明其数据类型,大小等,MAT1AB会自动根据赋值情况进行解析。
比如,可用通过以下命令产生一个矩阵:3.常用序列的MAT1AB实现(1)单位抽样序列。
在MAT1AB中可以用以下函数来实现单位抽样序列function[x,n]=impseq(nθ,n1z n2)%产生x(n)=de1ta(n-n0);n1<=n0<=n2if((nθ<n1)∣(nθ>∩2)∣(n1>n2))error('参数必须满足n1<=nθ<=n2,)endn=[n1:n2];x=[zeros(1,(nO-n1))4∕Zθros(1z(n2-nO))];stem(x);图3(2)单位阶跃序列。
在MAT1AB中可用〃>=0来实现〃(〃一%)。
数字信号处理相关MATLAB实验内容--第1章

实验1 离散时间信号的时域分析一、实验目的(1)了解MATLAB 语言的主要特点及作用;(2)熟悉MATLAB 主界面,初步掌握MATLAB 命令窗和编辑窗的操作方法;(3)学习简单的数组赋值、数组运算、绘图的程序编写;(4)了解常用时域离散信号及其特点;(5)掌握MATLAB 产生常用时域离散信号的方法。
二、知识点提示本章节的主要知识点是利用MATLAB 产生数字信号处理的几种常用典型序列、数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB 关系运算符“==、>=”的使用。
三、实验内容1. 在MATLAB 中利用逻辑关系式0==n 来实现()0n n -δ序列,显示范围21n n n ≤≤。
(函数命名为impseq(n0,n1,n2))并利用该函数实现序列:()()()632-+-=n n n y δδ;103≤≤-nn 0212. 在MATLAB 中利用逻辑关系式0>=n 来实现()0n n u -序列,显示范围21n n n ≤≤。
(函数命名为stepseq(n0,n1,n2))并利用该函数实现序列:()()()20522≤≤--++=n n u n u n y3. 在MATLAB 中利用数组运算符“.^”来实现一个实指数序列。
如: ()()5003.0≤≤=n n x n4. 在MATLAB 中用函数sin 或cos 产生正余弦序列,如:()()2003.0cos 553.0sin 11≤≤+⎪⎭⎫ ⎝⎛+=n n n n x πππ5. 已知()n n x 102cos 3π=,试显示()()()3,3,+-n x n x n x 在200≤≤n 区间的波形。
6. 参加运算的两个序列维数不同,已知()()6421≤≤-+=n n u n x ,()()8542≤≤--=n n u n x ,求()()()n x n x n x 21+=。
数字信号处理实验一

数字信号处理实验一实验目的:掌握利用Matlab产生各种离散时间信号,实现信号的相加、相乘及卷积运算实验函数:参考课本77-19页,注意式(2.11.1)的表达与各matlab子函数间的关系。
1、stem(x,y) % 绘制以x为横轴,y为纵轴的离散序列图形2、[h ,t] = impz(b, a) % 求解数字系统的冲激响应h,取样点数为缺省值[h, t] = impz(b, a, n) % 求解数字系统的冲激响应h,取样点数为nimpz(b, a) % 在当前窗口用stem(t, h)函数出图3、[h ,t] = dstep(b, a) % 求解数字系统的阶跃响应h,取样点数为缺省值[h, t] = dstep (b, a, n) % 求解数字系统的阶跃响应h,取样点数为ndstep (b, a) % 在当前窗口用stairs(t, h)函数出图4、y = filter(b,a,x) % 在已知系统差分方程或转移函数的情况下求系统输出实验原理:一、常用的时域离散信号及其程序1、产生单位抽样函数δ(n)n1 = -5;n2 = 5;n0 = 0;n = n1:n2;x = [n==n0]; % x在n=n0时为1,其余为0stem(n,x,'filled'); %filled:序列圆心处用实心圆表示axis([n1,n2,0,1.1*max(x)])title('单位抽样序列')xlabel('time(n)')ylabel('Amplitude:x(n)')2、产生单位阶跃序列u(n)n1 = -2;n2 = 8;n0 = 0;n = n1:n2;x = [n>=n0]; % x在n>=n0时为1,其余为0stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)])title('单位阶跃序列')xlabel('time(n)')ylabel('Amplitude:x(n)')3、复指数序列复指数序列的表示式为()(),00,0j n e n x n n σω+⎧≥⎪=⎨<⎪⎩,当0ω=时,()x n 为实指数序列;当0σ=时,()x n 为虚指数序列,即()()cos sin j n e n j n ωωω=+,即其实部为余弦序列,虚部为正弦序列。
Matlab数字信号处理实验报告材料

数字信号处理实验报告基础实验篇实验一离散时间系统及离散卷积一、实验原理利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。
编译合适程序能计算取值范围不同的离散卷积。
二、实验目的(1)熟悉MATLAB软件的使用方法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
三、实验步骤(1)自编并调试实验程序,并且,给实验程序加注释;(2)按照实验内容完成笔算结果;(3)验证计算程序的正确性,记录实验结果。
(4)至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚实验结果对应的系统,并对实验结果进行解释说明。
四、实验源程序及实验结果实验二 离散傅立叶变换与快速傅立叶变换一、 实验原理对有限长序列使用离散Fouier 变换(DFT)可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N 时,它的DFT 定义为()()[]()∑==-=1N n nk N W n x n x DFT k X 10-≤≤N k反变换为()()[]()∑==-=-101N n nkN W k X N k X IDFT n x 10-≤≤N n 有限长序列的DFT 是其Z 变换在单位圆上的等距采样,或者说是序列Fourier 变换的等距采样,因此可以用于序列的谱分析。
FFT 是为了减少DFT 运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干较短序列的组合,从而减少运算量。
常用的FFT 是以2为基数的,其长度。
它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT ,可以用末位补零的方法,使其长度延长至2的整数次方。
用FFT 可以实现两个序列的圆周卷积。
在一定的条件下,可以使圆周卷积等于线性卷积。
数字信号处理上机实验MATLAB程序及结果

研究生《数字信号处理》(dsp)上机MATLAB实验实验1熟悉MATLAB环境,会用FFT求信号频谱,相关方法去除噪声。
%生成一个带有噪声的正弦信号clear;t=linspace(-2*pi,2*pi,1000);y=sin(t)+rand(1,1000);plot(y);波形图:%把带有噪声的正弦信号进行FFT分解z=fft(y);plot(t,z);波形图:%用相关方法除噪声f=xcorr(y,y); plot(f);波形图:实验2利用相关算法求信号的幅值和相位%用相关性求信号的幅值与相位clear;t=linspace(-2*pi,2*pi,1000);s=5*sin(t+pi/6)+rand(1,1000);y=3*sin(t)+rand(1,1000);ss=s.*s;sy=s.*y;yy=y.*y;x1=length(ss);x2=length(yy);x3=length(sy);rx0=sum(ss)/x1;ry0=sum(yy)/x2;rxy0=sum(sy)/x3;A=sqrt(2*rx0);B=sqrt(2*ry0);C=acos(2*rxy0/(A*B));sprintf('A=%d,B=%d,C=%d',A,B,C)命令窗口输出结果:A=5.086632e+00,B=3.109529e+00,C=5.355640e-01 %用改进的相关算法求幅值和相位clear;t=linspace(-2*pi,2*pi,1000);s=5*sin(t+pi/6)+rand(1,1000);z=3*sin(t);z1=3*cos(t);zz=z.*z;sz=s.*z;sz1=s.*z1;x1=length(sz);x2=length(zz);x3=length(sz1);rz=sum(zz)/x2;rsz=sum(sz)/x1;rsz1=sum(sz1)/x3;B=sqrt(2*rz);C=atan(rsz1/rsz);A=2*rsz/(B*cos(C));sprintf('A=%d,B=%d,C=%d',A,B,C)命令窗口输出结果:A=4.986266e+00,B=2.998500e+00,C=5.264407e-01 实验三设计一个巴尔低通滤波器%设计一个巴尔沃特低通滤波器,fp=1khz,fs=2khz,ap=1db,as=40db;fp=1000;fs=2000;wp=2*pi*fp;ws=2*pi*fs;ap=1;as=40;[n,wc]=buttord(wp,ws,ap,as,'s');fprintf('阶数为%d\n',n);[num,den]=butter(n,wc,'s');%[z,p,k]=buttap(n);disp('分子多项式系数分别为');fprintf('%.4e\n',num);disp('分母多项式系数分别为');fprintf('%.4e\n',den);w=[wp ws];h1=freqs(num,den,w);fprintf('Ap=%.4e\n',-20*log10(abs(h1(1)))); fprintf('As=%.4e\n',-20*log10(abs(h1(2)))); w1=[0:200:12000*pi];h=freqs(num,den,w1);gain=20*log10(abs(h)); plot(w1/(2*pi),gain); xlabel('Hz');ylabel('dB');title('幅频特性');输出结果:阶数为8分子多项式系数分别为0.0000e+000.0000e+000.0000e+000.0000e+000.0000e+000.0000e+000.0000e+000.0000e+006.2187e+30分母多项式系数分别为1.0000e+003.6222e+046.5603e+087.7093e+126.4060e+163.8498e+201.6360e+244.5108e+276.2187e+30Ap=6.1668e-01As=4.0000e+01图形为实验四设计一个高通滤波器%设计一个高通滤波器fp=5khz,fs=1khz,ap<=1db,as>=40db; fp=5000;fs=1000;ap=1;as=40;wp=1/(2*pi*fp);ws=1/(2*pi*fs);[n,wc]=buttord(wp,ws,ap,as,'s');disp('阶数为');disp(n);[num,den]=butter(n,wc,'s');[numt,dent]=lp2hp(num,den,1);disp('高通滤波器分子多项式系数');fprintf('%.4e\n',numt)disp('高通滤波器分母多项式系数');fprintf('%.4e\n',dent)w=[1/wp 1/ws];h1=freqs(numt,dent,w);fprintf('Ap=%.4e\n',-20*log10(abs(h1(1))))fprintf('Bp=%.4e\n',-20*log10(abs(h1(2))))w1=[0:200:12000*pi];h=freqs(numt,dent,w1);gain=20*log10((abs(h)));plot(w1/(2*pi),gain);xlabel('频率');ylabel('幅值');输出结果:阶数为4高通滤波器分子多项式系数1.0000e+000.0000e+000.0000e+000.0000e+000.0000e+00高通滤波器分母多项式系数1.0000e+005.1920e+041.3478e+092.0497e+131.5585e+17Ap=1.0977e-01Bp=4.0000e+01图形实验5 用FFT设计低通滤波器%用fft变换设计低通滤波器clear;N=100;n=0:(N-1);fs=100;%采样频率f1=1;f2=10;y=sin(2*pi*f1/fs*n)+sin(2*pi*f2/fs*n);%原始信号subplot(211);plot(2*pi*f2/fs*n,y,'k');%显示波形xlabel('时间');ylabel('幅值');title('原始信号');ffty=fft(y);%进行快速傅里叶变换ffty1=ffty;ffty1(f2/(fs/N)+1)=0;%f2频率对应的幅值为零ffty1((N-f2)/(fs/N)+1)=0;%f2/2频率对应f2的对称频率值对应幅值为零yy=ifft(ffty1);%逆fft变换subplot(212);plot(2*pi*f2/fs*n,yy);xlabel('时间');title('滤波以后的低频信号');输出图形为实验六用FFT高通滤波器设计%用fft变换设计低通滤波器clear;N=100;n=0:(N-1);fs=100;%采样频率f1=1;f2=10;y=sin(2*pi*f1/fs*n)+sin(2*pi*f2/fs*n);%原始信号subplot(211);plot(2*pi*f2/fs*n,y,'k');%显示波形xlabel('时间');ylabel('幅值');title('原始信号');ffty=fft(y);%进行快速傅里叶变换ffty1=ffty;ffty1(f1/(fs/N)+1)=0;%f2频率对应的幅值为零ffty1((N-f1)/(fs/N)+1)=0;%f2/2频率对应f2的对称频率值对应幅值为零yy=ifft(ffty1);%逆fft变换subplot(212);plot(2*pi*f2/fs*n,yy);xlabel('时间');title('滤波以后的高频信号');输出图形为实验7 用双线性设计数字滤波器%用双线性设计数字滤波器,wp=0.2pi,ws=0.6Pi,ap=2db,as=15db; wp=0.2*pi;ws=0.6*pi;fs=1/2;ap=2;as=15;Wp=2*fs*tan(wp/2);Ws=2*fs*tan(ws/2);[n,wc]=buttord(Wp,Ws,ap,as,'s');[num,den]=butter(n,wc,'s');[numz,denz]=bilinear(num,den,fs);disp('分子多项式的系数');fprintf('%.4e\n',numz);disp('分母多项式的系数');fprintf('%.4e\n',denz);w=[wp ws];h=freqz(numz,denz,w);fprintf('ap=%.4f\n',-20*log10(abs(h(1))));fprintf('as=%.4f\n',-20*log10(abs(h(2)))); w=linspace(0,2*pi,1024);h=freqz(numz,denz,w);gain=20*log10(abs(h));plot(w/pi,gain);xlabel('Normalized frequency');ylabel('Gain,dB');axis([0 1 -50 0]);grid;输出结果分子多项式的系数1.5777e-013.1555e-011.5777e-01分母多项式的系数1.0000e+00-6.0620e-012.3730e-01ap=0.3945as=15.0000图形为实验8切比雪夫1型设计低通和高通滤波器%用切比雪夫1型设计低通滤波器%wp=2*pi*1000,ws=2*pi*2000,ap=1,as=40;clear;wp=2*pi*1000,ws=2*pi*2000,ap=1,as=40;[n,wc]=cheb1ord(wp,ws,ap,as,'s');[num,den]=cheby1(n,ap,wc,'s');disp('分子多项式的系数');fprintf('%.4f\n',num)disp('分母多项式的系数');fprintf('%.4f\n',den)w=[wp ws];h=freqs(num,den,w);fprintf('ap=%.4f\n',-20*log10(abs(h(1))));fprintf('as=%.4f\n',-20*log10(abs(h(2))));w=0:200:12000*pi;h=freqs(num,den,w);gain=20*log10(abs(h));plot(w/(2*pi),gain);输出结果分子多项式的系数0.00000.00000.00000.00000.00001202796127888840400.0000分母多项式的系数1.00005886.214566671782.4829241699153902.8650904788863911639.00001202796127888840400.0000ap=1.0000as=45.3060图形%用切比雪夫1型设计高通滤波器wp=2*pi*5000,ws=2*pi*1000,ap=1,as=40;wp=1/wp;ws=1/ws;[n,wc]=cheb1ord(wp,ws,ap,as,'s');[num,den]=cheby1(n,ap,wc,'s');[numz,denz]=lp2hp(num,den,1);w=[1/wp 1/ws];h=freqs(numz,denz,w);fprintf('ap=%.4e\n',-20*log10(abs(h(1)))); fprintf('as=%.4e\n',-20*log10(abs(h(2)))); w=0:200:12000*pi;h=freqs(numz,denz,w);gain=20*log10(abs(h));plot(w/(2*pi),gain);输出结果ap=1.0000e+00as=4.7847e+01输出图形实验9 用切比雪夫2型设计低通和高通滤波器%用切比雪夫2型设计低通滤波器%wp=2*pi*1000,ws=2*pi*2000,ap=1,as=40;clear;wp=2*pi*1000,ws=2*pi*2000,ap=1,as=40;[n,wc]=cheb2ord(wp,ws,ap,as,'s');[num,den]=cheby2(n,as,wc,'s');disp('分子多项式的系数');fprintf('%.4f\n',num)disp('分母多项式的系数');fprintf('%.4f\n',den)w=[wp ws];h=freqs(num,den,w);fprintf('ap=%.4f\n',-20*log10(abs(h(1))));fprintf('as=%.4f\n',-20*log10(abs(h(2))));w=0:200:12000*pi;h=freqs(num,den,w);gain=20*log10(abs(h)); plot(w/(2*pi),gain);输出结果分子多项式的系数0.0000566.39190.0000290688415499.92920.0000 29837909134910329000.0000分母多项式的系数1.000024344.5782296168842.7942 2252800523365.8032 10820843108280358.0000 29837909134910292000.0000 ap=1.0000as=44.1570图形%用切比雪夫1型设计高通滤波器wp=2*pi*5000;ws=2*pi*1000;ap=1;as=40;wp=1/wp;ws=1/ws;[n,wc]=cheb2ord(wp,ws,ap,as,'s');[num,den]=cheby2(n,as,wc,'s');[numz,denz]=lp2hp(num,den,1);w=[1/wp 1/ws];h=freqs(numz,denz,w);fprintf('ap=%.4e\n',-20*log10(abs(h(1))));fprintf('as=%.4e\n',-20*log10(abs(h(2))));w=0:200:12000*pi;h=freqs(numz,denz,w);gain=20*log10(abs(h));plot(w/(2*pi),gain);xlabel('频率');ylabel('幅值');title('幅频特性曲线');输出结果ap=1.0000e+00as=4.4779e+01输出图形实验10画一个信号的频谱图clear;fs=1000;f1=50;f2=100;f3=200;N=100t=0:N-1;data=25+22*sin(2*pi*f1/fs*t)+30*sin(2*pi*f2/fs*t)+50*sin(2*pi*f3/fs*t );%原始信号y = fft(data);yabs =abs(y);n = 0:N/2;yabs(1)=yabs(1)/2;stem(n*fs/N,2*yabs(1:N/2+1)/N);频谱图实验11 数字高通滤波器的设计%数字高通滤波器的设计,ws=0.2pi,wp=0.6pi,as=15,ap=2;用巴特沃斯滤波器设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一熟悉MATLAB环境一、实验目的(1)熟悉MATLAB的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。
(5)观察离散系统的频率响应。
二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。
在熟悉了MATLAB基本命令的基础上,完成以下实验。
上机实验内容:(1)数组的加、减、乘、除和乘方运算。
输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
(2)用MATLAB实现以下序列。
a)x(n)=0.8n0≤n≤15b)x(n)=e(0.2+3j)n0≤n≤15c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15(n)=x(n+16),绘出四个d)将c)中的x(n)扩展为以16为周期的函数x16周期。
(n)=x(n+10),绘出四个e)将c)中的x(n)扩展为以10为周期的函数x10周期。
(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。
a)x 1(n)=2x(n+2)-x(n-1)-2x(n)b)∑=-=51k 2)k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。
a)x(t)=sin(2πt)0≤t≤10sb)x(t)=cos(100πt)sin(πt)0≤t≤4s(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。
(6)给定一因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。
(7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。
(8)求以下差分方程所描述系统的单位脉冲响应h(n),0≤n<50y(n)+0.1y(n-1)-0.06y(n-2)=x(n)-2x(n-1)三、思考题(1)对于有限长序列,如何用MATLAB计算其DTFT?(2)对于由两个子系统级联或并联的系统,如何用MATLAB计算它们的幅频响应与相频响应?四、实验报告要求(1)简述实验目的及原理。
(2)按实验步骤附上实验程序。
(3)按实验步骤附上有关离散系统的频率特性曲线。
(4)简要回答思考题。
五、与本实验有关的MATLAB 函数x=sin (2*pi*f/fs*n);生成频率为f,采样频率为fs的正弦信号,式中,n=[012…N]。
sum(X);对于向量X,计算X各元素的和。
对于矩阵X,计算X 各列元素之和组成的行向量。
plot(t,y);画出以向量t为坐标的向量y(行或列)的曲线。
向量t和向量y具有相同的维数。
命令plot(s1,t1,s2,t2,s3,t3);将在同一图上画出分别以t1,t2,t3为坐标的向量s1,s2,s3的曲线。
xlabel(‘samples’);在x轴上加上标注。
ylabel(‘amplitude’);在y轴上加上标注。
title(‘sinusoidal signal’);在图的上部加上标题。
y=conv(h,x);计算向量h和x的卷积,结果放在y中。
y=filter(b,a,x);以向量b和a为参数的滤波器对输入信号向量x进行滤波处理。
h=impz(b,a,N);计算b和a为参数的N点滤波器脉冲响应。
[H,f]=freqz(b,a,N,Fs);给定以Hz为单位的采样频率Fs,计算以(b,a)为参数的滤波器N点频率向量f和N点复频率向量H。
该命令用于绘制滤波器的幅频和相频响应。
如果省略左边的[H,f],该命令将直接绘出滤波器的对数幅频和相频响应。
实验二信号的采样与重建一、实验目的(1)在学习本章内容的基础上,通过实验加强本章内容的有关信号采样与重建的基本概念,熟悉相关MATLAB函数。
(2)通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。
(3)通过实验,了解数字信号采样率转换过程中的频谱特性。
(4)对实际的音频文件做内插和提取操作,体会低通滤波器在内插和提取中的作用。
二、实验内容认真阅读相关的MATLAB函数帮助文件。
再熟悉MATLAB函数的基础上,完成以下试验。
上机实验内容:(1)一信号是三个正弦信号的和,正弦信号的频率分别为50、500、1000Hz,该信号以8kHz采样。
用适当数量的样本画出该信号。
(2)一信号是三个正弦信号的和,正弦信号的频率分别为50、500、1000Hz,该信号以800Hz采样。
用适当数量的样本画出该信号,并讨论信号的混叠情况。
(3)令,其中f/fs=1/16,即每个周期内有16个点。
试利用MATLAB 编程实现:○1作M=4倍的抽取,使每个周期变成4点。
○2作L=3倍的插值,使每个周期变成48点。
(4)输入信号x(n)为归一化频率分别为f1=0.04,f2=0.3的正弦信号相加而成,N=50,内插因子为5,抽取因子为3,给出按有理因子5/3做采样率变换的输入输出波形。
(5)常见的音频文件采样率为44.1khz。
请找一个wav格式、采样率为44.1khz的音频文件,用MATLAB编写程序,把它转换为采样率为48、32、22.05、16和8khz的音频文件,用播放器分别进行播放,比较音质的变化,并解释原因。
(6)请找一个wav格式、采样率为11.025khz的音频文件,用MATLAB编写程序,把它转换为采样率为44.1khz的音频文件,采用两种方法:○1直接插零;○2插零后滤波(可直接利用MATLAB相关函数),用播放器分别进行播放,比较音质的变化,并解释原因。
三、思考题(1)试说明对于周期信号,应当如何采样,才能保证周期扩展后与原信号保持一致。
(2)模拟抗混叠滤波器的指标是如何确定的,欠采样的情况下是否需要模拟抗混叠滤波器?(3)抽取是否会造成信号频谱成分的缺失?为什么还要这样做?四、实验报告及要求(1)简述实验目的及原理。
(2)按实验步骤附上试验程序。
(3)按实验内容附上有关离散信号的波形或关键样本,对音频信号给出测听的结果。
(4)简要回答思考题。
五、与本实验相关的MATLAB函数y=decimate(x,M);对信号x按整数M作抽取,抽取前后作抗混叠低通滤波,结果放在y中。
y=interp(x,L);对信号x按整数L插零,然后作抗镜像低通滤波,结果放在y中。
y=resample(x,L,M);对信号x按有理因子L/M作采样率转换,结果放在y中。
[y,fs,bits]=wavread(‘filename.wav’);读取音频波形文件,这里y是声音的数组,fs是声音的采样频率,bits是采样样本的二进制位数。
wavwrite(y,fs,bits,‘filename.wav’);将声音的数组y写入音频波形文件,fs是声音的采样频率bits是采样样本的二进制位数。
实验三快速傅立叶变换及其应用一、实验目的(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中函数。
(2)熟悉应用FFT对典型信号进行频谱分析的方法。
(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
(4)熟悉应用FFT实现两个序列的线性卷积和相关。
二、实验内容实验中用到的信号序列:高斯序列衰减正弦序列三角波序列反三角波序列上机实验内容:(1)观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2、4、8,观察他们的时域和频域特性,了解当q取不同值时,对信号时域频域特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域与频域特性的影响,注意当p=多少时会发生明显的泄漏现象,混叠是否也随时出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
(2)观察衰减正弦序列xb(n)的时域和幅频特性。
=0.1,f=0.0625,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄露现象?说明产生现象的原因。
(3)观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT 分析信号序列xc(n)和xd(n)的幅频特性,观察两者的序列情况和频谱曲线有什么异同?绘出两序列及其幅频特性曲线。
在xc(n)和xd(n)末尾补零,用N=32点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?这些变化说明了什么?(4)一个连续信号含有两个频率分量,经采样得已知N=16,Δf分别为1/16和1/64,观察其频谱;当N=128时,Δf不变,其结果有何不同,为什么?(5)用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点循环卷积和线性卷积。
(6)产生一512点的随机序列xe(n),并用xc(n)和xe(n)做线性卷积,观察卷积前后xe(n)频谱的变化。
要求将xe(n)分成8段,分别采用重叠相加法和重叠保留法。
(7)用FFT 分别计算)2,8)((==q p n x a 和xb(n)(a=0.1,f=0.0625)的16点循环相关和线性相关,问一共有多少种结果,他们之间有何异同点。
(8)用FFT 分别计算)2,8)((==q p n x a 和xb(n)(a=0.1,f=0.0625)的自相关函数。
三、思考题(1)实验中的信号序列xc(n)和xd(n),在单位圆上的z 变换频谱和会相同吗?如果不同,说明哪一个低频分量更多一些,为什么?(2)对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用于分析周期信号序列。
如果时正弦序列,f=0.1用16点FFT 来作DFS 运算,得到的频谱是信号本身的真实谱吗?为什么?四、实验报告要求(1)简述实验目的及原理。
(2)按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图形,说明参数改变对时域和频域的影响。
(3)总结实验中的主要结论。
(4)简要回答简答题。
五、与本实验相关的MATLAB 函数y=exp(X);对向量X 的各元素做指数运算,结果为一向量。
conj(X);对向量X 的各元素做复共轭运算,即将虚部改变符号。
real(X);对向量X的各元素取其实部。
v=randn(size(X));生成同X具有相同维数的正态分布的随机矩阵,通常用于生成高斯白噪声。