华南理工大学数字信号处理matlab实验(1)
数字信号处理实验报告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实验
实验一熟悉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。
(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≤15d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。
e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。
(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 ≤10s b) 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 -1 2 3}和序列{2 3 -1 -3}的离散卷积,并作图表示卷积结果。
华工 数字信号处理实验报告
数字信号处理实验报告班级:姓名:组号:第九组日期:二零一四年十一月实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。
二、实验原理1、单位抽样序列在MATLAB中可以利用函数实现。
2、单位阶越序列在MATLAB中可以利用函数实现:3、正弦序列在MATLAB中实现过程如下:4、复指数序列在MATLAB中实现过程如下:5、指数序列在MATLAB中实现过程如下:三、预习要求1、预先阅读实验讲义(MATLAB基础介绍);2、讨论正弦序列、复指数序列的性质。
A.绘出信号,当、时、、时的信号实部和虚部图;当时呢?此时信号周期为多少?程序dsp1.m如下:titlez1=-1/12+j*pi/6;titlez2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;n=0:20;x1=exp(titlez1*n);x2=exp(titlez2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);subplot(5,2,1);stem(n,real(x1));xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2);stem(n,imag(x1));xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3);stem(n,real(x2));xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时')subplot(5,2,4);stem(n,imag(x2));xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时')subplot(5,2,5);stem(n,real(x3));xlabel('n');ylabel('real(x3)'); title('z3=1/12时')subplot(5,2,6);stem(n,imag(x3));xlabel('n');ylabel('image(x3)');title('z3=1/12时')subplot(5,2,7);stem(n,real(x4));xlabel('n');ylabel('real(x4)'); title('z4=2+j*pi/6时')subplot(5,2,8);stem(n,imag(x4));xlabel('n');ylabel('image(x4)'); title('z4=2+j*pi/6时')subplot(5,2,9);stem(n,real(x5));xlabel('n');ylabel('real(x5)'); title('z5=j*pi/6时')subplot(5,2,10);stem(n,imag(x5));xlabel('n');ylabel('image(x5)'); title('z5=j*pi/6时')运行结果如下:结论:当Z=pi/6时,序列周期为12。
数字信号处理matlab实验
目录实验一数字信号的产生和频谱分析实验 (2)一.实验目的 (2)二.实验要求 (2)三.实验原理 (2)四.实验步骤 (3)五.流程图 (3)七.实验结果分析 (6)实验二FIR数字滤波器设计 (7)一.试验目的 (7)二.实验要求 (7)三.实验原理和步骤 (7)四.实验流程图 (7)五.实验波形 (8)六.实验结果分析 (11)实验三IIR数字滤波器设计 (11)一.试验目的 (11)二.实验要求 (11)三.实验原理 (12)四.实验流程图 (12)五.实验波形 (13)六.实验结果分析 (14)实验四模拟调制解调 (14)一.试验目的 (14)二.实验要求 (14)三.实验原理 (15)四.实验流程图 (15)五.实验波形 (16)六.实验结果分析 (17)实验五数字调制解调 (17)一.试验目的 (17)二.实验要求 (17)三.实验原理 (18)四.实验流程图 (18)五.实验波形 (18)六.实验结果分析 (20)实验一数字信号的产生和频谱分析实验一.实验目的1.通过仿真掌握采样定理2.掌握利用FFT进行信号谱分析的原理二.实验要求1. 按照采样定理生成CW信号和LFM信号;2. 画出信号时域波形图和频谱图;3. 生成高斯分布的白噪声;4. 生成一定信噪比的带噪信号,并对其进行谱分析。
三.实验原理1.采样定理:在模拟信号数字化时,需要对模拟信号进行采样,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,否则会发生频谱混叠,造成最后解调出来的信号失真.一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。
2.快速傅立叶变换(FFT)算法长度为N的序列的离散傅立叶变换为:N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。
华南理工大学信号与系统实验基于Matlab的信号处理实例
第2讲基于Matlab的信号处理实例实验内容(1)(1) 读取给定的3D加速度信号文件,绘出信号波形;程序源代码:function sy2fid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r');a=fscanf(fid,'%d,%d,%d\n');fclose(fid);len=length(a)/3;k=1;for i=1:lenx(i)=a(k);y(i)=a(k+1);z(i)=a(k+2);k=k+3;endsubplot(3,1,1);plot(x(1:700),'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('x(i)'); %标示名称subplot(3,1,2);plot(y(300:700),'m','LineWidth',3)grid on; %标示格子xlabel('n'),ylabel('y');%标示坐标legend('y(i)'); %标示名称subplot(3,1,3);plot(z(300:700),'b','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('z');%标示坐标legend('z(i)'); %标示名称执行结果如下所示:100200300400500600700050100150200nxx(i)5010015020025030035040045050100150200250nyy(i)501001502002503003504004500100200300nzz(i)(2) 将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形;绘出偶序列及奇序列的和信号、差信号及积信号的波形;a.分解为偶序列及奇序列,分别绘出波形: 程序源代码:function sy2oefid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r'); a=fscanf(fid,'%d,%d,%d\n'); fclose(fid);len=length(a)/3; k=1;for i=1:len x(i)=a(k); y(i)=a(k+1);z(i)=a(k+2);k=k+3;endx0=[zeros(1,len-1),x];%x前面补0x1=fliplr(x0);%x1即是反转的x0ex=(x1+x0)/2;%x的偶部ox=-(x1-x0)/2;%x的奇部y0=[zeros(1,len-1),y];y1=fliplr(y0);ey=(y1+y0)/2;oy=-(y1-y0)/2;z0=[zeros(1,len-1),z];z1=fliplr(z0);ez=(z1+z0)/2;oz=-(z1-z0)/2;subplot(3,2,1);plot([-len+1:len-1],ex ,'g','LineWidth',3); grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('ex(i)'); %标示名称subplot(3,2,3);plot([-len+1:len-1],ey,'m','LineWidth',3) grid on; %标示格子xlabel('n'),ylabel('y');%标示坐标legend('ey(i)'); %标示名称subplot(3,2,5);plot([-len+1:len-1],ez,'b','LineWidth',3); grid on; %标示格子xlabel('n'),ylabel('z');%标示坐标legend('ez(i)'); %标示名称subplot(3,2,2);plot([-len+1:len-1],ox,'g','LineWidth',3); grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('ox(i)'); %标示名称subplot(3,2,4);plot([-len+1:len-1],oy,'m','LineWidth',3) grid on; %标示格子xlabel('n'),ylabel('y');%标示坐标legend('oy(i)'); %标示名称subplot(3,2,6);plot([-len+1:len-1],oz,'b','LineWidth',3); grid on; %标示格子xlabel('n'),ylabel('z');%标示坐标legend('oz(i)'); %标示名称 sumoex=ex+ox; sumoey=ey+oy; sumoez=ez+oz;执行结果如下所示:-4000-3000-2000-100001000200030004000050100150nxex(i)-4000-3000-2000-100001000200030004000050100150200nyey(i)-4000-3000-2000-100001000200030004000050100150nzez(i)-4000-3000-2000-100001000200030004000-100-50050100nxox(i)-4000-3000-2000-100001000200030004000-200-1000100200nyoy(i)-4000-3000-2000-100001000200030004000-200-1000100200nzoz(i)b.绘出偶序列及奇序列的和信号的波形: 程序源代码:function sumoefid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r'); a=fscanf(fid,'%d,%d,%d\n'); fclose(fid);len=length(a)/3; k=1;for i=1:len x(i)=a(k); y(i)=a(k+1); z(i)=a(k+2); k=k+3; endx0=[zeros(1,len-1),x];%x 前面补0 x1=fliplr(x0);%x1即是反转的x0 ex=(x1+x0)/2;%x 的偶部 ox=-(x1-x0)/2;%x 的奇部 y0=[zeros(1,len-1),y]; y1=fliplr(y0); ey=(y1+y0)/2; oy=-(y1-y0)/2;z0=[zeros(1,len-1),z]; z1=fliplr(z0); ez=(z1+z0)/2; oz=-(z1-z0)/2; sumoex=ex+ox; sumoey=ey+oy; sumoez=ez+oz; subplot(3,1,1);plot([-len+1:len-1],sumoex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('sumoex'); %标示名称 subplot(3,1,2);plot([-len+1:len-1],sumoex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('sumoey'); %标示名称 subplot(3,1,3);plot([-len+1:len-1],sumoex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('sumoez'); %标示名称执行结果如下所示:-4000-3000-2000-1000010002000300040000100200nxsumoex-4000-3000-2000-1000010002000300040000100200nxsumoey-4000-3000-2000-1000010002000300040000100200nxsumoezc..绘出偶序列及奇序列的差信号的波形程序源代码:function choefid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r'); a=fscanf(fid,'%d,%d,%d\n');fclose(fid);len=length(a)/3;k=1;for i=1:lenx(i)=a(k);y(i)=a(k+1);z(i)=a(k+2);k=k+3;endx0=[zeros(1,len-1),x];%x前面补0x1=fliplr(x0);%x1即是反转的x0ex=(x1+x0)/2;%x的偶部ox=-(x1-x0)/2;%x的奇部y0=[zeros(1,len-1),y];y1=fliplr(y0);ey=(y1+y0)/2;oy=-(y1-y0)/2;z0=[zeros(1,len-1),z];z1=fliplr(z0);ez=(z1+z0)/2;oz=-(z1-z0)/2;choex=ex-ox;choey=ey-oy;choez=ez-oz;subplot(3,1,1);plot([-len+1:len-1],choex ,'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('choex'); %标示名称subplot(3,1,2);plot([-len+1:len-1],choex ,'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('choey'); %标示名称subplot(3,1,3);plot([-len+1:len-1],choex ,'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标 legend('choez'); %标示名称执行结果如下所示:-4000-3000-2000-1000010002000300040000100200nx-4000-3000-2000-1000010002000300040000100200nx-4000-3000-2000-1000010002000300040000100200nxchoexchoeychoezd.绘出偶序列及奇序列的积信号的波形程序源代码:function muloefid = fopen('run 100m_TROUSERS POCKET_1_陈佳_1.txt','r'); a=fscanf(fid,'%d,%d,%d\n'); fclose(fid);len=length(a)/3; k=1;for i=1:len x(i)=a(k); y(i)=a(k+1); z(i)=a(k+2); k=k+3; endx0=[zeros(1,len-1),x];%x 前面补0 x1=fliplr(x0);%x1即是反转的x0 ex=(x1+x0)/2;%x 的偶部 ox=-(x1-x0)/2;%x 的奇部 y0=[zeros(1,len-1),y]; y1=fliplr(y0); ey=(y1+y0)/2;oy=-(y1-y0)/2;z0=[zeros(1,len-1),z]; z1=fliplr(z0); ez=(z1+z0)/2; oz=-(z1-z0)/2; muloex=ex.*ox; muloey=ey.*oy; muloez=ez.*oz; subplot(3,1,1);plot([-len+1:len-1],muloex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('muloex'); %标示名称 subplot(3,1,2);plot([-len+1:len-1],muloex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('y');%标示坐标 legend('muloey'); %标示名称 subplot(3,1,3);plot([-len+1:len-1],muloex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('z');%标示坐标 legend('muloez'); %标示名称执行结果如下所示:-4000-3000-2000-100001000200030004000-101x 104nxmuloex-4000-3000-2000-100001000200030004000-101x 104nymuloey-4000-3000-2000-100001000200030004000-101x 104nzmuloez∑-=-=10][1][M k k n x Mn y (3) 画出M 点滑动平均滤波器的波形(M 分别取4和10); 注:M 点滑动平均滤波器:程序源代码:function m n=0:20;x=[n==0]; %单位冲击响应 a1=[0.25 0.25 0.25 0.25]; b=[1];y1=filter(a1,b,x);a2=[0.1]; %求m=10时,差分方程右边的系数 for i=1:9a2=[a2,0.1]; endy2=filter(a2,b,x); subplot(2,1,1);stem(n,y1,'g','filled')%画图,用绿色,线条加粗 title('滑动平均滤波器的波形') grid on ; %标示格子xlabel('n'),ylabel('y');%标示坐标 legend('M=4'); %标示m subplot(2,1,2);stem(n,y2,'m','filled')%画图,用品红色,线条加粗 grid on ; %标示格子 xlabel('n'),ylabel('y');%标示坐标 title('滑动平均滤波器的波形') legend('M=10'); %标示m执行结果如下所示:246810121416182000.10.20.30.4滑动平均滤波器的波形nyM=4246810121416182000.050.1ny滑动平均滤波器的波形M=10(4) 用上述滑动平均滤波器对输入的3D 加速度信号进行滤波,同时绘出输入及输出信号波形;观察分析输出波形的变化。
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的数字信号处理实验1
实验三 用FFT 作谱分析一、实验目的(1)进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质)。
(2)熟悉FFT 算法原理(3)学习用FFT 对连续信号和时域离散信号进行谱分析的方法分析误差及其原因,以便在实际中正确应用FFT二、实验内容(1)利用FFT 对下列信号进行谱分析并画出图形, FFT 变换区间N =8,16a.)()(41n R n x =b.n n x 4cos )(2π= (2)设一序列中含有两种频率成份,f1=2HZ,f2=2.05HZ,采样频率取为fs =10HZ ,即)/2sin()/2sin()(21s s f n f f n f n x ππ+=要区分出这两种频率成份,必须满足N>400,为什么?a.取x(n)(0≤n<128)时,计算x(n)的DFT X(k)b.将a 中的x (n )以补零方式使其加长到0≤n<512,计算X(k)c.取x(n)( 0≤n<512),计算X(k)(3)令)()()(32n jx n x n x +=用FFT 计算8点和16点离散傅立叶变换并画出图形,分析DFT 的对称性三、实验图形记录(1)FFT 变换(2) 两种不同频率成份DFT变换(3)DFT的对称性四、实验小结通过本次实验知道了离散傅里叶的N点变换在频域范围内表现为对傅里叶变换即Z变换在单位圆上的抽样,所以N取8点时K=0,1,2,3,4,5,6,7与N取16点时K=0,2,4,6,8,10,12,14的离散傅里叶值对应相等,他们都等于原信号在W=0,1*pi/8, 2*pi/8, 3*pi/8, 4*pi/8, 5*pi/8, 6*pi/8, 7*pi/8时的傅里叶变换,因此离散傅里叶变换实际上是对该序列在频率范围内以2*pi/N的间隔进行抽样;但如果取样点数小于原信号周期(如N=8<T),未能取完一个周期,而N=16取完一个周期,则他们对应W值得取值就不一样,因为此时傅里叶变换是该序列周期延拓后对应的傅里叶级数的主值序列;为了避免频率混叠要求有Fs>2f c;结论:FFT的性质同DFT一致,DFT其实是对该序列FFT的W的抽样或者说对Z在单位圆上的抽样,也是该序列周期延拓后FFT的主值序列。
实验一基于Matlab的数字信号处理基本分析解析
实验一基于Matlab的数字信号处理基本操作一、实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。
二、实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、实验内容:(一) 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用X(n)来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB中一般用stem函数。
stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位取样序列单位取样序列、:(n),也称为单位冲激序列,定义为和、? ⑴=0)o(n)=丿0 (n 式0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。
在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n必须为整数或整数向量。
【实例1-1】禾U用MATLAB的impDT函数绘出单位冲激序列的波形图。
解:MATLAB源程序为>>n=-3:3;>>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on>>title('单位冲激序列’) >>axis([-3 3 -0.1 1.1])1程序运行结果如图1-1所示。
《基于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的数字信号处理1
基于MATLAB的数字信号处理1MATLAB的综合实验一、实验目的及要求培养学生利用Matlab解决专业问题的能力。
二、实验设备(环境)及要求1.计算机2.Matlab软件编程实验平台三、实验内容1、编程实现一个数字信号处理的仿真系统。
要求具有界面并实现以下功能:1)能产生(得到)并选择各种数字信号(sin、方波、三角波、语音、噪声及其叠加);2)具有DFT、DCT和DWT变换功能,并对各种信号进行变换;3)设计滤波器实现低通、高通、带通滤波,得到输出信号的频域特性和时间序列;4)输入一段叠加了噪声的语音信号,显示其频谱特性,通过变换或滤波对其降噪,得到输出信号的频域特性和时间序列。
四、设计思想本系统包含有三个主要部分:信号产生与变换模块,滤波器模块和语音噪声处理。
信号产生与变换通过输入信号频率和采样频率实现正弦、方波、三角波、语音信号的产生以及噪声的叠加,系统设定信号持续时间为0.05s,语音信号为截取了一段2s的声音信号。
同时对各个信号进行DFT,DCT和DWT变换,且变换点数N=256,同时设定DWT变换时的小波类型为db1。
滤波器模块设计了四个IIR 滤波器(巴特沃斯、切比雪夫Ⅰ型,切比雪夫Ⅱ型和椭圆滤波器),并分别实现低通,高通和带通。
界面设计了各种滤波器所需参数的输入模块。
系统设定待滤波信号持续时间为0.05s,包含有3个频率成分,S=sin(2*pi*f*t)+ sin(2*pi*5*f*t)+sin(2*pi*8*f*t),其中f为输入信号频率,S通过低通、带通、高通滤波器之后,分别得到频率为f,5f和8f的正弦信号,实现信号滤波。
语音噪声处理部分是一个复选框按钮,通过巴特沃斯低通滤波器对其进行降噪,设计中通过观察噪声语音信号的频谱得到低通滤波器的截止频率和阻带起始频率,并合理输入通带衰减与阻带衰减,最终得到理想的降噪结果。
数字滤波器设计过程中用到了如下的一些matlab设计函数:buttord、butter,cheb1ord、cheby1,cheb2ord、cheby2,ellipord、ellip。
华工信号与系统实验-实验一 基于Matlab的时域信号处理示例
实验一 基于Matlab 的时域信号处理示例一. 实验内容1. 用MA TLAB 实现基本信号2. 画出信号的波形3. 用MATLAB 实现卷积和4. 用MATLAB 求系统输出二. 实验仪器PC 计算机—Matlab三. 实验步骤(1-1)写一个产生 信号的函数定义 n 范围为 [ t1,t2 ] 之间, 以 t0 作为偏移量 当 n - t0 为 0 的时候 x=1代码实现:function UnitImpulse(t1,t2,t0)% t1,t2信号的起止时刻,t0 冲激信号沿坐标的平移量 n=t1:t2; %定义区间范围x=[(n-t0)==0]; %n-t0=0 时, x = 1 Stem (n,x ); %描绘图像 End效果图:输入: UnitImpulse(-5,5,2)与实验设定相同。
当 t0=2 时, x = 1 .)(0t t -δ(1-2) 写一个产生 信号的函数定义 n 范围为 [ t1,t2 ] 之间, 以 t0 作为偏移量 当 n - t0 大于 0 的时候 x=1 代码实现:function UnitStep(t1,t2,t0)% t1,t2信号的起止时刻,t0 阶跃信号沿坐标的平移量 n=t1:t2; %定义区间范围x=[(n-t0)>=0]; %n-t0> 0时, x = 1 Stem (n,x ); %描绘图像End 效果图:输入: UnitStep(-5,5,-1)与预先结果相同。
(1-3)写一个产生离散复指数信号的函数function ComplexExponential(n1,n2,r,w )% n1,n2 信号的起止时间;r 指数序列的底; w 角频率 n=n1:n2; %定义区间范围 x=exp((r+j*w)*n); %定义指数函数 Rex=real(x); % 去指数函数的实部 Imx=imag(x); % 去指数函数的虚部 disp(Rex); %显示指数函数的实部 disp(Imx); %显示指数函数的实部 End效果图:输入: ComplexExponential(-5,5,2,3))(0t t u(2-1) 画出如下信号的波形利用前面1-1 所的函数 分别构造各个函数,再进行加减运算。
华南理工大学信号与系统实验一
实验一基本信号的产生和实现实验日期:评分:一、实验目的学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。
二、实验原理MATLAB提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。
这些基本信号是信号处理的基础。
三、实验内容1. 利用Matlab产生下列连续信号并作图。
(1)(2)【代码】%%% 1.(1) %%%t = -1:0.01:5;x = -2 * ((t-1)>=0);subplot(2, 1, 1)plot(t,x)axis([-1 5 -2.5 0.5])%%% 1.(2) %%%t = 0:0.01:200;x = cos(0.1*pi * t).*cos(0.8*pi * t);subplot(2, 1, 2)plot(t, x)axis([0 200 -1.5 1.5])【结果截图】【结果分析】上述代码绘制了阶跃函数的变形形式,以及类似正弦波的时域信号图。
2. 利用Matlab产生下列离散序列并作图。
(1),设。
(2),设。
【代码】%%% 2.(1) %%%k = -14:15;x = (-5<=k & k<=5);subplot(2, 1, 1)stem(k, x)axis([-14 15 -0.5 1.5])%%% 2.(2) %%%k = -19:20;x = (0.9.^k) .* (sin(0.25*pi * k) + cos(0.25*pi * k)); subplot(2, 1, 2)stem(k, x)【结果截图】【结果分析】上图绘制了离散信号的窗口函数以及振幅衰减的震荡信号。
3.已知序列,。
(1)计算离散序列的卷积和,并绘出其波形。
(2)计算离散序列的相关函数,并绘出其波形。
(3)序列相关与序列卷积有何关系?【代码】%%% 3.(1) %%%k = [-2 -1 0 1 2 3];x = [1 2 0 -1 3 2];h = [1 -1 1];y = conv(x, h);subplot(2, 1, 1)stem(-2:5, y)%%% 3.(2) %%%r = xcorr(x, y);subplot(2, 1, 2)stem(-5:9, r)【结果截图】【结果分析】(3)序列相关与序列卷积有何关系?答:序列相关(∑+∞-∞=+=k xy n k y k x n R ][][][)是刻画两个序列之间相似性的一种度量,两序列越近似,相关性越高,当两序列相等时,相关性达到最大值。
《数字信号处理》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处理数据在精度上是可以接受的。
华南理工大学信号与系统实验报告材料
Experiment ExportName:Student No:Institute:Dec 26, 2011Experiment Purposes1. Be familiar with the software Environment and Programming flow in MATLAB5.3.2. Learn how to draw the signal waveform and determine the signal properties.3. Calculate the convolution, frequency response and system output by using the functions: conv, freqz, freqs and filter.Experiment Contents实验项目一:MATLAB编程基础及典型实例①画出离散时间正弦信号并确定基波周期(注:pi 表示圆周率)1 x1[n]=sin(pi*4/4)*cos(pi*n/4)2 x2[n]=cos(pi*n/4)*cos(pi*n/4)3 x3[n]=sin(pi*n/4)*cos(pi*n/8)program for matlabn=0:31;x1=sin(pi*n/4).*cos(pi*n/4);x2=cos(pi*n/4).*cos(pi*n/4);x3=sin(pi*n/4).*cos(pi*n/8);subplot(3,1,1);stem(n,x1);title('x1');subplot(3,1,2);stem(n,x2);title('x2');subplot(3,1,3);stem(n,x3);title('x3');grid on;Conclusion: These signals is periodic, the first and second signal’s peri od are 4. The third signal’s period is 16.②离散时间系统性质:离散时间系统往往是用几个性质来表征,如线性、时不变性、稳定性、因果性及可逆性等。
华南理工大学信号与系统实验基于Matlab的FFT应用
第3讲 基于Matlab 的FFT 应用实验内容(1)(1) 确定该稳定LTI 系统的频率响应的幅度和相位程序源代码:function sy3_1a=[3 4 1]; b=[1 0 5];[H,omega]=freqs(b,a) %计算连续时间系统的频率响应H(jw) A=abs(H) ;%H(jw)的模 W=angle(H);%H(jw)的相位 subplot(2,1,1), plot(omega,A,'g','LineWidth',3); title('H(jw)的模'), grid on ; xlabel('omega'),ylabel('A');subplot(2,1,2), plot(omega,W,'m','LineWidth',3); title('H(jw)的相位'), grid on ;xlabel('omega'),ylabel('W');执行结果如下所示:123456789100246H(jw)的模omega A12345678910-3-2-101H(jw)的相位omegaW)()()()()(t x dtt x d t y dt t dy dt t y d 5432222+=++(2) 求下面离散系统在 区间的频率响应程序源代码:function sy3_2 a=[1 -0.8]; b=[2 0 -1];[H omega]=freqz(b,a,256,'whole')A=abs(H) ;%H(jw)的模 W=angle(H);%H(jw)的相位 subplot(2,1,1), plot(omega,A,'g','LineWidth',3); title('H(jw)的模'), grid on ; xlabel('omega'),ylabel('A');subplot(2,1,2),plot(omega,W,'m','LineWidth',3); title('H(jw)的相位'),grid on ;xlabel('omega'),ylabel('W');执行结果如下所示:12345670246H(jw)的模omega A1234567-1-0.500.51H(jw)的相位omegaW],[π0][][][.][22180--=--n x n x n y n y(3) : 计算 的DTFT程序源代码:function sy3_3 N=128; n=0:N;x=[(n-10)<=0]; X=fft(x);Xc=fftshift(X); Xw=angle(Xc);subplot(2,1,1),plot(-N/2:N/2,abs(Xc),'g','LineWidth',3); title('DTFT 的模'), grid on ;xlabel('omega'),ylabel('A');subplot(2,1,2), plot(Xw,'m','LineWidth',3); title('DTFT 的相位'), grid on ; xlabel('omega'),ylabel('W');执行结果如下所示:-80-60-40-20020406080051015DTFT 的模omega A20406080100120140-4-2024DTFT 的相位omegaW][][][10--=n u n u n x实验内容(2)DFT例子:受噪声干扰的正弦信号的频谱考虑两个频率分别为50hz及120hz的正弦信号之和:x(t)=sin(2*pi*50t)+sin(2*pi*120t)收到随机噪声的加性干扰:y(t)=x(t)+2randn(t)分别对信号x(t)和y(t)以1000hz进行采样,观察信号的波形,并分析采样信号x(n)和y(n)的频谱。
数字信号处理上机实验MATLAB程序及结果
66671782.4829
241699153902.8650
9639.0000
12840400.0000
1.0000
45.3060
图形
%用切比雪夫1型设计高通滤波器
2**50002**1000140;
1;
1;
[]1(,'s');
[]1(,'s');
[]2(,1);
[1 1];
();
;
100;
0:(1);
100采样频率
f1=1;
f2=10;
(2**f1*n)(2**f2*n)原始信号
(211);
(2**f2*,'k')显示波形
('时间');
('幅值');
('原始信号');
(y)进行快速傅里叶变换
1;
1(f2/()+1)=02频率对应的幅值为零
1((2)/()+1)=02/2频率对应f2的对称频率值对应幅值为零
298379090.0000
1.0000
44.1570
图形
%用切比雪夫1型设计高通滤波器
2**5000;
2**1000;
1;
40;
1;
1;
[]2(,'s');
[]2(,'s');
[]2(,1);
[1 1];
();
('.4e\n'20*10((h(1))));
('.4e\n'20*10((h(2))));
命令窗口输出结果:
5.086632003.109529005.35564001
《基于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)');
华南理工大学数字信号处理matlab实验(1)
数字信号处理matlab实验学院:电子与信息专业班级: 5学号:201130302068姓名:梁敏健实验名称:离散时间信号与系统分析、滤波器实验日期:2013.10实验1 离散时间信号与系统分析(2课时)题目一:以下程序中分别使用conv和filter函数计算h[n] = [3 2 1 -2 1 0 -4 0 3]和x[n] = [1 -2 3 -4 3 2 1]的卷积y和y1,并分析y和y1是否有差别代码:h = [3 2 1 -2 1 0 -4 0 3];x = [1 -2 3 -4 3 2 1];y = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);xlabel('Time index n'); ylabel('Amplitude');title('Output Obtained by Convolution'); grid;x1 = [x zeros(1,8)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Time index n'); ylabel('Amplitude');title('Output Generated by Filtering'); grid;可见,y与y1没有差别。
题目二:编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用filter、conv、impz三种函数完成。
,,源代码:对,,单位冲激响应a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x1=[1 zeros(1,20)];y1filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y1filter);title('y1filter');xlabel('x');ylabel('y');title('impulse response generated by filter')x1_1=[1 zeros(1,10)];[h]=impz(b1,a1,10);y1conv=conv(h,x1_1);n=0:19;subplot(2,2,2);stem(y1conv) ;title('impulse response generated by conv')h=impz(b1,a1,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz') 结果:单位阶跃:a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x2=ones(1,21);y1filter=filter(b1,a1,x2);subplot(2,2,3);stem(n,y1filter);title('y1filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,2,2);stem(n1,y1conv,'filled');title('y1conv');xlabel('n');ylabel('y1[n]');title('impulse response generated by conv')a=[1,0.75,0.125];b=1;h=impz(b,a,21);subplot(2,2,1);stem([0:20], h);title('impulse response generated by impz') 结果:对单位冲激响应:a2=1;b2=[0 0.25*ones(1,4)];n=0:9;x1=[1 zeros(1,9)];y2filter=filter(b2,a2,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter');xlabel('x');ylabel('y')title('impulse response generated by filter')x2=[1 zeros(1,5)];[h]=impz(b2,a2,5);y2conv=conv(h,x2);subplot(2,2,2);stem(n,y2conv,'filled')title('impulse response generated by conv')h=impz(b2,a2,10);subplot(2,2,3);stem([0:9], h);title('impulse response generated by impz') 结果:单位阶跃a1=1;b1=[0 0.25*ones(1,4)];n=0:20;x1=ones(1,21);y2filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')y2=conv(b1,x1);y2conv=y2(1:21);subplot(2,2,2);stem(n,y2conv,'filled');title('y2conv');xlabel('n');ylabel('y[n]');title('impulse response generated by conv')n=0:20;b=[0,0.25,0.5,0.75,ones(1,17)];a=1;h=impz(b,a,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz')题目三2N点实数序列N=64。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理matlab实验学院:电子与信息专业班级: 5学号:201130302068姓名:梁敏健实验名称:离散时间信号与系统分析、滤波器实验日期:2013.10实验1 离散时间信号与系统分析(2课时)题目一:以下程序中分别使用conv和filter函数计算h[n] = [3 2 1 -2 1 0 -4 0 3]和x[n] = [1 -2 3 -4 3 2 1]的卷积y和y1,并分析y和y1是否有差别代码:h = [3 2 1 -2 1 0 -4 0 3];x = [1 -2 3 -4 3 2 1];y = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);xlabel('Time index n'); ylabel('Amplitude');title('Output Obtained by Convolution'); grid;x1 = [x zeros(1,8)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Time index n'); ylabel('Amplitude');title('Output Generated by Filtering'); grid;可见,y与y1没有差别。
题目二:编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用filter、conv、impz三种函数完成。
,,源代码:对,,单位冲激响应a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x1=[1 zeros(1,20)];y1filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y1filter);title('y1filter');xlabel('x');ylabel('y');title('impulse response generated by filter')x1_1=[1 zeros(1,10)];[h]=impz(b1,a1,10);y1conv=conv(h,x1_1);n=0:19;subplot(2,2,2);stem(y1conv) ;title('impulse response generated by conv')h=impz(b1,a1,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz') 结果:单位阶跃:a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x2=ones(1,21);y1filter=filter(b1,a1,x2);subplot(2,2,3);stem(n,y1filter);title('y1filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,2,2);stem(n1,y1conv,'filled');title('y1conv');xlabel('n');ylabel('y1[n]');title('impulse response generated by conv')a=[1,0.75,0.125];b=1;h=impz(b,a,21);subplot(2,2,1);stem([0:20], h);title('impulse response generated by impz') 结果:对单位冲激响应:a2=1;b2=[0 0.25*ones(1,4)];n=0:9;x1=[1 zeros(1,9)];y2filter=filter(b2,a2,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter');xlabel('x');ylabel('y')title('impulse response generated by filter')x2=[1 zeros(1,5)];[h]=impz(b2,a2,5);y2conv=conv(h,x2);subplot(2,2,2);stem(n,y2conv,'filled')title('impulse response generated by conv')h=impz(b2,a2,10);subplot(2,2,3);stem([0:9], h);title('impulse response generated by impz') 结果:单位阶跃a1=1;b1=[0 0.25*ones(1,4)];n=0:20;x1=ones(1,21);y2filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')y2=conv(b1,x1);y2conv=y2(1:21);subplot(2,2,2);stem(n,y2conv,'filled');title('y2conv');xlabel('n');ylabel('y[n]');title('impulse response generated by conv')n=0:20;b=[0,0.25,0.5,0.75,ones(1,17)];a=1;h=impz(b,a,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz')题目三2N点实数序列N=64。
用一个64点的复数FFT程序,一次算出,并绘出的图形。
代码:N=64;n=[0:1:N-1];n1=2*n;n2=2*n+1;k=[0:1:N-1];xn1=cos(2*pi/N*7*n1)+1/2*cos(2*pi/N*19*n1);xn2=cos(2*pi/N*7*n2)+1/2*cos(2*pi/N*19*n2);XK1=fft(xn1);XK2=fft(xn2);X1=XK1+exp(-j*pi*k/N).*XK2;X2=XK1-exp(-j*pi*k/N).*XK2;X1=[X1 zeros(1,N)];X2=[zeros(1,N) X2];XK=X1+X2;k=[0:1:2*N-1];XK=abs(XK); stem(k,XK);xlabel('k');ylabel('|X(k)|');title('X(k)=DFT[x(n)]2N')题目四:已知某序列在单位圆上的N=64等分样点的Z变换为:。
用N点IFFT程序计算出和。
代码:N=64;k=[0:1:63];xk=1./(1-0.8*exp(-j*2*pi*k/N));xn=ifft(xk,64);stem(k,xn)xlabel('k');ylabel('x(n)');disp('xnÐòÁÐ');disp(xn);xn序列1.0000 - 0.0000i 0.8000 + 0.0000i 0.6400 + 0.0000i 0.5120 + 0.0000i0.4096 + 0.0000i 0.3277 + 0.0000i 0.2621 + 0.0000i 0.2097 + 0.0000i0.1678 + 0.0000i 0.1342 + 0.0000i 0.1074 - 0.0000i 0.0859 + 0.0000i0.0687 - 0.0000i 0.0550 - 0.0000i 0.0440 - 0.0000i 0.0352 - 0.0000i0.0281 - 0.0000i 0.0225 - 0.0000i 0.0180 - 0.0000i 0.0144 - 0.0000i0.0115 - 0.0000i 0.0092 - 0.0000i 0.0074 - 0.0000i 0.0059 - 0.0000i0.0047 - 0.0000i 0.0038 - 0.0000i 0.0030 - 0.0000i 0.0024 - 0.0000i0.0019 - 0.0000i 0.0015 - 0.0000i 0.0012 - 0.0000i 0.0010 + 0.0000i0.0008 + 0.0000i 0.0006 + 0.0000i 0.0005 + 0.0000i 0.0004 + 0.0000i0.0003 + 0.0000i 0.0003 + 0.0000i 0.0002 + 0.0000i 0.0002 + 0.0000i0.0001 + 0.0000i 0.0001 + 0.0000i 0.0001 + 0.0000i 0.0001 + 0.0000i0.0001 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 0.0000i0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 0.0000i0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i实验2 滤波器设计(2课时)1、求系统的零、极点和幅度频率响应和相位响应。