北邮DSP数字信号处理Matlab实验一
数字信号处理实验报告MATLB第一章
第一章离散时间信号的频域分析P1.1 单位样本和单位阶跃序列%程序P1_1%一个单位序列的产生clf;%产生从-10到20的一个向量n=-10:20;%产生单位样本序列u=[zeros(1,10) 1 zeros(1,20)];%绘制单位样本序列stem(n,u);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2]);1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。
1.2:命令clf,axis,title,xlabel,和ylabel的作用是什么?clf—函数用于清除当前图像窗口。
axis—设置坐标轴的范围和显示方式title—就是给已经画出的图加一个标题xlabel—添加x坐标标注ylabel—添加y坐标标注1.3修改程序P1.1,以产生带有延时11个样本的延迟单位样本序列ud[n]。
运行修改的程序并显示产生的序列。
%程序%产生并绘制一个单位样本序列延时11clf;%产生从-10到20的一个向量n=-10:20;%产生单位样本序列u=[zeros(1,3) 1 zeros(1,27)];%绘制单位样本序列stem(n,u);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2]);1.5 修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。
运行修改后的序并显示产生的序列。
%程序%产生并绘制一个单位样本序列超前7clf;%产生从-10到20的一个向量n=-10:20;%产生单位样本序列u=[zeros(1,3) 1 zeros(1,27)];%绘制单位样本序列stem(n,u);xlabel('时间序号n');ylabel('振幅'); title('单位样本序列');axis([-10 20 0 1.2]);P1.2 指数信号%程序P1_2%生成一个复数指数序列clf;c=-(1/12)+(pi/6)*i;k=2;n=0:40;x=k*exp(c*n);subplot(2,1,1);stem(n,real(x));xlabel('时间序号n');ylabel('振幅');title('实部');subplot(2,1,2);stem(n,imag(x));xlabel('时间序号n');ylabel('振幅');title('虚部');1.6 运行程序P1.2,以产生复数值的指数序列。
数字信号处理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 中。
北邮-DSP数字信号处理 实验-实验报告
北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx 实验时间: xxx评定成绩:目录一、常规实验 (3)实验一常用指令实验 (3)1.试验现象 (3)2.程序代码 (3)3.工作原理 (3)实验二数据储存实验 (4)1.试验现象 (4)2.程序代码 (4)3.工作原理 (4)实验三I/O实验 (5)1.试验现象 (5)2.程序代码 (5)3.工作原理 (5)实验四定时器实验 (5)1.试验现象 (5)2.程序代码 (6)3.工作原理 (9)实验五INT2中断实验 (9)1.试验现象 (9)2.程序代码 (9)3.工作原理 (13)实验六A/D转换实验 (13)1.试验现象 (13)2.程序代码 (14)3.工作原理 (18)实验七D/A转换实验 (19)1.试验现象 (19)2.程序代码 (19)3.工作原理 (37)二、算法实验 (38)实验一快速傅里叶变换(FFT)算法实验 (38)1.试验现象 (38)2.程序代码 (38)3.工作原理 (42)实验二有限冲击响应滤波器(FIR)算法实验 (42)1.试验现象 (42)2.程序代码 (42)3.工作原理 (49)实验三无限冲击响应滤波器(IIR)算法实验 (49)1.试验现象 (49)2.程序代码 (49)3.工作原理 (56)作业设计高通滤波器 (56)1.设计思路 (56)2.程序代码 (57)3.试验现象 (64)一、常规实验实验一常用指令实验1.试验现象可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
2.程序代码.mmregs.global _main_main:stm #3000h,spssbx xf ;将XF置1,D3熄灭call delay ;调用延时子程序,延时rsbx xf ;将XF置0,D3点亮call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nopnop;延时子程序delay:stm 270fh,ar3 ;将0x270f(9999)存入ar3loop1:stm 0f9h,ar4 ;将0x0f9(249)存入ar4loop2:banz loop2,*ar4- ;*ar4自减1,不为0时跳到loop2的位置banz loop1,*ar3- ;*ar3自减1,不为0时跳到loop1的位置ret ;可选择延迟的返回nopnop.end3.工作原理主程序循环执行:D3熄灭→延时→D3点亮→延时。
北京邮电大学_dsp_matlab实验报告
数字信号处理实验报告实验名称:数字信号处理实验学生姓名:班级:班内序号:1.实验要求假设信号x(n) 由下述信号组成:请选择合适的长度N 和窗函数,用DFT 分析其频谱,得到清楚的三根谱线。
2.实验代码和实验结果N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
北邮DSPMatlab仿真实验
北邮DSPMatlab仿真实验《数字信号处理》Matlab 实验⼀.离散信号的 FFT 分析知识点:利⽤FFT 对信号频谱进⾏分析,⽤DFT 进⾏信号分析时基本参数的选择,以及信号经过离散时间傅⽴叶变换(DTFT)与有限长度离散傅⽴叶变换(DFT)后信号频谱上的区别。
实验教学内容:1、⽤Matlab 编程上机练习。
已知: N=25。
这⾥Q=0、9+j0、3。
可以推导出 ,⾸先根据这个式⼦计算X(k)的理论值,然后计算输⼊序列x(n)的32个值,再利⽤基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值⽐较(要求计算结果最少6位有效数字)。
解:format longQ=0、9+0、3i;WN=exp(-2*pi*1i/32);Xk=(1-Q^32)、/(1-Q*WN 、^[0:24]);xn=Q 、^[0:24];Xkfft=fft(xn,32);for (k0=1:1:25)difference=Xk(k0)-Xkfft(k0);end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'、');title('DFTx(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g 、');title('FFTx(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,3);stem(abs(difference(1:1:25)),'r 、');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]); 0n N-1()0 n 0, n Nn Q x n ?≤≤=?<≥?11,011)()()(k k 10nk 10-=--===∑∑-=-=N k QW Q QW W n x k X N N nN N n NN n Λ,2、假设信号 x(n) 由下述信号组成: 请选择合适的长度 N 与窗函数,⽤ DFT 分析其频谱,得到清楚的三根谱线。
第二次DSP上机实验报告 MATLAB实验报告
第二次DSP上机实验报告 MATLAB实验报告第二次DSP上机实验报告 MATLAB实验报告北京邮电大学信息与通信工程学院DSP--MATLAB实验报告实验名称:学生姓名:班级:班内序号:学号:日期:1.实验要求与目的要求:(1)用DFT分析频谱,得到高分辨率频谱清楚的谱线;(2)利用基2时间抽选的FFT算法,计算有限点的DFT,并与理论值相比较。
目的:掌握(a)用傅立叶变换进行信号分析时基本参数的选择。
(b)经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT)后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。
(c)离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
(d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
2关键算法分析第1页北京邮电大学信息与通信工程学院代码的重点是利用fft函数计算离散序列的DFT,难点是矩阵的加减乘除及乘方中所涉及的matlab语句的特点。
实验代码如下:(1)N=1000;n=(0:N-1);y=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);y=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);XK=fft(y,N);--fft函数两个参数分别是进行DFT变换的序列,及DFT 的长度subplot(3,1,1);stem(n,y);title("时域波形");xlabel("n");ylabel("y");subplot(3,1,2);stem(abs(XK),".");axis([0,500,0,600]);--限定x 轴与y轴的范围title("频域前500点波形");xlabel("k");ylabel("XK");subplot(3,1,3);stem(abs(XK),".");axis([800,900,0,600]);--x轴的范围很小,目的是能看到两条很近的谱线title("频域后500点部分波形");xlabel("k");ylabel("XK");(2)N=25;Q=0.9+j*0.3;n=(0:24);x=Q.^n;WN=exp(-j*2*pi/N);k=(0:24);WK=WN.^k;XK=(1-Q.^N)./(1-Q*WK);stem(XK);---理论值的计算XK1=fft(x,32);--32点基2时间抽选法的计算subplot(3,1,1);stem(n,x);title("时域波形");xlabel("n");ylabel("x");subplot(3,1,2);stem(XK);title("频域理论值");xlabel("k");ylabel("XK");subplot(3,1,3);stem(XK1);title("频域波形");xlabel("k");ylabel("XK1");第2页北京邮电大学信息与通信工程学院3.程序运行结果(1)(2)第3页北京邮电大学信息与通信工程学院4.问题分析这次实验的题目相对简单,编程过程中遇到的问题主要是矩阵的加减乘除及乘方运算所对应的matlab语句的规则和fft函数的使用,fft函数的使用方法通过help语句便可查得,其两个参数:第一个是指进行fft运算的序列,第二个值fft运算的长度。
dsp-软件实验报告
数字信号处理MATLAB仿真实验报告学院:电子工程学院班级:2011211203学号:2011210876姓名:孙月鹏班内序号:04一、实验一:数字信号的FFT分析、实验内容及要求JTit /j> 1 *<!>*;((> 45/JJT )・} et>s(O 102 J.T )4(1离散信号的频谱分析: 设信号此信号的0.3pi和0.302pi两根谱线相距很近,谱线0.45pi的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。
(2 DTMF信号频谱分析用计算机声卡采用一段通信系统中电话双音多频DTMF)拨号数字0〜9的数据,采用快速傅立叶变换FFT)分析这10个号码DTMF拨号时的频谱2、实验结果x(n的时域图与频谱:得到三根清晰的谱线号码9的频谱号码8的频谱号码7的频谱号码6的频谱、实现代码及分析(1第一小题: k=1000; %DFT 点数n=[1:1:k]; %对时域信号进行采样x=0.001*cos(0.45*n*pi+sin(0.3*n*pi-cos(0.302*n*pi-pi/4; subplot(2,1,1;stem(n,x,'.'; %用.画出时域图title('时域序列:xlabel('n';ylabel('x(n';xk=fft(x,k; %进行K点DFT变换w=2*pi/k*[0:1:k-1]; %数字角频率subplot(2,1,2;stem(w/pi,abs(xk;% 画出频谱图axis([0.2,0.5,0,2]; %设置窗函数的宽度与限幅title('1OOO 点dft';xlabel('数字频率';ylabel('|xk(k|';%此题关键在于DFT点数N的确定。
经过计算和实验,当N=1000时能满足题目要求,看到3条清晰地谱线(2)第二小题clear;closeall;f=[941 1336;697 1209;697 1336;6971477;770 1209;770 1336;7701477;8521209;852 1336;852 1477]%0-9的频率n=1:400;fs=4000; % 取样频率为4000hzfprintf( '请输入数字(0 to 9:\n'k=input (''f1=f(k+1,1; %因为从0开始计算,+1得输f2=f(k+1,2; %入数字的两个频率N=400;x1=sin(2*pi*f1*n/fs+sin(2*pi*f2*n/fs; %DTMF 的输入信号时域xn=[x1,zeros(1,400]; %补零subplot(2,1,1;plot(xn %画出时域图xxxxxx(' n'yyyyyy('x n'subplot(2,1,2;fn=fs*n/N; %取样点的频率plot(fn,abs(fft(xn(1:400; %400点fft变换,画出频谱图axis([0,4000,0,300]xxxxxx('fyyyyyy('FFT'二、实验二:DTMF信号的编码1、实验内容及要求1)把您的联系电话号码通过DTMF编码生成为一个.wav文件。
数字信号处理相关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+=。
DSP数字信号处理实验Matlab实验代码及输出图
实验一:线型与离散图x=0:0.1*pi:2*pi;y=sin(x);figure(1);subplot(1,2,1);plot(x,y,'k');xlabel('x');ylabel('y');subplot(1,2,2);stem(x,y,'k');xlabel('x');ylabel('y');实验二:函数:function[X,wk]=DFT(x,M)N=length(x);n=0:N-1;for k=0:M-1wk(k+1)=2*pi/M*k;X(k+1)=sum(x.*exp(-j*wk(k+1)*n)); endclc;clear all;A=444.128;a=50*sqrt(2)*pi;w0=50*sqrt(2)*pi;fs=input('输入采样频率fs=');T=1/fs;N=50;n=0:N-1;xa=A*exp(-a*n*T).*sin(w0*n*T); subplot(1,2,1);stem(n,xa,'.');grid;M=100;[Xa,wk]=DFT(xa,M);f=wk*fs/(2*pi);subplot(1,2,2);plot(f,abs(Xa));grid;1000hz500hz200hzDFT程序:Clcclear allxbn=[1,0,0,0];hbn=[1,2.5,2.5,1]N=4;n=0:N-1;Xb=fft(xbn,N);Xh=fft(hbn,N);ybn=conv(xbn,hbn); subplot(3,2,1); stem(n,xbn,'.');title('xbn wave'); subplot(3,2,2); stem(n,abs(Xb),'.'); title('Xb wave');subplot(3,2,3);stem(n,hbn,'.');title('hbn wave'); subplot(3,2,4);stem(n,abs(Xh),'.'); title('Xh wave');n1=0:6;Xy=fft(ybn,8);subplot(3,2,5);stem(n1,ybn,'.');title('ybn wave')n2=0:7;subplot(3,2,6);stem(n2,abs(Xy),'.'); title('Xy wave结果:hbn =1.00002.5000 2.5000 1.0000实验三:第一个方程:clc;clear all;a1=[1 ,0.75,0.125];b1=[1,-1];n=0:20;x1=[1 zeros(1,20)];subplot(2,3,1);y1filter=filter(b1,a1,x1); stem(n,y1filter);title('y lfilter');xlabel('x');ylabel('y');x1=[1 zeros(1,10)];[h]=impz(b1 ,a1,10); subplot(2,3,2);y1conv=conv(h,x1);n=0:19;stem(n,y1conv,'filled') subplot(2,3,3);impz(b1 ,a1,21);n=0:20;x2=ones(1,21);subplot(2,3,4);y1filter=filter(b1,a1,x2); stem(n,y1filter);title('y1filter_step'); xlabel('x');ylabel('y');x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,3,5);stem(n1,y1conv,'filled'); title('y1conv');xlabel('n');ylabel('y1[n]');subplot(2,3,6);b1=1;impz(b1,a1);第二个方程:clc;clear all;a1=[1];b1=[0.25,0.25,0.25,0.25]; n=0:20;x1=[1 zeros( 1,20)];y1filter=filter(b1,a1,x1); subplot(2,3,1);stem(n,y1filter);title('y 1filter');xlabel('x');ylabel('y');x1=[1 zeros(1,10)];[h]=impz(b1,a1,10);y1conv=conv(h,x1);n=0:19;subplot(2,3,2);stem(n,y1conv,'filled') subplot(2,3,3);impz(b1,a1,21);n=0:20;x2=ones(1,21);y1filter=filter(b1,a1,x2); subplot(2,3,4);stem(n,y1filter);title('y1filter_step'); xlabel('x');ylabel('y');x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,3,5);stem(n1,y1conv,'filled');title('y1conv');xlabel('n');ylabel('y1[n]');subplot(2,3,6);n=0:20;a1=1;b1=[0,0.25,0.5,0.75,ones(1,17)] ;impz(b1,a1,21);第一个方程结果第二个方程结果:实验四:程序:clc;clear all;num=[0.0528 0.0797 0.1295 0.1295 0.797 0.0528];den=[1 -1.8107 2.4947 -1.8801 0.9537 -0.2336];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);sos=zp2sos(z,p,k);figure(1)subplot(2,3,5);zplane(num,den)k=256;w=0:pi/k:pi;h=freqz(num,den,w);subplot(2,3,1);plot(w/pi,real(h));grid title('实部')xlabel('\omega/\pi');ylabel('幅度')subplot(2,3,2);plot(w/pi,imag(h));gridtitle('虚部')xlabel('\omega/\pi');ylabel('Am plitude')subplot(2,3,3);plot(w/pi,abs(h));gridtitle('幅度谱')xlabel('\omega/\pi');ylabel('幅值')subplot(2,3,4);plot(w/pi,angle(h));gridtitle('相位谱')xlabel('\omega/\pi');ylabel('弧度')figure(2)freqz(num,den,128);结果:零点-1.5870 + 1.4470i -1.5870 - 1.4470i 0.8657 + 1.5779i 0.8657 - 1.5779i -0.0669 + 0.0000i 极点0.2788 + 0.8973i 0.2788 - 0.8973i 0.3811 + 0.6274i 0.3811 - 0.6274i 0.4910 + 0.0000i 增益系数0.0528实验五:clc;clear all;wp=input('通带内频率wp=');ap=input('容许幅度误差ap=');ws=input('频率ws=');as=input('阻带衰减as=');fs=1;[N,Wn]=buttord(wp,ws,ap,as,'s'); [Z,P,K]=buttap(N);[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=bilinear(b,a,fs);[H,W]=freqz(bz,az,64);subplot(2,1,1);stem(W/pi,abs(H));grid;xlabel('频率');ylabel('幅度');subplot(2,1,2);stem(W/pi,20*log10(abs(H))); grid;xlabel('频率');ylabel('幅度(dB)');bzaz结果:通带内频率wp=0.1*pi容许幅度误差ap=0.5频率ws=0.5*pi阻带衰减as=20bz =0.0238 0.0714 0.0714 0.0238 az =1.0000 -1.6217 1.0505 -0.2384实验六:Blackman方式:clc;clear all;b=fir1(21,0.5,blackman(22)); figure(1);y=freqz(b,1);subplot(2,2,1);plot(abs(y));grid;title('幅度响应');subplot(2,2,2); plot(angle(y)); grid;title('相位响应'); subplot(2,2,3); cj=impz(b,1,20); stem(cj);title('冲激响应'); grid;Hamming方式:clc;clear all;b=fir1(21,0.5,hamming(22)); figure(1);y=freqz(b,1);subplot(2,2,1);plot(abs(y));grid;title('幅度响应');subplot(2,2,2); plot(angle(y)); grid;title('相位响应'); subplot(2,2,3); cj=impz(b,1,20); stem(cj);title('冲激响应'); grid;Hanning方式:clc;clear all;b=fir1(21,0.5,hanning(22)); figure(1);y=freqz(b,1);subplot(2,2,1);plot(abs(y));grid;title('幅度响应');subplot(2,2,2); plot(angle(y)); grid;title('相位响应'); subplot(2,2,3); cj=impz(b,1,20); stem(cj);title('冲激响应'); grid;实验七:0个过渡点:clc;clear all;N=64;wc=0.8*pi;k=0:N-1;phase=(-pi*k*(N-1)/N+pi/2);HK=[zeros(1,26),ones(1,13),zero s(1,25)];HK1=HK.*exp(j*phase);hn=ifft(HK1,N);figure(1);freqz(hn,1,512);[H,W]=freqz(hn,1,512);figure(2);subplot(3,1,1);stem(k,hn);title('h(n)')subplot(3,1,2);plot(W/pi,abs(H));title('|H(eiw)|')subplot(3,1,3);plot(W/pi,20*log10(abs(H))); title('20lg|H(eiw)|');clc;clear all;N=64;wc=0.8*pi;k=0:N-1;phase=(-pi*k*(N-1)/N+pi/2);HK=[zeros(1,25),0.5,ones(1,13), 0.5,zeros(1,24)];HK1=HK.*exp(j*phase);hn=ifft(HK1,N); figure(1);freqz(hn,1,512);[H,W]=freqz(hn,1,512);figure(2);subplot(2,1,1);plot(W/pi,abs(H));title('|H(eiw)|')subplot(2,1,2);plot(W/pi,20*log10(abs(H))); title('20lg|H(eiw)|');clc;clear all;N=64;wc=0.8*pi;k=0:N-1;phase=(-pi*k*(N-1)/N+pi/2);HK=[zeros(1,24),1/3,2/3,ones(1, 13),2/3,1/3,zeros(1,23)];HK1=HK.*exp(j*phase);hn=ifft(HK1,N); figure(1);freqz(hn,1,512);[H,W]=freqz(hn,1,512);figure(2);subplot(2,1,1);plot(W/pi,abs(H));title('|H(eiw)|')subplot(2,1,2);plot(W/pi,20*log10(abs(H))); title('20lg|H(eiw)|');实验八:clc;clear all;x=[4,-2,0,-4,-6 ...-4,-2, -4,-6,-6 ...-4,-4,-6, -6,-2 ...6,12,8,0,-16, -38 ...-60,-84,-90,-66 ...-32,-4,-2,-4,8,12 ...12, 10,6,6,6,4,0,0 ...0,0,0, -2,-4,0,0,0 ...-2,-2,0, 0,-2,-2 ...-2,-2,0];subplot(3,1,1);plot([0:length(x)-1],x,'k'); title('输入')N=21;wn=hamming(N+1);wp=0.2*pi; h=fir1(N,wp/pi,wn);y=conv(x,h);subplot(3,1,2);plot([0:length(y)-1],y,'r'); title('经FIR滤波')A=0.2318;a=A*[1,2,1];b1=[1,0.4164,-0.6006];b2=[1,0.3093,-0.1888];b3=[1,0.2692,-0.0349];y1=filter(a,b1,x);y2=filter(a,b2,y1);y3=filter(a,b3,y2);subplot(3,1,3);plot([0:length(y3)-1],y3,'m'); title('经IIR滤波')。
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编程实验报告
《计算机程序设计基础》实验报告
6
《数字信号处理》实验报告
实验项目 实验类别 基础性 MATLAB 编程语言环境使用 实验学时 4
实 验 目 的 及 要 求
(1) 正确进入 MATLAB 工作环境并熟悉其基本结构 (2) 熟悉其基本操作命令,包括变量的设置、help 命令的使用、结果的 保存与调用等 (3) 编写 M 文件并在环境中运行 (4) 信号与系统工具包使用
正弦信号程序代码
n=0:0.001:100; y=2*sin(0.1*n+pi/8); plot(n,y), grid on
《计算机程序设计基础》实验报告 3
计算机科学与工程学院 axis([0,100,-3,3])
正弦信号 x1(n)=2 sin(0.1n+pi/8)的图像为
复指数信号程序源代码 clear,t0=0;tf=5;dt=0.05;t1=1; t=t0:dt:tf; st=length(t); alpha=-0.5; w=10; x=exp((alpha+j*w)*t); subplot(1,2,1),plot(t,real(x)),grid on; subplot(1,2,2),plot(t,imag(x)),grid on;
复指数信号
x2 (n) Ae(机程序设计基础》实验报告
4
计算机科学与工程学院
思考题
1.说明点乘(.*)运算和乘法运算(*) 有何不同 答:每一个符号变量都被认为是一个元素,不论它的表达式多么复杂。因此如果你仅从符号
的视角出发,那所有的乘法都是点乘!就相当于两个数相乘一样,没有点乘还是差乘的分别。 但是如果一个矩阵是由符号变量组成的。 那么点乘和差乘就有分别了。 数值运算和符号运算都 是一样的,都要考虑点乘还是差乘
《数字信号处理》Matlab实验
《数字信号处理》Matlab 实验一.离散信号的 FFT 分析1.用Matlab 编程上机练习。
已知:N=2^5。
这里Q=0.9+j0.3。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:函数代码:>> function xn()>> format long>> q=0.9+0.3*i;>> wn=exp(-2*pi*i/32);>> xk=(1-q^32)./(1-q*wn.^[0:31])>>xn=q.^[0:31]>> xk1=fft(xn,32)>>diff=xk-xk1具体执行情况:>> function xn()format longq=0.9+0.3*i;wn=exp(-2*pi*i/32);xk=(1-q^32)./(1-q*wn.^[0:31])xk =Columns 1 through 20.5698 + 3.3840i 2.8369 + 8.8597iColumns 3 through 49.3189 - 9.8673i 1.2052 - 3.5439iColumns 5 through 61.8846 -2.0941i 0.8299 - 1.2413i11,011)()()(k k 10nk 10-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n N N n ,0.9214 - 1.0753i 0.3150 - 0.0644i Columns 9 through 100.9240 - 0.8060i 0.4202 - 0.2158i Columns 11 through 120.8513 - 0.6357i 0.5040 - 0.1701i Columns 13 through 140.6217 - 0.6931i 0.2441 - 0.8978i Columns 15 through 160.9454 - 0.2800i 0.7139 - 0.3158i Columns 17 through 180.6723 - 0.6496i 0.0263 + 0.5093i Columns 19 through 200.5671 + 0.6914i 0.3173 + 0.9841i Columns 21 through 220.8929 + 0.7792i 0.4066 + 0.8452i Columns 23 through 240.5847 + 0.9017i 0.9129 + 0.9283i Columns 25 through 260.0573 + 0.5531i 0.4219 + 0.9562i Columns 27 through 280.3298 + 0.3143i 0.4513 + 0.2638i0.7214 + 0.1879i 0.0933 + 1.7793iColumns 31 through 320.9483 + 1.9802i 0.4932 + 2.6347i>> xn=q.^[0:31]xn =Columns 1 through 21.0000 0.0000 + 0.0000i Columns 3 through 40.0000 + 0.0000i 0.0000 + 0.0000iColumns 5 through 60.0000 + 0.0000i -0.0000 + 0.0000iColumns 7 through 8-0.0000 + 0.0000i -0.0000 + 0.0000iColumns 9 through 10-0.0000 + 0.0000i -0.0000 + 0.0000iColumns 11 through 12-0.0000 - 0.0000i -0.0000 - 0.0000iColumns 13 through 14-0.2000 - 0.4000i -0.3600 - 0.5200iColumns 15 through 16-0.9680 - 0.1760i 0.4816 - 0.3488i0.2381 - 0.2695i 0.2951 - 0.1711i Columns 19 through 200.1169 - 0.4655i 0.4449 - 0.9838i Columns 21 through 220.6955 + 0.2480i 0.5516 + 0.4319i Columns 23 through 240.3669 + 0.5542i 0.9639 + 0.2088i Columns 25 through 260.3049 + 0.9771i -0.5187 + 0.4709i Columns 27 through 28-0.6081 + 0.2682i -0.1278 + 0.5589i Columns 29 through 30-0.4827 + 0.0647i -0.6538 + 0.5134i Columns 31 through 32-0.8425 - 0.4341i -0.1280 - 0.1434i >> xk1=fft(xn,32)xk1 =Columns 1 through 20.5698 + 3.3839i 2.8366 + 8.8599i Columns 3 through 49.3182 - 9.8692i 1.2051 - 3.5439i1.8845 -2.0942i 0.8298 - 1.2413i Columns 7 through 80.9213 - 1.0754i 0.3150 - 0.0645i Columns 9 through 100.9240 - 0.8060i 0.4202 - 0.2158i Columns 11 through 120.8514 - 0.6356i 0.5040 - 0.1701i Columns 13 through 140.6217 - 0.6931i 0.2441 - 0.8977i Columns 15 through 160.9454 - 0.2800i 0.7139 - 0.3159i Columns 17 through 180.6723 - 0.6496i 0.0263 + 0.5093i Columns 19 through 200.5671 + 0.6913i 0.3172 + 0.9840i Columns 21 through 220.8929 + 0.7792i 0.4065 + 0.8452i Columns 23 through 240.5846 + 0.9016i 0.9129 + 0.9283i Columns 25 through 260.0572 + 0.5531i 0.4219 + 0.9563i0.3297 + 0.3144i 0.4512 + 0.2638iColumns 29 through 300.7213 + 0.1879i 0.0932 + 1.7793iColumns 31 through 320.9480 + 1.9802i 0.4928 + 2.6347i>> diff=xk-xk1diff =1.0e-013 *Columns 1 through 20.4625 + 0.8501i 0.9504 - 0.4003iColumns 3 through 40.6010 + 0.4028i 0.4752 + 0.7001iColumns 5 through 60.5502 + 0.8501i 0.4625 + 0.8501iColumns 7 through 80.7751 + 0.9250i 0 + 0.3875i Columns 9 through 100.7751 - 0.4625i 0.3126 - 0.4625iColumns 11 through 12-0.4625 - 0.3126i 0.4625 + 0.3875iColumns 13 through 14-0.9250 + 0.6938i 0.3875 - 0.0781iColumns 15 through 160.3875 - 0.6156i 0 + 0.9641iColumns 17 through 180.9250 - 0.7598i -0.4625 - 0.0422iColumns 19 through 200.4625 + 0.1172i 0.4625 + 0.3094iColumns 21 through 220.9250 + 0.4625i 0.9250 + 0.2313iColumns 23 through 240.3875 + 0.1563i 0.3875 - 0.2313iColumns 25 through 260.8501 -0.9250 - 0.4625iColumns 27 through 280.0127 - 0.7751i 0.7001 - 0.9250iColumns 29 through 300.1626 0.7814 - 0.9250iColumns 31 through 320.4816 + 0.9250i 0.7255 - 0.8501i由以上结果可知,由基2时间抽选的FFT算法所得到的DFT结果与利用公式法所得的理论值稍有偏差,但误差较小,从结果可以看出大概在小数点第15位才开始出现误差,故而用计算机FFT处理数据在精度上是可以接受的。
北邮《数字信号处理》Matlab实验——梳状滤波器的应用
实验题目3:梳状滤波器的应用实验目的:录制一段自己的话音,时间长度及取样频率自定;对该段声音加入一次反射、三次反射和无穷多次反射。
试验内容:1、对试验原理的说明回声可以认为是由原始声音衰减后的多个延迟叠加组成的,因此回声可以用延迟单元来生成。
x(n)表示原始声音信号,a为衰减系数,T为延迟周期,回声信号Y(n)=X(n)+a*x(n‐T)+a^2*x(n‐2T)+……+a^k*x(n‐kT)。
Z变换后的系统函数H(z)可由梳状滤波器实现。
本实验用MATLAB中的filter(b,a,x)函数可用来仿真差分方程a(1)*y(n)=b(1)*x(n)+b(2)*x(n‐1)+...+b(nb+1)*x(n‐nb)‐a(2)*y(n‐1)‐...‐a(na+1)*y(n‐na)。
2、在同一张图上,绘制原声音序列x(n)、加入一次反射后的声音序列x1(n)、加入三次反射后的声音序列x3(n)和加入无穷多次反射后的声音序列x I(n)。
[x, fs] = wavread('a.wav');% sound(x, fs);a = 0.6; T = 0.2;y1 = filter([1, zeros(1,T*fs-1), a], 1, x);% sound(y1, fs); wavwrite(y1, fs, 'echo1.wav');y2 = filter([1, zeros(1,T*fs-1), a, zeros(1,T*fs-1), a^2, zeros(1,T*fs-1), a^3], 1, x);% sound(y2, fs); wavwrite(y2, fs, 'echo2.wav');y3 = filter(1, [1, zeros(1,T*fs-1), a], x);% sound(y3, fs); wavwrite(y3, fs, 'echo3.wav');plot(y3, 'm');hold on; plot(y2, 'r');hold on; plot(y1, 'g');hold on; plot(x, 'b');其中蓝色为原声音序列x(n),粉红色为加入一次反射后的声音序列x1(n),绿色为加入三次反射后的声音序列x3(n),红色为加入无穷多次反射后的声音序列x I(n)。
数字信号处理实验全部程序MATLAB
实验一熟悉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实现以下序列。
数字信号处理实验(matlab)
北京邮电大学DSP之matlab实验1实验题目2. 程序分析实验一(源代码及分析)A=zeros(1,25)c=complex(0.9,0.3)for i=1:1:25A(i)=c^iendn=0:24k=0:24WN=exp(-j*2*pi/25)nk=n'*kWNnk=WN.^nkX=A*WNnk;%X(k)为用定义算法计算的DFT值%下面为32点运算for i=26:1:32A(i)=0endn=0:31k=0:31WN=exp(-j*2*pi/32)nk=n'*kWNnk=WN.^nkX=A*WNnk%下面为32点蝶形运算k1=bin2dec(fliplr(dec2bin([1:32]-1,5)))+1%得到从1到32的倒序顺序B=A(k1)%得到倒序后的A,将其赋给Bfor mm=1:5 %将DFT做m次基2分解,从左到右,对每次分解作DFT运算Nmr=2^mm;u=1; %旋转因子u初始化WN=exp(-j*2*pi/Nmr); %本次分解的基本DFT因子WN=exp(-i*2*pi/Nmr)for n=1:Nmr/2 %本次跨越间隔内的各次碟形运算for k=n:Nmr:32 %本次碟形运算的跨越间隔为Nmr=2^mmkp=k+Nmr/2; %确定碟形运算的对应单元下标(对称性)t=B(kp)*u; %碟形运算的乘积项B(kp)=B(k)-t; %碟形运算的加法项B(k)=B(k)+t;endu=u*WN; %修改旋转因子,多乘一个基本DFT因子WNendend实验二(源代码及分析)for i=1:1:1000x(i)=0.001*cos(0.45*i*pi)+sin(0.3*i*pi)-cos(0.302*i*pi-4/pi)endX=fft(x);k=0:500;w=2*pi/1000*k;stem(w/pi,abs(X(1:501)))axis([0.25 0.35 490 510])axis([0.3 0.5 0 0.8]) 3. 程序运行结果实验一程序运行结果太长,只附一截图如下:实验二结果的有窗与无窗图如下:4. 总结本次实验是第一次使用matlab,实验过程中遇到了不少的问题,经过和同学们的交流以及通过网络查询,最后得到了结果。
《基于MATLAB的数字信号处理》实验报告
0.60007.0000-5.4000所以,X=[错误!未找到引用源。
]=[ 0.6000, 7.0000, -5.4000]’实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示:图1.1 三曲线的对比实验二基于MATLAB信号处理实验xlabel('频率/Hz');ylabel('振幅/dB');title('布莱克窗的幅频特性');grid on;subplot(2,1,2);plot(f4,180/pi*unwrap(angle(H4)));xlabel('频率/Hz');ylabel('相位');title('布莱克窗的相频特性');grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间[-4,8]上有能力,刚好是区间[-3,3]与右移后的区间[-1,5]两端点之和,与结论一致。
且互相关在2处达到最大。
实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示:图2-5 矩形窗的频率特性图2-6 汉宁窗的频率特性图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。
Matlab数字信号处理实验报告
实验 2-3
n=0:30;%输入x(n)和冲激响应 h(n) x=zeros(1,length(n)); h=zeros(1,length(n)); x([find((n>=0)&(n<=4))] ) =1; h([find((n>=0)&(n<=8))] ) =0.5; subplot(3,1,1); stem(x); title('x(n)'); axis([0,30,0,2]); subplot(3,1,2); stem(h); title('h(n)'); axis([0,30,0,2]); X=fft(x); H=fft(h); Y=X.*H; y=ifft(Y); subplot(3,1,3);
变换及 h(n) 的 Z 变换,则
H (z) zesT
1 T
Ha (s
m
j
2 T
m)
(2) 双线性变换法
s
平面与
z
平面之间满足以下映射关系:
s
2 T
1 1
z 1 z 1
s 平面的虚轴单值地映射于 z 平面的单位圆上,s 平面的左半平面完全映射 到 z 平面的单位圆内。双线性变换不存在混叠问题。双线性变换时一种非线性变
subplot(3,1,2); stem(n,h); axis([0,30,0,2]); title('冲激响应序列'); xlabel('n'); ylabel('h(n)');
北邮DSP数字信号处理Matlab实验一
北邮DSP数字信号处理Matlab实验⼀实验⼀:数字信号的产⽣和基本运算(1) 常⽤数字信号序列的产⽣:熟悉Matlab产⽣数字信号的基本命令,加深对数字信号概念的理解,并能够⽤Matlab 产⽣和绘制出⼀些常⽤离散信号序列。
请⽤Matlab画出下列序列的波形(-10a) δ(n)b) 单位阶跃序列2u(n-5)c) 矩形序列R(n)d) y(n)=2sin(0.3πn)+0.5cos2(0.6πn)(2)数字信号的基本运算:a)加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进⾏这些基本运算,得到多个序列构成的组合序列。
b)请⽤您的计算机声卡采⽤⼀段您⾃⼰的声⾳x(n),长度为45喵,单声道。
取样频率44.1kHz,16bit/样值,然后与给定的⼀段背景⾳乐y(n)按下式叠加为⼀个声⾳信号z(n):z(n)=0.7x(n)+0.3y(n)(3)要求:a)在同⼀个figure中,画出采集声⾳x(n)、背景⾳乐y(n)和混⾳z(n)的时域波形;b)提交实验报告时,请把声⾳⽂件转换成mp3格式,图像转换为jpeg格式,以节省存储空间。
C)通过本次实验,掌握matlab中这些基本运算命令,对数字信号处理有⼀个基本概念,为后⾯的数字信号分析和滤波打下了基础。
(1):a)利⽤.m⽂件M⽂件代码:function[x,n]=delta(n0,n1,n2)if((n0error('false')endn=n1:n2;x=(n-n0)==0;图象为:b)利⽤.m⽂件M⽂件代码:function[x,n]=u(n0,n1,n2)if((n0endn=n1:n2;x=(n-n0)>=0;实现2u(n-5)的命令是:>> x=2*u(5,-10,10);>> n=-10:10;>> stem(n,x)图像为:c)利⽤.m⽂件M⽂件代码:function[x,n]=R(n0,n1,n2,n3)if((n0n3)||(n0>n1)||(n2>n3)) error('false')endn=n2:n3;x=(n>=n0)-(n>=n1);实现R(n)的命令是:>> x=R(-2,3,-10,10);>> n=-10:10;>> stem(n,x)图像为:d)命令如下:>> n=-10:0.1:10;>> y=2*sin(0.3*pi*n)+0.5*cos(2*(0.6*pi*n)); >> stem(n,y)图像为:(2)a)相加:δ(n)+2u(n-5) 命令如下:>> n=-10:10;>> y1=delta(0,-10,10); >> y2=2*u(5,-10,10); >> stem(n,y1+y2)图像为:乘法:2u(n-5)*R(n) 命令如下:>> n=-10:10;>> y1=u(0,-10,10); >> y2=R(-2,3,-10,10); >> stem(n,y1.*y2)图像为:移位:y(n)=2sin(0.3πn)+0.5cos2(0.6πn)右移两位命令如下:>> n=-10:0.1:10;>> y=2*sin(0.3*pi*(n-2))+0.5*cos(2*(0.6*pi*(n-2))); >> stem(n,y)图像为:b)⾳频处理:>> [record,fs,bits]=wavread('record.wav');>> [background,fs,bits]=wavread('background.wav');>> x=record((fs*0+1:fs*45),:);>> y=background((fs*0+1:fs*45),:);>> z=0.7*x+0.3*y;>> wavwrite(z,fs,bits,'music.wav');>> subplot(3,1,1),plot(x),title('record');>> subplot(3,1,2),plot(y),title('background');>> subplot(3,1,3),plot(z),title('music');//此时的录⾳是⽤audition录的,也可以⽤matlab⾃带的wavrecord函数来录⾳。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:数字信号的产生和基本运算
(1) 常用数字信号序列的产生:
熟悉Matlab产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。
请用Matlab画出下列序列的波形(-10<n<10):
a) δ(n)
b) 单位阶跃序列2u(n-5)
c) 矩形序列R(n)
d) y(n)=2sin(0.3πn)+0.5cos2(0.6πn)
(2)数字信号的基本运算:
a)加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。
b)请用您的计算机声卡采用一段您自己的声音x(n),长度为45喵,单声道。
取样频率44.1kHz,16bit/样值,然后与给定的一段背景音乐y(n)按下式叠加为一个声音信号z(n):
z(n)=0.7x(n)+0.3y(n)
(3)要求:
a)在同一个figure中,画出采集声音x(n)、背景音乐y(n)和混音z(n)的时域波形;
b)提交实验报告时,请把声音文件转换成mp3格式,图像转换为jpeg格式,以节省存储空间。
C)通过本次实验,掌握matlab中这些基本运算命令,对数字信号处理有一个基本概念,为后面的数字信号分析和滤波打下了基础。
(1):
a)利用.m文件
M文件代码:
function[x,n]=delta(n0,n1,n2)
if((n0<n1)||(n2<n1)||(n2<n0))
error('false')
end
n=n1:n2;
x=(n-n0)==0;
图象为:
b)利用.m文件
M文件代码:
function[x,n]=u(n0,n1,n2)
if((n0<n1)||(n2<n1)||(n2<n0)) error('false')
end
n=n1:n2;
x=(n-n0)>=0;
实现2u(n-5)的命令是:
>> x=2*u(5,-10,10);
>> n=-10:10;
>> stem(n,x)
图像为:
c)利用.m文件
M文件代码:
function[x,n]=R(n0,n1,n2,n3)
if((n0<n2)||(n1>n3)||(n0>n1)||(n2>n3)) error('false')
end
n=n2:n3;
x=(n>=n0)-(n>=n1);
实现R(n)的命令是:
>> x=R(-2,3,-10,10);
>> n=-10:10;
>> stem(n,x)
图像为:
d)命令如下:
>> n=-10:0.1:10;
>> y=2*sin(0.3*pi*n)+0.5*cos(2*(0.6*pi*n)); >> stem(n,y)
图像为:
(2)
a)
相加:δ(n)+2u(n-5) 命令如下:
>> n=-10:10;
>> y1=delta(0,-10,10); >> y2=2*u(5,-10,10); >> stem(n,y1+y2)
图像为:
乘法:2u(n-5)*R(n) 命令如下:
>> n=-10:10;
>> y1=u(0,-10,10); >> y2=R(-2,3,-10,10); >> stem(n,y1.*y2)
图像为:
移位:y(n)=2sin(0.3πn)+0.5cos2(0.6πn)右移两位命令如下:
>> n=-10:0.1:10;
>> y=2*sin(0.3*pi*(n-2))+0.5*cos(2*(0.6*pi*(n-2))); >> stem(n,y)
图像为:
b)音频处理:
>> [record,fs,bits]=wavread('record.wav');
>> [background,fs,bits]=wavread('background.wav');
>> x=record((fs*0+1:fs*45),:);
>> y=background((fs*0+1:fs*45),:);
>> z=0.7*x+0.3*y;
>> wavwrite(z,fs,bits,'music.wav');
>> subplot(3,1,1),plot(x),title('record');
>> subplot(3,1,2),plot(y),title('background');
>> subplot(3,1,3),plot(z),title('music');
//此时的录音是用audition录的,也可以用matlab自带的wavrecord函数来录音。
图像为:。